【发布时间】:2017-03-19 13:24:48
【问题描述】:
下面的内存段。
在第一条 add 指令(add eax, 3)中,它会将 eax 的指针向右移动 3 个点。
因此,EAX = 12, 17, A3, 00。(这个我明白)
但是,在第二条加法指令(add ebx, 5)上,它实际上将值 5 加到了 ebx,
使EBX = 12、17、A3、05。
这是为什么呢?
(小端序)
【问题讨论】:
-
因此,EAX = 12, 17, A3, 00。” 在 nasm 语法中,
mov eax, var1表示eax = address of var1,而不是eax = value at var1。至于为什么最不重要ebx的字节最终值为 5;var1+3的字节最初为 0. 0 + 5 = 5。