第三讲2 操作数的寻址方式
- 格式:ppt
- 大小:875.00 KB
- 文档页数:17
汇编语⾔--操作数的寻址⽅式(三)三、操作数的寻址⽅式操作数是指令或程序的主要处理对象。
如果某条指令或某个程序不处理任何操作数,那么,该指令或程序不可能有数据处理功能。
在CPU的指令系统中,除NOP(空操作指令)、HLT(停机指令)等少数指令之外,⼤量的指令在执⾏过程中都会涉及到操作数。
所以,在指令中如何表达操作数或操作数所在位置就是正确运⽤汇编指令的⼀个重要因素。
在指令中,指定操作数或操作数存放位置的⽅法称为寻址⽅式。
操作数的各种寻址⽅式是⽤汇编语⾔进⾏程序设计的基础,也是本课程学习的重点之⼀。
微机系统有七种基本的寻址⽅式:⽴即寻址⽅式、寄存器寻址⽅式、直接寻址⽅式、寄存器间接寻址⽅式、寄存器相对寻址⽅式、基址加变址寻址⽅式、相对基址加变址寻址⽅式等。
其中,后五种寻址⽅式是确定内存单元有效地址的五种不同的计算⽅法,⽤它们可⽅便地实现对数组元素的访问。
另外,在32位微机系统中,为了扩⼤对存储单元的寻址能⼒,增加了⼀种新的寻址⽅式——32位地址的寻址⽅式。
为了表达⽅便,我们⽤符号“(X)”表⽰X的值,如:(AX)表⽰寄存器AX的值。
1、⽴即寻址⽅式操作数作为指令的⼀部分⽽直接写在指令中,这种操作数称为⽴即数,这种寻址⽅式也就称为⽴即数寻址⽅式。
⽴即数可以是8位、16位或32位,该数值紧跟在操作码之后。
如果⽴即数为16位或32位,那么,它将按“⾼⾼低低”的原则进⾏存储。
例如:MOV AH, 80H ADD AX, 1234H MOV ECX, 123456HMOV B1, 12H MOV W1, 3456H ADD D1, 32123456H其中:B1、W1和D1分别是字节、字和双字单元。
以上指令中的第⼆操作数都是⽴即数,在汇编语⾔中,规定:⽴即数不能作为指令中的第⼆操作数。
该规定与⾼级语⾔中“赋值语句的左边不能是常量”的规定相⼀致。
⽴即数寻址⽅式通常⽤于对通⽤寄存器或内存单元赋初值。
图3.1是指令“MOV AX, 4576H”存储形式和执⾏⽰意图。
3.2 寻址方式所谓寻址方式,通常是指某一个CPU指令系统中规定的寻找操作数所在地址的方式,或者说通过什么的方式找到操作数。
寻址方式的方便与快捷是衡量CPU性能的一个重要方面,MCS—5 1单片机有七种寻找方式。
3.2.1 立即数寻址立即寻址方式是操作数包括在指令字节中,指令操作码后面字节的内容就是操作数本身,其数值由程序员在编制程序时指定,以指令字节的形式存放在程序存储器中。
立即数只能作为源操作数,不能当作目的操作数。
例如: MOV A,#52H ;A←52HMOV DPTR,#5678H ;DPTR←5678H立即寻址示意图如3.1所示。
图3.1 立即寻址示意图3.2.2 直接寻址在指令中含有操作数的直接地址,该地址指出了参与操作的数据所在的字节地址或位地址。
例如:MOV A,52H ;把片内RAM字节地址52H单元的内容送累加器A中。
MOV 52H,A ;把A的内容传送给片内RAM的52H单元中。
MOV 50H,60H ;把片内RAM字节地址60H单元的内容送到50H单元中。
MOV IE,#40H ;把立即数40H送到中断允许寄存器IE。
IE为专用功能寄存器,其字节地址为0A8H。
该指令等价于MOV 0A8H,#40H。
INC 60H ;将地址60H单元中的内容自加1。
图3.2直接寻址方式示意图在MCS-51单片机指令系统中,直接寻址方式可以访问2种存储空间:(1)内部数据存储器的低128个字节单元(00H~7FH)(2)80H~FFH中的(SFR)特殊功能寄存器。
这里要注意,指令MOV A,#52H与MOV A,52H指令的区别,后者表示把片内RAM字节地址为52H单元的内容传送到累加器(A)。
3.2.3 寄存器寻址由指令指出某一个寄存器中的内容作为操作数,这种寻址方式称为寄存器寻址。
寄存器一般指累加器A和工作寄存器R0~R7。
例如:MOV A,Rn ;A←(Rn)其中n为0~7之一,Rn是工作寄存器。