欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4883|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

ARM匯編語言中MOV MVN LDR區(qū)別

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:108615 發(fā)表于 2016-3-13 17:21 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
個(gè)人總結(jié),如有錯(cuò)誤,歡迎糾正,謝謝!!!

MOV指令可以完成從另一個(gè)寄存器,被移位的寄存器或?qū)⒁粋(gè)立即數(shù)加載到目的寄存器。
例如:
MOV  R1,     R0
MOV  R1,  R0,  LSL   #3
MOV  R1 ,    #3
但把立即數(shù)賦給一個(gè)寄存器,對(duì)立即數(shù)的范圍有要求。只能是由8bit連續(xù)有效位通過偶
數(shù)次移位能得到的數(shù)。如果立即數(shù)超出這個(gè)范圍,就沒辦法用一條MOV指令給寄存器賦值。
例如:
MOV   R0,    #0xFF
這條指令的意思是將0xFF這個(gè)立即數(shù)復(fù)制到R0寄存器中去,且MOV 指令只能將寄存器
中的數(shù)相互的復(fù)制。

MVN指令可以完成從另一個(gè)寄存器,被移位的寄存器或?qū)⒁粋(gè)立即數(shù)加載到目的寄存器。
與MOV指令不同之處傳送之前按位取反了,即把一個(gè)被取反的值傳送到目的寄存器中。
例如:
MVN  R0,  #0  //是將立即數(shù)0去反后傳送給寄存器R0的。
這條指令的意思是將MOV指令不能操作的一些立即數(shù)進(jìn)行操作!也是只能在寄存器中相互
復(fù)制。

ARM指令集中,LDR通常都是作為加載指令的,但是它也可以作偽指令。
LDR,STR作為加載指令, 用于寄存器和存儲(chǔ)器之間的數(shù)據(jù)傳輸。一般用在寄存器間接尋址
或基址變址尋址。
例如:
LDR   R1,  [R0]    //寄存器間接尋址
LDR   R1,  [R0,#3]  //基址變址尋址

LDR 作為偽指令和ARM的LDR指令很像,但是作用不太一樣。LDR偽指令可以在立即數(shù)前
加上=,以表示把一個(gè)地址寫到某寄存器中。
LDR   R1,  =0xxxxx
當(dāng)?shù)诙䝼(gè)操作數(shù)0xxxxx沒有超過MOV或者M(jìn)VN 第二個(gè)操作數(shù)的范圍,就會(huì)將指令之間編
譯成MOV    R1 ,    #0xxxxx或者M(jìn)VN    R1 ,    #0xxxxx(取反后的值)

當(dāng)?shù)诙䝼(gè)操作數(shù)0xxxxx超過MOV或者M(jìn)VN 第二個(gè)操作數(shù)的范圍,編譯器將該常數(shù)放在數(shù)據(jù)
緩沖區(qū)中,同時(shí)用一條基于PC的LDR指令讀取該常數(shù)。但是LDR偽指令處到數(shù)據(jù)緩沖區(qū)(
也叫做  文字池)的目標(biāo)數(shù)據(jù)所在的地址偏移量一定要小于4KB,否則出錯(cuò)。這也是能不用
LDR偽指令就不用的原因。




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表