汇编语言程序设计第三章课件.pptVIP

  • 0
  • 0
  • 约4.15千字
  • 约 20页
  • 2019-06-29 发布于湖北
  • 举报
第三章 实指令寻址指令系统 3.1 指令的基本寻址方式 3.1.1 指令的基本格式(1) 指令一般由操作码OP、寻址方式(Addressing Mode)和一个或多个操作数OD等字段组成。 按操作数个数划分,可表示为: OP 操作数 OP 目的操作数,源操作数 ;至少一个操作数是寄存器 OP ;操作数隐含 例如: INC AX ;AX+1→AX SUB BX,CX ;BX-CX → BX CLC ;0 → CF 3.1.1 指令的基本格式(2) 寻址方式用来说明操作数的偏移地址EA(Effective Address)的形成方式。偏移地址也称为有效地址, 指的是相对于段起始地址的位移。 3.1.1 指令的基本格式(3) 3.1.1 指令的基本格式(4) 存储器单元的物理地址 PA=段寄存器的值*24+偏移地址 其中PA为20位的地址,段地址及偏移地址为16位。 以BP来寻址PA,默认的段寄存器是SS;以BX,SI,DI来寻址PA,默认采用DS。可以采用段超越来指定需要段存器。 DS可被CS,SS,ES,FS,GS超越;SS能被CS,DS,ES,FS,GS超越。 3.1.1 指令的基本格式(5) 例如:设FIVE的段地址是4000H,存放在DS中,EA=10H , 则 FIVE DB 5 MOV AL,FIVE 变量FIVE的PA=DS*24+EA=40000H+10H=40010H 设FIVE的段地址已经存放在ES中,则通过段超越前缀可以改变默认指定的段寄存器。 MOV AL, ES:FIVE ;PA=ES*24+EA 3.1.2 数据寻址方式 1、立即寻址 操作数直接放在指令中,又称为立即数寻址。 如:MOV AX, 2018H MOV CL,96H 2、寄存器寻址 操作数存放在寄存器中。 例如:MOV DX,AX VAR DW ? MOV VAR, AX 注意:如果两个操作数都是寄存器,则类型(长度)必须一致。 MOV DX,AL ;错误,AL是8位,DX则是16位,类型不一致。 3、直接寻址 指令操作码OP后面直接给出操作数的16位偏移地址EA。 偏移地址可以是数值地址或符号地址。 直接寻址给出地址的默认段寄存器是数据段寄存器(DS)。 例如: MOV AX, [3020H] 或者: VAR DW 86 MOV AX,VAR 段超越形式: MOV AX,ES:[3020H] 4.寄存器间接寻址 5.寄存器相对寻址 操作数的偏移地址EA是指令中 8位或16位位移量(DISP8,16)加上 基址寄存器或变址寄存器的内容之和。 即EA={BX∨BP ∨SI ∨DI}+DISP8,16 例如:设COUNT=2000H, SI=06H, DS=4000H, 则 COUNT DW 5,6,3,7,8 MOV AX, COUNT[SI] 6.基址变址寻址 操作数的偏移地址EA是由指令说明的一个基址寄存器和一个变址寄存器的内容之和。 EA={BX∨BP}+{SI ∨ DI} 如:BX=100H, SI=80H, DS=4000H MOV AX,[BX][SI] PA=? 7.相对基址变址寻址 操作数的偏移地址是指令中一个8位或16位的偏移量加上基址寄存器和变址寄存器的内容之和。即: EA={BX ∨BP}+{SI ∨DI}+{DISP8,16} 如:设COUNT=0140H, BX=600H, SI=10H, DS=2000H MOV AX,COUNT[BX][SI] PA=? 练习 已经DS=2000H,SS=2001H, BP=0F3H, SI=2,内存单元的值如图所示。 给出下列指令的源操数的寻址方式, 以及执行后AX的值。 (1)MOV AX,1200H (2) MOV AX,BX (3) MOV AX,[BX] (

文档评论(0)

1亿VIP精品文档

相关文档