这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » MOV MOV指?8位图是什么意思?发现个奇怪现象

共2条 1/1 1 跳转至

MOV MOV指?8位图是什么意思?发现个奇怪现象

院士
2006-09-17 18:14:16     打赏
MOV MOV指?8位图是什么意思?发现个奇怪现象



关键词: 位图     是什么     意思     发现     奇怪     现象    

院士
2006-12-22 22:43:00     打赏
2楼
MOV    R0,#0x12345678     ;编译出错

MOV    R0,#0x123        ;编译出错
               结论是不是MOV的操作数只能8位呢?                  因为0x12=二进制 0001,0010
MOV    R0,#0x12  ;果然对了 编译通过

MOV    R0,#0x12000000     ;可是编译也能通过啊

MOV    R0,#0x12000000 语句  和  MOV    R0,#0x12345678 语句  有什么区别,为什么后者不能通过编译???

8位图是什么意思, (《ARM嵌入式系统基础教程》上说MOV只能对8位图操作) 可是 MOV    R0,#0x12000000  还是8位图吗?  MOV    R0,#0x12345678 就不是8位图吗???????好奇怪????
不知道我的问题有人碰到吗?请指教???? 1: 就是8bit数据8bit数据经过移位得到的数据。如0b10000001。你的0x123有9位了。 2: 真的吗?谢谢 3: 台湾那边的叫法都是这样的 4: RE0x123是12位的吧。 5: to:liusuper  0x12000000是几位呢?0x12000000是几位呢?
你的解析不是很完美@! 6: 看两个1之间的距离二进制数两个1相距小于8就可以了例如0b10000001,0b00100000000000000000000000010000也可以。
而0x123=0b1 00100011,有9位。
ARM里面引用8位图加移位的方法获取特殊的立即数是它的一个特色,而相应的这条MOV指令里面就包含了这个8位图以及移位位数、目的寄存器号等信息,这样加载某些特殊的立即字数据就可以用一条MOV指令,可以省去字池里面一个字的空间,速度可以提高很多。所以一般用伪指令LDR等来加载立即数,编译器会判断能否用MOV指令,如果不能用的话就会在字池里面生成这个字,并且用相对PC寻址等寻址方法来加载这个字。 7: to :zhiwei 0b001000000000000010000不可以吧to :zhiwei 0b001000000000000010000不可以吧   
你的表述很清楚了,,谢谢,不过你举列子的时候, 又粗心了 8: 上面的例子是对的可以看作字数据0b10000001右移三位。

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]