ARM指令集中立即数寻址的范围 上学期学习了一会儿ARM汇编指令,对其中立即数寻址一节有些疑惑。先看书上的一个例子: MOV R3, #0x3A ;将十六进制数3A放到寄存器R3中 在上面的指令中,第2个源操作数为立即数,数值可以是0~0xFF范围内的任意值。 可在平时却经常看到第2操作数大于0xFF的例子,如 MOV R3, #0x400 等等。 这是为什么呢?
立即寻址的立即数,其长度可以是8位、16位或32位,这些数值紧随操作码之后进行存储。对于16位或32位的立即数,它们采用“高高低低”的存储模式。例如,汇编指令中的:MOV AH, 80H ADD AX, 1234H MOV ECX, 123456H 以及:MOV B1, 12H MOV W1, 3456H ADD D1, 32123456H 在这些指令中,第二个...
ARM指令集中立即数寻址的范围 上学期学习了一会儿ARM汇编指令,对其中立即数寻址一节有些疑惑。先看书上的一个例子: MOV R3, #0x3A ;将十六进制数3A放到寄存器R3中 在上面的指令中,第2个源操作数为立即数,数值可以是0~0xFF范围内的任意值。 可在平时却经常看到第2操作数大于0xFF的例子,如 MOV R3, #0x400...
M为寻址方式字段,共3位,可反映6种寻址操作; A为地址码字段,共16-7-3=6位。 (2)直接寻址的最大范围为26=64。 (3)由于存储字长为16位,故一次间址的寻址范围为216;若多次间址,需用存储字的最高位来区别是否继续间接寻址,故寻址范围为215。 (4)立即数的范围为-32——31(有符号数),或0——63(无符...