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

来源:学生作业帮助网 编辑:作业帮 时间:2024/12/01 03:59:04
嵌入式 LDRH R2,[R2,原题如下小端模式下如果从0x30001010开始存放的一个双字是0x123456789ABCDEF0,且R1=0x30001010,则加载指令 LDRH R2,[R2,#2]使R2=?我认为是0xBCDE,而答案是0x789A,为什么?
xSn@lG`Q۴+QTl48KJ `` ?3wf/QtEwH{{ιv8d:0|w| {YnZy|hyn}mQn)₅<ꬼ44j (rBO>{׻o*Z娺 ހܹpV8o\6YE;L?+jרZB_>FgNc<2H 3RtZo  #uUMxU&8 FUS"_\!{ql!jёE !Br?b ҧVP"x=7Pk%FgzQg?رZ`"xTwnaS~ESrFeAq PeײC;}Zsh;(3A`r7*ݍG[n2"ܚylrNT6:z:ޠNIwЛv)Oμ9fBgm=ش~KS|b>Enor

嵌入式 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中去.参照这句话的意思,把所有可能的情况都梳理一边,分别算出他们的值,然后到机器上验证,就知道啦!
首先已经知道是小端机了,然后就分为:取高半截,还是低半截.
刚沾了一点点皮毛,也短时方法了.见笑了!