如果ARM小端模式下,执行以下指令序列: LDR R1,=0x30001000 LDR R0,=0xb1b2b3b4 STR R0,[R1],#4 LDR R0,=0xele2e3e4 STR R0,[R1] LDMIA R1!,{R2,R3} 以上指令执

admin2020-04-06  39

问题 如果ARM小端模式下,执行以下指令序列:
LDR R1,=0x30001000
LDR R0,=0xb1b2b3b4
STR R0,[R1],#4
LDR R0,=0xele2e3e4
STR R0,[R1]
LDMIA R1!,{R2,R3}
以上指令执行后,0x30001002内存单元中的数据字节(用十六进制表示)=【53】和R2=【54】。

选项

答案【53】0xb2【54】0xe1e2e3e4

解析 R1=0x30001000,R0,=0xb1b2b3b4,STR R0,[R1],#4;将R0中的字数据写入以R1为地址的存储器中,并将新地址R1+4写入R1;在小端模式下,32位数据字的高字节存放在高地址,而低字节存放在低地址;地址0x30001002存放的是0xb2;块拷贝寻址又称多寄存器寻址,采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送。这种寻址方式可以用一条指令完成传送最多16个通用寄存器的值。LDMIA R1!,{R2,R3}将R1存放到R2,R1+4存放到R3,所以R2=0xe1e2e3e4。
转载请注明原文地址:https://kaotiyun.com/show/yaMZ777K
0

最新回复(0)