文档详情

微计算机技术3-4课件.ppt

发布:2017-03-05约1.68万字共78页下载文档
文本预览下载声明
第3章 8086指令系统及寻址方式 第3章 8086指令系统及寻址方式 3.1 汇编语言程序格式 3.2 寻址方式与机器语言转换 3.3 8086指令系统 伪操作 汇编程序由一系列伪指令语句或汇编语言指令组成。 伪指令指示汇编程序如何将汇编语言指令转换成机器代码。 程序结构伪操作:TITLE,END;SEGMENT,ENDS;PROC,ENDP;ASSUME,PAGE。 数据类型及数据定义伪操作:DB,DW,DD,DQ,DT;DUP;EQU,=。 其他常用伪操作:ORG,$;PTR,THIS,LABEL;OFFSET,SEG;PUBLIC,EXTRN。 3.2 寻址方式与机器语言转换 8086/8088微处理器有7种数据寻址方式和4种转移地址寻址方式。 与数据有关的寻址方式用来寻找操作数的地址。 与转移地址有关的寻址方式用来寻找指令的地址。 1. 数据寻址方式:寻找操作数的地址 ⑴寄存器寻址方式:操作数存放在寄存器中,操作数的地址用寄存器名称表示。 执行寄存器寻址类指令时,EU不使用总线。 例如:MOV AX,BX ⑵立即寻址方式:操作数以立即数的形式体现在指令代码之中,存放在指令操作码之后。 立即寻址方式只能用于源操作数。 执行立即寻址类指令时,EU不使用总线。 例如:MOV AX,1234H 以下5种寻址方式,操作数存放在存储器或者IO端口中,因此EU要使用总线。 ⑶直接寻址方式:操作数存放在存储器/IO端口中,操作数的存储地址直接体现在指令操作码之后。 例如:MOV [1234H],AX IN AX,0080H ⑷寄存器间接寻址方式:操作数存放在存储器/IO端口中,操作数的存储地址存放在寄存器中。 例如:MOV [BX],AX IN AX,DX ⑸寄存器相对寻址方式:操作数存放在存储器中,操作数的存储地址由寄存器中存放的数值与体现在指令代码中的立即数偏移量相加后获得。 例如:MOV AX,[BX+1234H] ⑹基址变址寻址方式:操作数存放在存储器中,操作数的存储地址由基址寄存器(BX或BP)中存放的数值与变址寄存器(SI或DI)中存放的数值相加后获得。 例如:MOV AX,[BX+SI] ⑺相对基址变址寻址方式:操作数存放在存储器中,操作数的存储地址由基址寄存器中的数值与变址寄存器中的数值和体现在指令代码中的立即数偏移量相加后获得。 例如:MOV AX,[BX+SI+1234H] 2.转移地址寻址方式:寻找指令代码的地址 ⑴段内直接寻址方式:指令代码中直接体现目标地址偏移值(16位或者8位)。 例如:JMP 1234H ⑵段内间接寻址方式:目标地址偏移值(16位或者8位)存放在寄存器中。 例如:JMP AX ⑶段间直接寻址方式:指令代码中直接体现目标地址的32位逻辑值。 例如:JMP 1000:1234H ⑷段间间接寻址方式:目标地址的32位逻辑值(CS:IP)存放在存储器中,而寻找存储单元地址则可以用数据寻址方式中除立即寻址和寄存器寻址之外的任何一种寻址方式。 例如:JMP [1234H] JMP DWORD PTR [BX] JMP DWORD PTR [BX+1234H] 3.2.2 机器语言指令的转换 8086指令系统的机器语言指令是可变长指令,可以由1~7个字节组成。 1. 机器语言的组成 例:某机器指令为 3.2 8086指令系统 8086/8088的指令系统可以分为6类指令: (1)数据传送指令; (2)算术指令; (3)逻辑指令; (4)串操作指令; (5)控制转移指令; (6)处理机控制指令; 1. 数据传送指令: (1)通用数据传送指令 MOV 传送; PUSH 进栈; POP 出栈; XCHG 交换 (2)累加器专用传送指令 IN 输入; OUT 输出; XLAT 换码 (3)地址传送指令 LEA 有效地址送寄存器; LDS 指针送寄存器和DS; LES 指针送寄存器和ES (4)标志寄存器传送指令 LAHF 标志送AH; SAHF AH送标志寄存器; PUSHF 标志进栈; POPF 标志出栈 通用数据传送指令 1. MOV类:在寄存器之间或寄存器与存储器之间,传输字或字节。 MOV dst,src ;(dst)←(src) 说明: (1)双操作数指令不允许两个操作数同时为段寄存器或存储器操作数。 (2)立即数不能传送到段寄存器中。 (3)目的操作数不允许使用CS段寄存器,也不能用立即数。 (4)dst与src必须
显示全部
相似文档