アセンブリ テーブルのさまざまな状況でデータがどのように処理されるかわかりません。
次の簡単なプログラムがあります。
section .data
Digits: db "0123456789ABCDEF"
Sums: dd 15,12,6,0,21,14,4,0,0,19
Sums2: db 15,12,6,0,21,14,4,0,0,19
section .text
global _start
_start:
nop ; Put your experiments between the two nops...
mov ecx,2
mov al, byte [Sums+ecx*2]
mov bl, byte [Sums2+ecx*2]
mov dl, byte [Digits+ecx*2]
nop
さて、命令ごとにデバッグすると、レジスタを見て、何が起こっているのか理解できません。
rcx --> as expected it contains the decimal 2
rdx --> as expected it contains the hexadecimal 34 which represents the decimal 4
rax --> has c which represents new page
rbx --> has 15 which represents negative acknowledge (NAK character)
rax で 6 個、rbx で 1 個見つかると予想していました。なぜそれが起こっていないのか分かりません。私はリトルエンディアンアーキテクチャを使用しています。ありがとう