什么是立即数寻址

如题所述

立即寻址方式的目的就是将操作数紧跟在操作码后面,与操作码一起放在指令代码段中,在程序运行时,程序直接调用该操作数,而不需要到其他地址单元中去取相应的操作数,上述的写在指令中的操作数也称作立即数。

在MCS-51单片机汇编语言编程中,该寻址方式是将“#”号放在立即数前面,以表示该寻址方式为立即寻址,如将操作数写为#52H。

例: MOV A ,#52H

上述例子中“MOV”为操作码,“A”为第一操作数,其意义为累加寄存器,“#52H”为第二操作数,其意义就是立即数。通过该条程序指令可将十六进制数52H直接放入累加器中,当然也可以将立即数表示为二进制数或十进制数,如#00B。

扩展资料:

立即数的实施限制:  

由于立即数被打包到指令本身中,因此某些ISA具有可用作立即值的受限范围的值。例如,在MIPS32中,立即数限制为16位。在一些更复杂的体系结构(如ARM)上,某些指令可能接受16位值,其他指令可能接受较小的范围,并且能够根据需要旋转位。

在立即数不能直接编码到指令中的情况下,例如当值超出范围时,可以采用各种其他方式来处理这些值。一个这样的选项是从内存中的常量池(例如文字池)加载公共值。或者,可以使用可以表示或加载到寄存器中并从那里操作的值来组装值。

一些ISA(如MIPS32和ARM)具有专用指令,如LUI,MOVW和MOVT,它们提供了一种方法,将高16位后跟低16位加载到单个寄存器中。

参考资料来源:百度百科-立即寻址

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-14

立即数寻址是汇编语言中的一种寻址方式,在面向不同形式的处理器中,会有不同的编写方式。

立即寻址方式只能用于源操作数字段,不能用于目的操作数字段,经常用于给寄存器赋初值。

例:MOV AX,251 ;将十进制数251送入寄存器AX,“251”是立即数。

MOV AL,‘5’ ;将5的ASCII码送入寄存器AL,‘5’是立即数。

MOV AL,E8H ;将8位立即数E8H送入寄存器AL。

MOV AX,2346H ;将16位立即数2346H送入寄存器AX。

扩展资料

在程序运行时,程序直接调用该操作数,而不需要到其他地址单元中去取相应的操作数,上述的写在指令中的操作数也称作立即数。

在MCS-51单片机汇编语言编程中,该寻址方式是将“#”号放在立即数前面,以表示该寻址方式为立即寻址,如将操作数写为#52H。

例: MOV A ,#52H

上述例子中“MOV”为操作码,“A”为第一操作数,其意义为累加寄存器,“#52H”为第二操作数,其意义就是立即数。通过该条程序指令可将十六进制数52H直接放入累加器中,当然也可以将立即数表示为二进制数或十进制数,如#00B。

在8086系列微型处理器汇编语言编程中,该寻址方式不用将“#”放在立即数前面。

参考资料来源:百度百科-立即寻址

本回答被网友采纳
第2个回答  推荐于2017-05-25
立即数;指在程序存储区的常数,运行时数据不可改变。
立即数寻址是MCS-51单片机的一种寻址方式,操作数就写在指令中,立即寻址方式所提供的操作数紧跟在操作码后面,与操作码一起放在指令代码段中,不需要到其他地址单元中去取。

立即数寻址指在程序存储区对立即数读取。
如:mov MOV A ,#4fH

4fH 是在程序存储区存放的,所以是写死的,运行时改变不了。
相似回答