立即寻址方式的目的就是将操作数紧跟在操作码后面,与操作码一起放在指令代码段中,在程序运行时,程序直接调用该操作数,而不需要到其他地址单元中去取相应的操作数,上述的写在指令中的操作数也称作立即数。
在MCS-51单片机汇编语言编程中,该寻址方式是将“#”号放在立即数前面,以表示该寻址方式为立即寻址,如将操作数写为#52H。
例: MOV A ,#52H
上述例子中“MOV”为操作码,“A”为第一操作数,其意义为累加寄存器,“#52H”为第二操作数,其意义就是立即数。通过该条程序指令可将十六进制数52H直接放入累加器中,当然也可以将立即数表示为二进制数或十进制数,如#00B。
扩展资料:
立即数的实施限制:
由于立即数被打包到指令本身中,因此某些ISA具有可用作立即值的受限范围的值。例如,在MIPS32中,立即数限制为16位。在一些更复杂的体系结构(如ARM)上,某些指令可能接受16位值,其他指令可能接受较小的范围,并且能够根据需要旋转位。
在立即数不能直接编码到指令中的情况下,例如当值超出范围时,可以采用各种其他方式来处理这些值。一个这样的选项是从内存中的常量池(例如文字池)加载公共值。或者,可以使用可以表示或加载到寄存器中并从那里操作的值来组装值。
一些ISA(如MIPS32和ARM)具有专用指令,如LUI,MOVW和MOVT,它们提供了一种方法,将高16位后跟低16位加载到单个寄存器中。
参考资料来源:百度百科-立即寻址
立即数寻址是汇编语言中的一种寻址方式,在面向不同形式的处理器中,会有不同的编写方式。
立即寻址方式只能用于源操作数字段,不能用于目的操作数字段,经常用于给寄存器赋初值。
例: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系列微型处理器汇编语言编程中,该寻址方式不用将“#”放在立即数前面。
参考资料来源:百度百科-立即寻址
本回答被网友采纳