【问题标题】:x86 Assembly Memory - What does the "add" instruction do?x86 汇编内存 - “添加”指令有什么作用?
【发布时间】: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。

标签: assembly x86 nasm


【解决方案1】:

'add reg, (something)' 将该值添加到寄存器中,句点。您看到的不同之处在于您使用寄存器的方式。

当您执行 'mov ebx,[eax]' 时,您将 eax 中的值用作指针,因为您使用方括号取消引用它。

【讨论】:

    猜你喜欢
    • 2011-04-18
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 2012-01-15
    相关资源
    最近更新 更多