【0401】寻址方式

    技术2023-04-11  87

    第五章 寻址方式和基本指令系统

    汇编语言有汇编指令、伪指令、宏指令

    汇编指令由 操作码+操作数1+操作数2 组成,操作数字段由寄存器、内存单元地址、端口地址和立即数(一个十进制数,例如’5’)

    双操作数指令\单操作数\无操作数

    push AX,AX必须是2个字节 单操作数

    NOP:空操作指令,什么操作也不做

    CLC:进位标志CF清零

    HAL:停机指令

    两个指标:指令执行时间,指令占用空间

    寻址方式

    立即数寻址方式:所要找的操作数直接写在指令中,这种操作数叫立即数.指令中有立即数的寻址方式叫立即寻址.这个立即数在代码段地址CS里

    注意:立即寻址只能用于源操作数字段;立即数的数据类型必须与目的操作数的类型一致,都是字或字节

    **寄存器寻址方式:**寄存器可以是8位,16位.CPU在寄存器中得到数据不用访问内存

    **存储器寻址方式:**CPU必须经过系统总线访问存储器,存储器的地址以逻辑地址形式表示,因此这一类寻址方式在指令中要表示出有效地址EA.双操作数不允许都是存储单元

    (1)直接寻址方式

    操作数存放在内存中,指令形如:MOV AX, DS:[2000H] 有效地址EA=2000H直接写在指令里,如果没有DS标记,默认是DS

    存储器读/写操作

    写操作:把MOV指令的目的操作数变为存储单元,源操作数为CPU的存储器

    读操作:把MOV指令的源操作数变为存储单元,目的操作数为CPU的存储器

    符号地址

    为存储单元定义一个名字,改名字就是符号地址.符号地址可以加括号也可以是不加括号.

    段超越:操作数在其他段地址中

    (2)寄存器间接寻址方式

    MOV AX ,[BX]

    操作数的EA在基址寄存器BX,BP或变址寄存器SI、DI中,操作数的段地址在数据段DS[BX +SI/DI]或堆栈段SS[BP+SI/DI]中,也可以用段超越

    (3)寄存器相对寻址方式

    操作数存放在内存中。指令形如:MOV AX,[BX +1234H]

    MOV AX,COUNT[DI] 注释:前面的COUNT是一个符号地址,如果是BP的话要用段地址SS

    (4)基址变址寻址方式

    MOV AX,[BX+SI]

    操作数的EA是一个基址寄存器和一个变址寄存器的内容之和

    DS【BX+SI、BX+DI】 SS【BP+SI,BP+DI】========?

    (5)相对基址变址寻址方式

    MOV AX,[BX+SI+1243H]

    Processed: 0.011, SQL: 9