1
我創建的召開基本信息,以及一些字節字符串..例如,一個結構:彙編語言86:膠印間接操作的一個結構
EXAMPLESTRUCT STRUCT
somePrompt BYTE 20 DUP (0)
;other fields
EXAMPLESTRUCT ENDS
我的意圖是建立一個結構數組有關該特定結構的消息,線沿線的初始化:
ex1 EXAMPLESTRUCT <"Enter first">
ex2 EXAMPLESTRUCT <"Enter second">
直接引用該結構域的地址(MOV EDX,OFFSET ex1.somePrompt)工作得很好,但使用間接尋址時,我一直得到的偏移量錯誤:
mov esi,OFFSET ex1
mov edx,OFFSET (EXAMPLESTRUCT PTR [esi]).somePrompt ;Error here
那麼,是我的代碼錯了,還是這只是由於某種原因非法使用OFFSET?
唯一的解決辦法,我發現是使結構包含指針,然後初始化它們在已經取得的消息指向:
WORKAROUND STRUCT
somePTR DWORD ?
;...
WORKAROUND ENDS
.data
msg BYTE "Hello World",0
struct1 WORKAROUND <OFFSET msg>
,然後沿顯示的
mov esi,OFFSET struct1
mod edx,(WORKAROUND PTR [esi]).somePTR
行的消息
任何其他解決方案/解決方法,或者我應該堅持指針?
非常有用的指令,非常感謝,做了伎倆。 – user994121