什么是单片机的立即寻址方式

立即寻址是汇编语言中的一种寻址方式,在面向不同形式的单片机中会有不同的编写方式。

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

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

例如:MOV A,#52H

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

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

例如:MOV AH,80H

上述例子中的第一个操作数“AH”表示高位累加器,第二个操作数为立即数,其前面不用加入“#”。

立即数表示注意事项如下:

(1)根据数制类型不同,可以使用二进制、八进制、十进制、十六进制等表示方法,并在相应的数制类型后面加上B、O、D、H作为区分,如00001111B,02H等。

(2)根据微型单片机的处理位数不同,程序编写时应对其取值范围、存储方式加以注意。如对于8位单片机,应采用00H~FFH(以十六进制表示)之间的数。

(3)对于16位以上的单片机在立即数为16位或32位时,它将按“高高低低”的原则进行存储。

例如(以下的例子为8086系列汇编语言中的指令格式,括号中为指令的解释):

MOV AH,80H(将8位立即数存入高位累加寄存器)

ADD AX,1234H(将16位立即数与累加寄存器中的数相加并存入累加寄存器)

MOV ECX,12345678H(将32位立即数存入扩展计数寄存器)

MOV B1,12H(将8位立即数存入字节单元)

MOV W1,3456H(将16位立即数存入字单元)

ADD D1,32123456H(将32位立即数与双字单元中的数相加)

应注意,以上指令中的第二操作数(例如,MOV AH,80H中80H为第二操作数)都是立即数。在汇编语言中规定:立即数不能作为指令中的第一操作数。该规定与高级语言中“赋值语句的左边不能是常量”的规定相一致。

(4)立即数寻址方式通常用于对通用寄存器或内存单元赋初值。

版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。http://www.apmygs.com/1629.html
返回顶部