
立即寻址方式的目的就是将 *** 作数紧跟在 *** 作码后面,与 *** 作码一起放在指令代码段中,在程序运行时,程序直接调用该 *** 作数,而不需要到其他地址单元中去取相应的 *** 作数,上述的写在指令中的 *** 作数也称作立即数。
在MCS-51单片机汇编语言编程中,该寻址方式是将“#”号放在立即数前面,以表示该寻址方式为立即寻址,如将 *** 作数写为#52H。
例: MOV A ,#52H
上述例子中“MOV”为 *** 作码,“A”为第一 *** 作数,其意义为累加寄存器,“#52H”为第二 *** 作数,其意义就是立即数。通过该条程序指令可将十六进制数52H直接放入累加器中,当然也可以将立即数表示为二进制数或十进制数,如#00B。
扩展资料:
立即数的实施限制:
由于立即数被打包到指令本身中,因此某些ISA具有可用作立即值的受限范围的值。例如,在MIPS32中,立即数限制为16位。在一些更复杂的体系结构(如ARM)上,某些指令可能接受16位值,其他指令可能接受较小的范围,并且能够根据需要旋转位。
在立即数不能直接编码到指令中的情况下,例如当值超出范围时,可以采用各种其他方式来处理这些值。一个这样的选项是从内存中的常量池(例如文字池)加载公共值。或者,可以使用可以表示或加载到寄存器中并从那里 *** 作的值来组装值。
一些ISA(如MIPS32和ARM)具有专用指令,如LUI,MOVW和MOVT,它们提供了一种方法,将高16位后跟低16位加载到单个寄存器中。
参考资料来源:百度百科-立即寻址
数据寻址方式: 查找 *** 作数或 *** 作数存放位置的方法,不同于程序寻址方式。 数据寻址方式主要有 3大类 : *** 作数包含在指令中、包含在处理器某个内部寄存器中、包含在存储器中。立即数寻址方式 : *** 作数包含在指令中。在取指令的同时, *** 作数也随着取出,这种 *** 作数被称为立即数,这种寻址方式也就称为 立即数寻址方式 。优点: 指令的执行速度快,因为立即寻址方式在取出指令的同时也取出了 *** 作数。缺点: 由于 *** 作数是指令的一部分,不便于修改,降低了程序的通用性和灵活性。适合的场景: 只适合于 *** 作数固定的场合,通常用于为主存单元和寄存器提供常数。立即数表现形式: 二进制数 (后缀字母B或b)十进制数 (不用后缀字母,或用D或d)十六进制数 (后缀字母H或h,以A~F开头时前面要加一个0)字符串 (用单引号扩起来的字符,表示对应的ASCII码值)。 例如: MOV AL, 0FH 将8位立即数0FH传送到AL寄存器中 MOV AX, 0102H 将16位立即数0102H传送到AX寄存器中注意: 当立即数寻址时,只允许源 *** 作数为立即数,目标 *** 作数必须是寄存器或存储器,其作用是给寄存器或存储单元赋值。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)