计组8086指令格式实验报告计组8086指令格式实验报告.docVIP

  • 53
  • 0
  • 约8.43千字
  • 约 9页
  • 2017-04-19 发布于贵州
  • 举报

计组8086指令格式实验报告计组8086指令格式实验报告.doc

PAGE  PAGE 9 实验二(基本要求) (第一回合) 8086/8088指令系统采用了一种灵活的,由1~6个字节组成的变字长的指令格式,包括操作码、寻址方式以及操作数3部分,如图1所示。 操作码 操作码 MOD 操作码 DATA8/DISP8 操作码 MOD DATA8/DISP8 操作码 DATA/DISP16(低) DATA/DISP16(高) 操作码 MOD DATA/DISP16(低) DATA/DISP16(高) 操作码 MOD DISP 16 (低) DISP16 (高) DATA8 操作码 MOD DISP16 (低) DISP16 (高) DATA16 (低) DATA16(高) 图1 8086/8088 不同字长的指令码格式 通常指令的第一字节为操作码,规定指令的操作类型;第二字节规定操作数的寻址方式;接着以后的3~6字节依据指令的不同取舍,可变字长的指令主要体现在这里,一般由其指出存储器操作数地址位移量或立即数。 图2 8086/8088操作码及寻址方式字段格式 第一字节中,W指出操作数类型:W=0为字节,W=1为字。D指出操作数的传送方向:D=0寄存器操作数为源操作数,D=1寄存器操作数为目标操作数。 第二字节指出所用的两个操作数存放的位置,以及存储器中操作数有效地址EA的计算方法。 MOD字段用来区分另一个操作数在寄存器中(寄存器寻址)还是在存储器中(存储器寻址)。在存储器寻址的情况下,还用来指出该字节后面有多少偏移量字节(即指出存储器操作数地址偏移量的字节数)。MOD字段编码表见表1。 (注:若第二操作数为立即数,则指令格式中无MOD字段,从第二字节起直接就是该操作数,且操作码另行编码。) 表1 MOD 字段编码表及寻址方式选择 MOD16位地址模式下32位地址模式下00存储器寻址,没有位移量存储器寻址,没有位移量01存储器寻址,有8位位移量存储器寻址,有8位位移量10存储器寻址,有16位位移量存储器寻址,有32位位移量11寄存器寻址,没有位移量寄存器寻址,没有位移量REG字段规定一个寄存器操作数,它作为源操作数还是目标操作数已由第一个字节中的D 位规定。由REG字段选择寄存器的具体规定见表2。 表2 REG 字段编码表 REG域 编码W=1(字操作)W=0 (字节操作)16位模式32位模式000AXEAXAL001CXECXCL010DXEDXDL011BXEBXBL100SPESPAH101BPEBPCH110SIESIDH111DIEDIBHR/M字段受MOD字段控制。若MOD=11,为寄存器方式,R/M字段将指出第二操作数所在寄存器编号。MOD=00,01,10为存储器方式,R/M则指出如何计算存储器中操作数地址。MOD与R/M字段组合的寻址方式见表3。 表3 各种MOD与R/M字段组合编码及有关地址的计算(16位地址模式下) MOD=11寄存器寻址MOD≠11存储寻址、有效地址的计算公式R/MW=1W=0R/M不带位移l量MOD=00带8位位移量MOD=01带16位位移量MOD=10000AXAL000[BX+SI][BX+SI+D8][BX+SI+D16]001CXCL001[BX+DI][BX+DI+D8][BX+SI+D16]010DXDL010[BP+SI][BP+SI+D8][BP+SI+D16]011BXBL011[BP+DI][BP+DI+D8][BP+DI+D16]100SPAH100[SI][SI+D8][SI+D16]101BPCH101[DI][DI+D8][DI+D16]110SIDH110(直接寻址)[BP+D8][BP+D16]111DIBH111[BX][BX+D8][BX+D16]例如:指令 MOV AH,[BX+DI+50H]。 代码格式如下。 OPCODE D W MOD REG R/M DISP—8 100010 1 0 01 100 001 指令码:8A6150H。 指令ADD DISP [BX] [DI],DX;DISP=4523H 代码格式:

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档