組裝下面使用NASM的結構中,我得到以下錯誤:NASM中TIMES前綴的count參數的最大大小是多少?
test.asm:65: error: TIMES value -228 is negative
即,值0x104
被解釋爲一個負數。
NASM中前綴TIMES
的count參數的最大大小是多少?我將如何僅使用「小」計數初始化結構?
_stWin32FindData:
istruc WIN32_FIND_DATA
at WIN32_FIND_DATA.dwFileAttributes, dd 0x00
at WIN32_FIND_DATA.ftCreationTime, times 0x08 db 0x00
at WIN32_FIND_DATA.ftLastAccessTime, times 0x08 db 0x00
at WIN32_FIND_DATA.ftLastWriteTime, times 0x08 db 0x00
at WIN32_FIND_DATA.nFileSizeHigh, dd 0x00
at WIN32_FIND_DATA.nFileSizeLow, dd 0x00
at WIN32_FIND_DATA.dwReserved0, dd 0x00
at WIN32_FIND_DATA.dwReserved1, dd 0x00
at WIN32_FIND_DATA.cFileName, times 0x104 db 0x00
at WIN32_FIND_DATA.cAlternate, times 0x0e db 0x00
iend
我使用NASM版本02年12月2日@視窗10
感謝您的詳細解答。下次我會去看看源代碼。但是,我並不認爲這對初學者是「可讀的」。我不太瞭解你的AT實現。 – Shuzheng
@Shuzheng你永遠不知道項目背後有什麼代碼。 NASM一個很可讀。 「AT」實現不是我的,來自NASM。我通過使用'-E'命令行標誌找到它,它擴展宏但不處理文件。第一個括號計算字段'word'相對於結構開始的偏移量,第二個計算相對於結構實例開始的當前位置。不同之處在於要達到「字」字段的字節數。 –