嵌入式 LDRH R2,[R2,原题如下小端模式下如果从0x30001010开始存放的一个双字是0x123456789ABCDEF0,且R1=0x30001010,则加载指令 LDRH R2,[R2,#2]使R2=?我认为是0xBCDE,而答案是0x789A,为什么?

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/27 16:13:49
嵌入式LDRHR2,[R2,原题如下小端模式下如果从0x30001010开始存放的一个双字是0x123456789ABCDEF0,且R1=0x30001010,则加载指令LDRHR2,[R2,#2]使

嵌入式 LDRH R2,[R2,原题如下小端模式下如果从0x30001010开始存放的一个双字是0x123456789ABCDEF0,且R1=0x30001010,则加载指令 LDRH R2,[R2,#2]使R2=?我认为是0xBCDE,而答案是0x789A,为什么?
嵌入式 LDRH R2,[R2,
原题如下
小端模式下如果从0x30001010开始存放的一个双字是0x123456789ABCDEF0,且R1=0x30001010,则加载指令 LDRH R2,[R2,#2]使R2=?
我认为是0xBCDE,而答案是0x789A,为什么?

嵌入式 LDRH R2,[R2,原题如下小端模式下如果从0x30001010开始存放的一个双字是0x123456789ABCDEF0,且R1=0x30001010,则加载指令 LDRH R2,[R2,#2]使R2=?我认为是0xBCDE,而答案是0x789A,为什么?
首先:LDRH是半字数据读取指令,
LDR r0,[r1,#4]
这句指令的意思是:用r1的值加上立即数4,然后存入r0中去.参照这句话的意思,把所有可能的情况都梳理一边,分别算出他们的值,然后到机器上验证,就知道啦!
首先已经知道是小端机了,然后就分为:取高半截,还是低半截.
刚沾了一点点皮毛,也短时方法了.见笑了!