大家好,欢迎来到IT知识分享网。
一、什么是立即数
- 我们通常把在立即寻址方式指令中给出的数称为立即数。
- 立即数可以是8位、16位或32位,该数值紧跟在操作码之后。
- 如果立即数为16位或32位,那么,它将按“高高低低”的原则进行存储。
二、什么是立即寻址
立即寻址方式的目的就是将操作数紧跟在操作码后面,与操作码一起放在指令代码段中,在程序运行时,程序直接调用该操作数,而不需要到其他地址单元中去取相应的操作数,上述的写在指令中的操作数也称作立即数。
例如:
MOV R0,#50H
MOV为操作码,R0为第一操作数,50H为立即数
三、如何判断立即数
由于这种立即数的构造方法中包含循环移位操作,而循环移位操作会影响CPSR的条件标志位C。因此,同一个合法的立即数由于采用了不同的编码方式,将使得某些指令的执行产生不同的结果,这是不能允许的。ARM汇编编译器按照下面的规则生成立即数的编码。
- 当立即数数值在0和0xFF范围时,immmed_8= immediate ,rotate_imm=0.、
- 其他情况下,汇编编译器选择使rotate_imm数值最小的编码方式。
总结:看到一串数,先把它化成二进制,然后去八位数,看左右移动偶数位是否能还原。
四、为什么循环移位是偶数位
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122523.html