現在、Kip Irvineの「アセンブリ言語x86プログラミング」の本を読んでアセンブリプログラミングを学習しています。前に、私はコードMOV EAX, listSize
の行を実行した後に得た結果はEAX
私は値24を含むように変数listSize
を期待していた同じ18
であることであるコードについて
(list
は、list2
4バイト長であります配列が20バイトの長さなので、現在の位置カウンタからlist
を引いた$ - list
の場合、私は24を取得する必要があります。
どうしてですか?私は何か間違ったことをしましたか
.386
.model flat, stdcall
.stack 4096
ExitProcess PROTO, dwExitCode: DWORD
.DATA
list BYTE 10, 20, 30, 40
list2 BYTE 20 DUP(0)
listSize = ($ - list)
.CODE
main PROC
MOV EAX, listSize
INVOKE ExitProcess, 0
main ENDP
END main
16進数の「18」は、「24」の小数です。 –
@Someprogrammerdude Lolありがとう。そんなに愚かな間違いをするために私のことを教えてください – Thor