我最近开始玩ARM程序集,并注意到我似乎只打算将32位值移动到寄存器中,但是如果我只想将8或16位移动到寄存器中,比如在x86程序集中。即
arm
eor r0, r0
mov r0, #128
x86
xor eax, eax
mov al, 0x80r0现在包含0x80,但它是一个32位寄存器,因此它将包含0x00000080。
如果这是x86,我可以使用al (8位寄存器)来操作最后一个字节,而不是eax (32位寄存器)。
dr在ARM组装中有小寄存器吗?
发布于 2014-05-18 00:08:49
arm
eor r0, r0
mov r0, #128为什么不直接这么做呢?
mov r0,#128没有理由去执行..。
不,您没有相同的8位历史与arm,所以寄存器开始从32位开始。但是您仍然有一些指令可以帮助您在寄存器上执行次32位操作。
https://stackoverflow.com/questions/23716689
复制相似问题