8086指令系统精析(完整版).docVIP

  • 10
  • 0
  • 约2.49万字
  • 约 36页
  • 2016-12-09 发布于重庆
  • 举报
8086指令系统精析(完整版)

8086指令系统 基本数据类型 IA-32结构的基本数据类型是字节(8位)、字(16位)、双字(32位)、四字(64位,486中引入的)和双四字(128位,Pentium3中引入的)。 低字节占用内存中的最低地址,该地址也是此操作数的地址。图:P44 图3-1 字、双字、四字的自然边界是偶数编号的地址,字的自然边界是偶数编号的地址,双字和四字的自然边界地址要分别能被4和8除尽。 数据结构要尽可能在自然边界上对齐 对于不对齐的存储访问,处理器要求做两次存储访问操作;而对于对齐的访问,只要进行一次存储访问操作。 数字数据类型(学生自学)PPT 8086的指令格式 指令格式 Label(标号):mnemonic(助记符)argument1(参数1), argument2(参数2), argument3(参数3) 其中: 标号是一个标识符,后面跟有冒号 助记符是一类具有相同功能的指令操作码的保留名 操作数的三个参数是任选的,可以有零到三个操作数,操作数参数的数量取决于操作码 操作数参数可能是文字或数据项的标识符,也可能是寄存器的保留名或在程序的另一部分声明的赋予数据项的标识符。 在算术和逻辑指令中存在两个操作数时,右边的操作数是源,左边的操作数是目的。例如:LOADREG: MOV AX, SUBTOTAL 功能是把由SUBTOTAL表示的源操作数传送至AX寄存器。 8086/8088指令的操作数寻址方式 寻找操作数,操作数能定位在指令中、寄存器中、存储单元中以及I/O端口中。 立即数 用包含在指令中的操作数作为源操作数,这些操作数即为立即操作数。 立即数可以是8位或16位,立即数常用来给寄存器或内存单元赋初值。 例1 MOV AX , 2056H 结果 ( AH ) = 20H ( AL ) = 56H 例2 MOV AL , 78 H 结果 ( AL ) = 78H 寄存器操作数 操作数在寄存器中,指令中指定寄存器名 8 位操作数, 用 8 位寄存器: AH、AL、BH、BL、CH、CL、DH、DL 16 位操作数,用 16 位寄存器: AX、BX、CX、DX、SP、BP、SI、DI CS、DS、SS、ES 例1 MOV AX , 2056H 执行后:(AX)=2056H 例2 MOV BL , AH 执行前:(BL) = 12H, (AH) = 78H 执行后:(BL) = 78H (AH) = 78H 立即数寻址、寄存器寻址的操作数, 不用在取完指令后再到内存中取数。 以下的 5 中寻址方式,操作数存放在内存中,取完指令后,还需到内存取数。 指令中给出的是该操作数的地址,包括段地址和偏移地址。 3. 内存操作数 指令 MOV DS: [ DI ] , CL 完成将CL寄存器中的内容传送到以DS为段值,DI为偏移值的内存单元中。 例 编程将CL寄存器的内容传送到21000H单元中。PPT 地址 21000H=2000:1000H ,编程时, DS 存放段地址2000H,DI 存放偏移地址1000H MOV AX, 2000H MOV DS, AX ; (DS) = 2000H MOV DI, 1000H ; (DI) = 1000H MOV DS: [ DI ], CL ;(21000H) = (CL) 结果如图所示:PPT(第一页) 内存单元的地址由段地址和偏移地址构成 ▲ 为减短指令长度 指令中只给出偏移地址的来源,段地址由默认关系给出。 MOV AL,[ 2000H ] PA= ( DS ) ×10H + 2000H 即选择DS寄存器的内容为段地址。 ▲ CPU根据偏移地址给出的方式,按默认关系自动选择段寄存器,获取段值,由段值、偏移值构成操作数所在内存单元的物理地址。 指令中用 [ ] 给出偏移地址。操作数的偏移地址又称有效地址EA ( Efficient Address) 按给出偏移地址方式的不同,分为以下5种: 直接寻址 MOV AL, [ 1000H ] 寄存器间接寻址 MOV AL, [ BX ] 寄存器相对寻址 MOV AL, [ BX + 10H

文档评论(0)

1亿VIP精品文档

相关文档