在x86中使用方括号

问题描述 投票:0回答:1

我想得到2种不同的东西:(1)(bp处的值)plus 16(数学加法)类似于:mov ax, [bp] + 16(2)bp + 16的值(地​​址bp + 16)

为了得到((1)我尝试了:

mov ax, bp+16  

但是它给出了一个错误。

对于(2)我尝试过:

mov ax, [bp+16]  

哪个工作。 (我希望我做的正确)。


为什么汇编无法理解对以下内容的评估:

mov ax, bp+16

但可以理解:

mov ax, [bp+16]  

因为未使用+符号定义加法,那么该幕后发生了什么?

我想得到2种不同的东西:(1)(bp的值)加16(数学加法)类似于:mov ax,[bp] + 16(2)bp + 16的值(地​​址bp +16)才能获得(1)I ...

assembly x86-16 tasm
1个回答
2
投票

没有mov的形式可以进行数学运算以为目标寄存器生成不在源寄存器或内存操作数中的新值。 https://www.felixcloutier.com/x86/mov。您想要的AX值必须是立即数,或直接包含在某个地址的寄存器或内存中。

© www.soinside.com 2019 - 2024. All rights reserved.