1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Определить таблицу двордов на FASM

Тема в разделе "WASM.BEGINNERS", создана пользователем Aoizora, 27 июл 2019.

  1. Aoizora

    Aoizora Member

    Публикаций:
    0
    Регистрация:
    29 янв 2017
    Сообщения:
    125
    У меня сейчас больше непонимание синтаксиса фасма. Нужно определить таблицу для crc32:

    Код (Text):
    1. section '.data' data readable writeable
    2. crc32_table:
    3. dd 00000000h, dd  77073096h, dd  0ee0e612ch, dd 990951bah, dd  076dc419h, dd  706af48fh,
    4. dd 0e963a535h, dd 9e6495a3h, dd  0edb8832h, dd  79dcb8a4h, dd  0e0d5e91eh, dd 97d2d988h,
    5. dd 09b64c2bh, dd  7eb17cbdh, dd  0e7b82d07h, dd 90bf1d91h, dd  1db71064h, dd  6ab020f2h,
    6. dd 0f3b97148h, dd 84be41deh, dd  1adad47dh, dd  6ddde4ebh, dd  0f4d4b551h, dd 83d385c7h,
    7. dd 136c9856h, dd  646ba8c0h, dd  0fd62f97ah, dd 8a65c9ech, dd  14015c4fh, dd  63066cd9h,
    8. dd 0fa0f3d63h, dd 8d080df5h, dd  3b6e20c8h, dd  4c69105eh, dd  0d56041e4h, dd 0a2677172h,
    9. dd 3c03e4d1h, dd  4b04d447h, dd  0d20d85fdh, dd 0a50ab56bh, dd 35b5a8fah, dd  42b2986ch,
    10. dd 0dbbbc9d6h, dd 0acbcf940h, dd 32d86ce3h, dd  45df5c75h, dd  0dcd60dcfh, dd 0abd13d59h,
    11. dd 26d930ach, dd  51de003ah, dd  0c8d75180h, dd 0bfd06116h, dd 21b4f4b5h, dd  56b3c423h,
    12. dd 0cfba9599h, dd 0b8bda50fh, dd 2802b89eh, dd  5f058808h, dd  0c60cd9b2h, dd 0b10be924h,
    13. dd 2f6f7c87h, dd  58684c11h, dd  0c1611dabh, dd 0b6662d3dh, dd 76dc4190h, dd  01db7106h,
    14. dd 98d220bch, dd  0efd5102ah, dd 71b18589h, dd  06b6b51fh, dd  9fbfe4a5h, dd  0e8b8d433h,
    15. dd 7807c9a2h, dd  0f00f934h, dd  9609a88eh, dd  0e10e9818h, dd 7f6a0dbbh, dd  086d3d2dh,
    16. dd 91646c97h, dd  0e6635c01h, dd 6b6b51f4h, dd  1c6c6162h, dd  856530d8h, dd  0f262004eh,
    17. dd 6c0695edh, dd  1b01a57bh, dd  8208f4c1h, dd  0f50fc457h, dd 65b0d9c6h, dd  12b7e950h,
    18. dd 8bbeb8eah, dd  0fcb9887ch, dd 62dd1ddfh, dd  15da2d49h, dd  8cd37cf3h, dd  0fbd44c65h,
    19. dd 4db26158h, dd  3ab551ceh, dd  0a3bc0074h, dd 0d4bb30e2h, dd 4adfa541h, dd  3dd895d7h,
    20. dd 0a4d1c46dh, dd 0d3d6f4fbh, dd 4369e96ah, dd  346ed9fch, dd  0ad678846h, dd 0da60b8d0h,
    21. dd 44042d73h, dd  33031de5h, dd  0aa0a4c5fh, dd 0dd0d7cc9h, dd 5005713ch, dd  270241aah,
    22. dd 0be0b1010h, dd 0c90c2086h, dd 5768b525h, dd  206f85b3h, dd  0b966d409h, dd 0ce61e49fh,
    23. dd 5edef90eh, dd  29d9c998h, dd  0b0d09822h, dd 0c7d7a8b4h, dd 59b33d17h, dd  2eb40d81h,
    24. dd 0b7bd5c3bh, dd 0c0ba6cadh, dd 0edb88320h, dd 9abfb3b6h, dd  03b6e20ch, dd  74b1d29ah,
    25. dd 0ead54739h, dd 9dd277afh, dd  04db2615h, dd  73dc1683h, dd  0e3630b12h, dd 94643b84h,
    26. dd 0d6d6a3eh, dd  7a6a5aa8h, dd  0e40ecf0bh, dd 9309ff9dh, dd  0a00ae27h, dd  7d079eb1h,
    27. dd 0f00f9344h, dd 8708a3d2h, dd  1e01f268h, dd  6906c2feh, dd  0f762575dh, dd 806567cbh,
    28. dd 196c3671h, dd  6e6b06e7h, dd  0fed41b76h, dd 89d32be0h, dd  10da7a5ah, dd  67dd4acch,
    29. dd 0f9b9df6fh, dd 8ebeeff9h, dd  17b7be43h, dd  60b08ed5h, dd  0d6d6a3e8h, dd 0a1d1937eh,
    30. dd 38d8c2c4h, dd  4fdff252h, dd  0d1bb67f1h, dd 0a6bc5767h, dd 3fb506ddh, dd  48b2364bh,
    31. dd 0d80d2bdah, dd 0af0a1b4ch, dd 36034af6h, dd  41047a60h, dd  0df60efc3h, dd 0a867df55h,
    32. dd 316e8eefh, dd  4669be79h, dd  0cb61b38ch, dd 0bc66831ah, dd 256fd2a0h, dd  5268e236h,
    33. dd 0cc0c7795h, dd 0bb0b4703h, dd 220216b9h, dd  5505262fh, dd  0c5ba3bbeh, dd 0b2bd0b28h,
    34. dd 2bb45a92h, dd  5cb36a04h, dd  0c2d7ffa7h, dd 0b5d0cf31h, dd 2cd99e8bh, dd  5bdeae1dh,
    35. dd 9b64c2b0h, dd  0ec63f226h, dd 756aa39ch, dd  026d930ah, dd  9c0906a9h, dd  0eb0e363fh,
    36. dd 72076785h, dd  05005713h, dd  95bf4a82h, dd  0e2b87a14h, dd 7bb12baeh, dd  0cb61b38h,
    37. dd 92d28e9bh, dd  0e5d5be0dh, dd 7cdcefb7h, dd  0bdbdf21h, dd  86d3d2d4h, dd  0f1d4e242h,
    38. dd 68ddb3f8h, dd  1fda836eh, dd  81be16cdh, dd  0f6b9265bh, dd 6fb077e1h, dd  18b74777h,
    39. dd 88085ae6h, dd  0ff0f6a70h, dd 66063bcah, dd  11010b5ch, dd  8f659effh, dd  0f862ae69h,
    40. dd 616bffd3h, dd  166ccf45h, dd  0a00ae278h, dd 0d70dd2eeh, dd 4e048354h, dd  3903b3c2h,
    41. dd 0a7672661h, dd 0d06016f7h, dd 4969474dh, dd  3e6e77dbh, dd  0aed16a4ah, dd 0d9d65adch,
    42. dd 40df0b66h, dd  37d83bf0h, dd  0a9bcae53h, dd 0debb9ec5h, dd 47b2cf7fh, dd  30b5ffe9h,
    43. dd 0bdbdf21ch, dd 0cabac28ah, dd 53b39330h, dd  24b4a3a6h, dd  0bad03605h, dd 0cdd70693h,
    44. dd 54de5729h, dd  23d967bfh, dd  0b3667a2eh, dd 0c4614ab8h, dd 5d681b02h, dd  2a6f2b94h,
    45. dd 0b40bbe37h, dd 0c30c8ea1h, dd 5a05df1bh, dd  2d02ef8dh
    В ассемблере MIPS есть удобная директива .dword для этой цели, но в фасме я о таком же не знаю. Как мне определить такую таблицу двордов?

    На приведенный код компилятор ругается и выдает ошибку Error: invalid argument dd 00000000h,dd 77073096h,dd 0ee0e612ch,dd 990951bah,dd 076dc419h,dd 706af48fh,
    --- Сообщение объединено, 27 июл 2019 ---
    Разобрался. Правильно делать так:

    Код (Text):
    1. format PE
    2.  
    3. section '.data' data readable writeable
    4. crc32_table:
    5. dd  00000000h,  77073096h,  0ee0e612ch, 990951bah,  076dc419h,  706af48fh
    6. dd  0e963a535h, 9e6495a3h,  0edb8832h,  79dcb8a4h,  0e0d5e91eh, 97d2d988h
    7. dd  09b64c2bh,  7eb17cbdh,  0e7b82d07h, 90bf1d91h,  1db71064h,  6ab020f2h
    8. dd  0f3b97148h, 84be41deh,  1adad47dh,  6ddde4ebh,  0f4d4b551h, 83d385c7h
    9. dd  136c9856h,  646ba8c0h,  0fd62f97ah, 8a65c9ech,  14015c4fh,  63066cd9h
    10. dd  0fa0f3d63h, 8d080df5h,  3b6e20c8h,  4c69105eh,  0d56041e4h, 0a2677172h
    11. dd  3c03e4d1h,  4b04d447h,  0d20d85fdh, 0a50ab56bh, 35b5a8fah,  42b2986ch
    12. dd  0dbbbc9d6h, 0acbcf940h, 32d86ce3h,  45df5c75h,  0dcd60dcfh, 0abd13d59h
    13. dd  26d930ach,  51de003ah,  0c8d75180h, 0bfd06116h, 21b4f4b5h,  56b3c423h
    14. dd  0cfba9599h, 0b8bda50fh, 2802b89eh,  5f058808h,  0c60cd9b2h, 0b10be924h
    15. dd  2f6f7c87h,  58684c11h,  0c1611dabh, 0b6662d3dh, 76dc4190h,  01db7106h
    16. dd  98d220bch,  0efd5102ah, 71b18589h,  06b6b51fh,  9fbfe4a5h,  0e8b8d433h
    17. dd  7807c9a2h,  0f00f934h,  9609a88eh,  0e10e9818h, 7f6a0dbbh,  086d3d2dh
    18. dd  91646c97h,  0e6635c01h, 6b6b51f4h,  1c6c6162h,  856530d8h,  0f262004eh
    19. dd  6c0695edh,  1b01a57bh,  8208f4c1h,  0f50fc457h, 65b0d9c6h,  12b7e950h
    20. dd  8bbeb8eah,  0fcb9887ch, 62dd1ddfh,  15da2d49h,  8cd37cf3h,  0fbd44c65h
    21. dd  4db26158h,  3ab551ceh,  0a3bc0074h, 0d4bb30e2h, 4adfa541h,  3dd895d7h
    22. dd  0a4d1c46dh, 0d3d6f4fbh, 4369e96ah,  346ed9fch,  0ad678846h, 0da60b8d0h
    23. dd  44042d73h,  33031de5h,  0aa0a4c5fh, 0dd0d7cc9h, 5005713ch,  270241aah
    24. dd  0be0b1010h, 0c90c2086h, 5768b525h,  206f85b3h,  0b966d409h, 0ce61e49fh
    25. dd  5edef90eh,  29d9c998h,  0b0d09822h, 0c7d7a8b4h, 59b33d17h,  2eb40d81h
    26. dd  0b7bd5c3bh, 0c0ba6cadh, 0edb88320h, 9abfb3b6h,  03b6e20ch,  74b1d29ah
    27. dd  0ead54739h, 9dd277afh,  04db2615h,  73dc1683h,  0e3630b12h, 94643b84h
    28. dd  0d6d6a3eh,  7a6a5aa8h,  0e40ecf0bh, 9309ff9dh,  0a00ae27h,  7d079eb1h
    29. dd  0f00f9344h, 8708a3d2h,  1e01f268h,  6906c2feh,  0f762575dh, 806567cbh
    30. dd  196c3671h,  6e6b06e7h,  0fed41b76h, 89d32be0h,  10da7a5ah,  67dd4acch
    31. dd  0f9b9df6fh, 8ebeeff9h,  17b7be43h,  60b08ed5h,  0d6d6a3e8h, 0a1d1937eh
    32. dd  38d8c2c4h,  4fdff252h,  0d1bb67f1h, 0a6bc5767h, 3fb506ddh,  48b2364bh
    33. dd  0d80d2bdah, 0af0a1b4ch, 36034af6h,  41047a60h,  0df60efc3h, 0a867df55h
    34. dd  316e8eefh,  4669be79h,  0cb61b38ch, 0bc66831ah, 256fd2a0h,  5268e236h
    35. dd  0cc0c7795h, 0bb0b4703h, 220216b9h,  5505262fh,  0c5ba3bbeh, 0b2bd0b28h
    36. dd  2bb45a92h,  5cb36a04h,  0c2d7ffa7h, 0b5d0cf31h, 2cd99e8bh,  5bdeae1dh
    37. dd  9b64c2b0h,  0ec63f226h, 756aa39ch,  026d930ah,  9c0906a9h,  0eb0e363fh
    38. dd  72076785h,  05005713h,  95bf4a82h,  0e2b87a14h, 7bb12baeh,  0cb61b38h
    39. dd  92d28e9bh,  0e5d5be0dh, 7cdcefb7h,  0bdbdf21h,  86d3d2d4h,  0f1d4e242h
    40. dd  68ddb3f8h,  1fda836eh,  81be16cdh,  0f6b9265bh, 6fb077e1h,  18b74777h
    41. dd  88085ae6h,  0ff0f6a70h, 66063bcah,  11010b5ch,  8f659effh,  0f862ae69h
    42. dd  616bffd3h,  166ccf45h,  0a00ae278h, 0d70dd2eeh, 4e048354h,  3903b3c2h
    43. dd  0a7672661h, 0d06016f7h, 4969474dh,  3e6e77dbh,  0aed16a4ah, 0d9d65adch
    44. dd  40df0b66h,  37d83bf0h,  0a9bcae53h, 0debb9ec5h, 47b2cf7fh,  30b5ffe9h
    45. dd  0bdbdf21ch, 0cabac28ah, 53b39330h,  24b4a3a6h,  0bad03605h, 0cdd70693h
    46. dd  54de5729h,  23d967bfh,  0b3667a2eh, 0c4614ab8h, 5d681b02h,  2a6f2b94h
    47. dd  0b40bbe37h, 0c30c8ea1h, 5a05df1bh,  2d02ef8dh  
    --- Сообщение объединено, 27 июл 2019 ---
    Чтобы эта тема не была совсем бесполезной, посоветуйте, пожалуйста, способ сократить определения секций типа section '.text' code readable с длинного до короткого типа .code или section .code.

    А то бывают совсем длинные определения типа section '.data' data readable writeable