微机11-3-1.pptVIP

  • 3
  • 0
  • 约2.89千字
  • 约 20页
  • 2018-02-05 发布于河南
  • 举报
微机11-3-1

第三章 8086微处理器的寻址方式和指令系统 8086系统的各种寻址方式 3.1、8086的寻址方式(addressing mode) 指令中给出的操作数的表示(或存放)方式,如果操作数存放在存储器中,CPU必须先计算出操作数的物理地址。 一、 一般数据的寻址方式 1、立即寻址: 操作数(8位或16位)出现在指令中,与指令代码一起存放在存储器的代码段中。 例:MOV AX,6000H MOV AH,60H MOV AL,00H 2、寄存器寻址: 操作数放在CPU内部的寄存器中,可为8位或16位寄存器,由指令给出。 例:MOV AX,BX MOV AH,BH 4、寄存器间接寻址: 操作数在存储器中,其EA由BX﹑SI或DI中的内容给出,表示为: 5、寄存器相对寻址: 操作数在存储器中,其EA是disp(8位或16位)与变址或基址寄存器之和,disp与寄存器在指令中给出,表示为: 7、基址变址相对寻址: 基址变址寻址方式与寄存器相对寻址方式的结合。 问题:操作数在存储器中时,可采用多种寻址方式来确定其存储单元的偏移地址EA,但其段地址如何确定? 例:按不同寻址方式计算操作数在存储器中的偏移地址EA和物理地址PA。已知有关寄存器中的内容为:BX=0158H,DI=10A5H,disp=1B57H,DS=2100H,SS=1100H,BP=0100H MOV AX, [1B57H] src直接寻址,在数据段(默认) EA=1B57H PA=DS*10H+EA =21000H+1B57H=22B57H BX=0158H,DI=10A5H,disp=1B57H,DS=2100H,SS=1100H,BP=0100H (2) MOV [BX], AX dst寄存器间接寻址,在数据段(默认) EA=BX=0158H PA=DS*10H+EA =21000H+0158H=21158H BX=0158H,DI=10A5H,disp=1B57H,DS=2100H,SS=1100H,BP=0100H (3) MOV [BP+disp], AX dst寄存器相对寻址, 在堆栈段中(因为使用BP做基址寄存器) EA=BP+disp =0100H+1B57H=1C57H PA=SS*10H+EA =11000H+1C57H=12C57H BX=0158H,DI=10A5H,disp=1B57H,DS=2100H,SS=1100H,BP=0100H (4) MOV AX, [BX][DI] src基址变址寻址, 在数据段中 EA=BX+DI =0158H+10A5H=11FDH PA=DS*10H+EA =21000H+11FDH=221FDH BX=0158H,DI=10A5H,disp=1B57H,DS=2100H,SS=1100H,BP=0100H (5) MOV AX, disp[BP][DI] src基址变址相对寻址, 在堆栈段中 EA=BP+DI+disp =0100H+10A5H+1B57H=2CFCH PA=SS*10H+EA =11000H+2CFCH=13CFCH 二、 转移地址的寻址方式 1、段内直接转移,又称相对寻址:指令码中包含位移量disp,disp以补码表示,可8位或16位,转移有效地址是(IP)+disp,取指令的物理地址=(CS)*10H+(IP)+disp。 2、段内间接转移: 目的地址的偏移量在寄存器或存储器中,而此寄存器或存储器用一般数据寻址方式给出。 例:JMP BX 目的地址的偏移量在BX中 JMP [DI] 目的地址的偏移量在存储器中由DI给出 3、段间直接转移:指令码中直接给出目的地址的16位段地址和16位偏移地址,偏移量在前,低字节在前。 4、段间间接转移:目的地址的偏移量及段地址在存储器中,用数据寻址方式选中的存储器连续4个单元放有转移的目的地址的偏移量及段地址。 有关8086的寻址方式,详细阅读教材:P78~83 * 各类指令的功能和用法 8086的指令系统的构成 程序由一条一条的语句构成,每条语句都表示一个指令,书写程序时按照汇编语言的语法格式书写。

文档评论(0)

1亿VIP精品文档

相关文档