微机原理-2(指令).ppt

上传人:本田雅阁 文档编号:2117082 上传时间:2019-02-18 格式:PPT 页数:37 大小:331.01KB
返回 下载 相关 举报
微机原理-2(指令).ppt_第1页
第1页 / 共37页
微机原理-2(指令).ppt_第2页
第2页 / 共37页
微机原理-2(指令).ppt_第3页
第3页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《微机原理-2(指令).ppt》由会员分享,可在线阅读,更多相关《微机原理-2(指令).ppt(37页珍藏版)》请在三一文库上搜索。

1、第二章 80X86 指令系统,8086 指令具有如下特点:,、指令格式灵活; 、寻址功能强; 、具有多种数据处理能力; 、具有支持多处理器结构的指令。,介绍几个术语:, 机器指令(机器码)-二进制编码的指令,计算机 仅识别机器指令。, 指令,操作码- 操作数-,指出指令的操作性质,如加、 减、乘、除; 指出参与操作的数,或该数存 放的地址,或程序转移的地址。, 地址,源地址- 目的地址 有效地址-,参与操作的数所存放的存储 单元的地址;,2.1 8086 /8088指令系统,一、8086/8088指令格式,采用变字长的指令格式,由16个字节组成。 见教材P87,操作结果所存放的存储单元 地址;

2、,处理器根据指令给出的信息,求 出存放操作数的存储单元地址。,二、8086/8088指令系统的寻址方式,1、操作数的种类,操作数,数据操作数 地址操作数,2、 8086/8088指令系统的寻址方式,1) 数据寻址方式, 立即寻址方式,指令中所用的8 位或16 位数就放在指令本身 的最后一个或两个字节中。 如: MOV AL, 80H MOV AX, 1090H, 寄存器寻址,指定CPU 某寄存器的内容为操作数,寄存器名在指令中指出。如:INC SI , 直接寻址,操作数在存储器中,存储单元的偏移地址由 指令直接给出。 如:MOV AX, 1090H, 寄存器间接寻址,操作数在存储器中,有效地址

3、由寄存器指出。 寄存器可以是SI、DI、BX、BP,EA=, SI DI BX BP ,EA:为有效地址, 存储器寻址, 基址加变址寻址-操作数在存储器中,EA=,+, SI DI , BX BP , 相对的基址加变址寻址-操作数在存储器中,EA=, 寄存器相对寻址-操作数在存储器中,EA=, SI DI BX BP ,+,8 16,disp, BX BP ,+, SI DI ,+,8 16,disp,说明:存储器寻址方式中,默认的段寄存器为DS, 若寄存器为BP ,则默然的段寄存器为SS ,可用 段前缀修改段寄存器。, I/O端口寻址方式,直接寻址 间接寻址,I/O端口地址255 I/O端口

4、地址 为065535,2)地址寻址方式,段内 段间,在转移指令中介绍,例: 初始DS=4120H SS=2400H BX=0200H DI=1000H 执行指令 MOV AH, BX+DI+1234H EA=? 物理地址=?,若指令改为MOV AH, BP+DI+1234H BP=0450H EA=? 物理地址=?,1、通用数据传送指令,(1)最基本的传送指令-MOV,一、数据传送指令,2-2 8086 指令系统,格式:MOV DST,SRC,其中:reg-寄存器;mem/reg-存储器/寄存器; seg-段寄存器;dada-8/16位立即数,mem:可由直接寻址、寄存器间址、寄存器相对 寻址

5、、基址加变址、相对的基址加变趾寻址,说明:,1、mov指令可传送8/16位数据,数据形式由寄存器 或立即数形式决定;(通常源、目的操作数之间 至少有一个为寄存器),2、存储器之间不能传送;,3、IP不能作源、目的寄存器,CS不能作目的寄存器;,4、所有通用传送指令(除popf、pushf)均不影响 标志位状态。,例1: 初始DS=3000H BX=0200H SI=0002H (30200H)=24H (30202H)=0CAH (30203H)=0F0H (31300H)=54H (31301H)=98H (31302H)=60H 下列各条指令执行后 AL、AX=?,MOV AX,1300H

6、 MOV AL,BL MOV AX,1300H MOV AL,BX MOV AL,1100HBX MOV AX,BXSI MOV AL,1100HBXSI,;AX=1300H,;AL=0,;AX=9854H,;AL=24H,;AL=54H,;AX=F0CAH,;AL=6DH,例2: 将内存当前段的2040H 和2041H单元中的 两个字节交换。,例3: 在汇编语言中,某程序的数据段如下: DATA SEGMENT MOV AX,DATA DATA1 DB 14H,3BH MOV DS,AX DATA2 DB 2 DUP(0) MOV SI,OFFSET DATA3 DATA3 DW 3100H

7、,01A6H MOV AL,DATA1 STRING DB GOOD MOV AL,DATA1 DATA ENDS MOV AX,SI : :,写出上述指令执行结果,(2) 栈操作指令,说明:,1、栈操作为字操作,不能字节操作; (数据存放高对高,低对低),例4:保护现场,恢复现场,3、栈操作不影响标志位的状态。,2、CS内容可以压栈,但不能将数据弹到CS;,(3) 交换指令,说明:,1、XCHG指令可进行字/字节交换,可在寄存器与 寄存器、寄存器与存储器之间进行交换,但 存储器之间不能交换;,2、CS、IP寄存器不能参与交换。,举例: 见例1,2、累加器专用指令,(1)输入/输出指令-8条

8、(放在I/O时介绍) IN AL,PORT OUT PORT,AL IN AX,PORT OUT PORT,AX IN AL,DX OUT DX,AL IN AX,DX OUT DX,AX,(2)换码指令-用于查表,说明:,换码指令规定:AL中存放待变换的值,BX寄存 器存放内存表格的首址,即实现AL(BX)+(AL),例5 初始(AL)=05H (BX)=2500H 2500H开始存有一个七段码表 见P73 执行 XLAT 指令后 AL=?,3、地址传送指令(地址目标传送),例6: 初始2500H2503H单元内容为 11H、22H、 33H、44H 执行指令 LEA DI,2500H LD

9、S SI,2500H 后 结果=?,4、标志传送指令,二、算术运算指令,1、加法/减法指令,说明: 指令中两操作数可采用多种寻址方式,源操作数可立即数、寄存器、任一寻址方式的存储单元;,以上指令执行结果影响所有标志;,比较指令CMP执行结果两操作数的值均不变,仅影响标志位。,例7: 试将内存32040H和32042H单元的两个字 相加,结果存于 32044H单元。 (不考虑进位),2、加1/减1指令,说明: 该指令执行结果影响OF、SF、ZF、AF、PF (不影响CF)。,例8:在内存DATA1开始存有5个单字节数据, 试求其累加和存于RES单元。,3、加/减十进制调整,说明:BCD调整必须跟

10、在算术运算指令后面使用组成 复合十进制运算。,例:将上题改为十进制相加(不考虑进位)。,4、乘、除指令,例9:在内存32040H开始的区域,存有5个单字节 数据,试求其平均值,存于32050H单元。,三、位操作指令(逻辑运算和移位指令),1、逻辑运算指令,说明: 这类指令执行结果CF、OF=0,SF、ZF、PF反映操作结果,AF、源操作数不变。,例10:将AL中的D7位置1,D6、D4、D2位置0, 其余位取反。,例11:将AL中的ASCII码数据加偶校验。,例12:阅读下列程序段。(以下几条指令判断从键盘输入的字符是否是Y,但对输入字符的大写、小写不加区别) MOV AH,1 INT 21H

11、 AND AL,11011111B CMP AL,Y JZ YES : YES: ,2、移位指令(算术、逻辑、循环移位),说明:1、循环指令操作结果仅影响CF、OF,移位指令 操作结果影响CF、OF、PF、SF、ZF;(移若干位OF不定),2、无论是循环还是移位,CNT可为立即数或CL,为 立即数时其值只能是1,CL中存放移位或循环次数。,例13:将内存DS段的2040H和2041H两个单元中 09 的 ASCII码转换为压缩的BCD码存于2030H单元。,四、串操作指令,该类指令特点:,* 通过加重复前缀来实现串操作;,* 可以对字节串操作,也可以对字串操作;,* 所有的串操作指令都用寄存器

12、SI对DS段中的源操作数进 行间接寻址,用DI对ES段中的目的操作数进行间址。,串操作时,地址的修改与方向标志DF有关,当DF=1,SI和DI作自动减量修改;DF=0时,SI和DI作自动增量修改。,1、重复前缀指令,2、串操作指令,例14: (实验题) 将内存2000H:3500H单元开始存放的100 个字节的数据块,送到以2000H:3600H开始的区域。,五、控制转移指令,包括4类指令,有的仅改变IP,有的同时改变IP和CS。这类指令包括转移、循环转移、过程调用和返回及中断指令。,1、转移指令,转移,无条件转移,条件转移,段内,段间,直接转移,间接转移,直接转移,间接转移,位移量,地址存于

13、 REG/ MEM,段、偏移地址,转移地址存于 MEM(双字),段内直接转移,(1)无条件转移指令,例15:比较串STR1、STR2,若相等给寄存器AX置全1, 否则AX中为不相等处的地址。,说明:8086汇编语言用下列方法区别转移地址,* 短程转移-标号前加 SHORT,转移范围:-128+127;,* 近程转移-标号前加NEAR PTR(或空),范围:-32768+32767;,* 段间转移-标号前加 FAR PTR;,* 段内间接转移还是段间间接转移由操作数的类型决定。,例16:初始 DS=2000H CS=1200H IP=0150H BX=4500H (24500H)=4500H (

14、24502H)=32F0H 分别执行:(1) JMP BX (2) JMP WOED PTRBX (3) JMP DWORD PTRBX 指令后,转到何处?,例:JMP DONE JMP SI JMP 2000:1000H JMP FAR PTR ABC,(2) 条件转移,以上十条指令是根据某一个标志的值来决定转移的 。,1* 按单个标志转移,2* 比较后转移,例17 :设某学生的英语成绩已存放在AL寄存器中,若低于60分,则打印F(FAIL),若高于等于85分,打印G(GOOD), 在60分和84分之间打印P(PASS)。,例18:试计算内存数据块中负数的个数。 内存分配如下:,说明:所有的条件转移指令均为段内短程转移, 转移范围为:-128+127(相对当前IP)。,2040H:存负数个数 2041H:数据块长度 2042H: a1 数据块 2043H: a2 : 试编程。,2、循环转移指令,说明:1、规定循环次数送 CX 寄存器; 2、(CX)=0时,不影响ZF标志。,例19 8种商品,原价为83、76、69、48、70、54、 92、88元, 存于OLD开始的区域,将每种商品提价 7元,存于 NEW 开始的 区域。,3、调用和返回指令,4、中断和中断返回指令,INT n INTO 中断中再介绍 IRET,六、处理器控制指令,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1