汇编说明中的寻址模式

渴望学习

我有一些有关汇编中寻址模式的基本问题。

我得到以下指示:

mov 3[R2+], 0x100

,其中在索引寻址模式下给出的第一个操作数是目标,而在内存直接模式下给出的第二个操作数是源。

这个问题要求人们重写只有以下几种寻址方式的指令:

  • rx 直接注册
  • [rx] 间接注册
  • # 立即寻址

我可以使用的指令addsubmov

我已经有了解决方案,但是不了解其中一些步骤。

这些是说明:

add r2, #3

为什么您必须在这里而不使用直接寻址模式[r2]据我了解,间接寻址操作数是寄存器的地址,其内容是包含实际值的内存位置的地址。因此,如果将3加到r2,我得到的地址指向另一个寄存器,不是吗?但是我真正想要的是位于一个内存位置的值,该地址的地址是3 +地址的先前值。有人可以向我解释一下吗?

下一条指令是:

mov r1, #0x100

我了解。

mov [r2],[r1]

但是,我不理解此说明。据我了解[r2]是内存位置的地址。但是,为什么在第二个操作数上使用间接寻址呢?R1包含地址0x100。那么,我是否获得了存储在0x100位置的内存中的值[r1]

一般而言,如果我想获得一个rx包含地址的寄存器的值,是否可以使用类似表达式的值[rx][r2]在这种情况下,我如何获取例如存储在位置的值的值,是否有直接方法获取该值,或者我必须首先将内容(即r2中包含的地址)写到另一个寄存器中,r3然后然后使用[r3]来获取实际值?

最后一条指令是

sub r2, #2

再次,我不确定为什么r2要使用,而不是[r2]我希望有人可以为我澄清这一点。

保罗·克莱顿

使用直接寄存器是add r2, #3因为要在r2中的值上加3,而不是在r2中的地址中的值上加3。r2中的值加3会产生一个新地址,以后的寄存器间接操作可以使用该地址。

寄存器直接寻址只是检索寄存器中(而不是寄存器的地址)。可能有助于想象系统中使用的字寻址并且被映射在存储寄存器开始0×00,然后add r2, #3将相当于add [0x02], #3(地址0×02在存储器加入3到值,这是R2的地址)和add [r2], #3将等效于add [[0x02]], #3(即双重间接)。(为绝对内存寻址选择的语法(仅使用一个空数字,用前缀表示立即数)#似乎令人困惑。我对两种形式的内存寻址都使用了方括号。)

mov [r2], [r1]将地址在r1中的存储位置中的值复制到地址在r2中的存储位置中。由于r1刚加载了值0x100,所以它等效于mov [r2], [0x100](或mov [r2], 0x100在练习中选择的令人困惑的语法中)。但是'mov [r2],[0x100]`将使用不受支持的寻址模式。

如果未提供内存间接寻址(VAX,这是一个非常高的CISCy ISA;没有提供此功能,那么瑞萨电子公司的RX,它是现代的CISC,则没有),以获取由内存中的指针(地址)指向的值。推测,首先将指针加载到寄存器中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

汇编语言的寻址模式(IA-32 NASM)

来自分类Dev

ARM汇编中str的说明

来自分类Dev

IA-32中的寻址模式

来自分类Dev

IA-32中的寻址模式

来自分类Dev

x86中的汇编代码说明

来自分类Dev

x86中的汇编代码说明

来自分类Dev

UNIX中的模式匹配说明

来自分类Dev

UNIX中的模式匹配说明

来自分类Dev

根据寻址模式在每个指令中查找值

来自分类Dev

在汇编x86实模式下寻址如何工作?标签为什么返回不同的值?

来自分类Dev

在GDB中反汇编C函数。澄清GAS组装说明

来自分类Dev

X86汇编中数组访问的说明

来自分类Dev

汇编说明阅读,leaq

来自分类Dev

汇编代码说明

来自分类Dev

汇编符号说明

来自分类Dev

网络设备的IP寻址-说明

来自分类Dev

堆栈相对寻址 - 说明和问题

来自分类Dev

CUDA纹理的不同寻址模式

来自分类Dev

程序集8086寻址模式

来自分类Dev

::“ r” vs:“ = r”汇编说明

来自分类Dev

“ CMPL”->基于模式进入间接寻址模式

来自分类Dev

有没有办法从6502的操作码中以编程方式确定寻址模式?

来自分类Dev

在DirectX9中将“纹理寻址模式”设置为边框颜色

来自分类Dev

'-在CodeInteger中寻址CSS

来自分类Dev

汇编数据寻址小尾数法如何工作?

来自分类Dev

展平函数中使用的模式匹配中的List [_]的说明

来自分类Dev

R中运行randomForest期间详细模式的说明

来自分类Dev

展平函数中使用的模式匹配中的List [_]的说明

来自分类Dev

使用索引寻址模式时的瓶颈