汇编_第5章 80X86的指令系统

上传人:我** 文档编号:117887186 上传时间:2019-12-11 格式:PPT 页数:55 大小:860.50KB
返回 下载 相关 举报
汇编_第5章 80X86的指令系统_第1页
第1页 / 共55页
汇编_第5章 80X86的指令系统_第2页
第2页 / 共55页
汇编_第5章 80X86的指令系统_第3页
第3页 / 共55页
汇编_第5章 80X86的指令系统_第4页
第4页 / 共55页
汇编_第5章 80X86的指令系统_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《汇编_第5章 80X86的指令系统》由会员分享,可在线阅读,更多相关《汇编_第5章 80X86的指令系统(55页珍藏版)》请在金锄头文库上搜索。

1、第5章 80 x86的指令系统 l 数据传送指令 l 算术指令 l 逻辑指令 l 串处理指令 l 控制转移指令 l 处理机控制与杂项操作指令 8086的指令系统 重点关注: l指令的基本功能 l指令支持的寻址方式 l指令的执行对标志位的影响 l指令的特殊要求 l 指令系统的格式 一组指令的集合 操作码 操作数 . 操作数指令 例:MOV 指令 格式:MOV DST,SRC 功能:源操作数的内容传送到目标操作数;源操 作数中的内容不变。 数据传送指令: l通用数据传送指令 MOV、PUSH、POP、XCHG l累加器专用传送指令 IN、OUT、XLAT l地址传送指令 LEA、LDS、LES l

2、标志寄存器传送指令 LAHF、SAHF、PUSHF、POPF l类型转换指令 CBW、CWD 传送指令: MOV DST, SRC 执行操作: (DST) (SRC) l 通用数据传送指令 注意: * DST、SRC 不能同时为段寄存器 MOV DS, ES * 立即数不能直接送段寄存器 MOV DS, 2000H * DST 不能是立即数和CS * DST、SRC 不能同时为存储器寻址 * 不影响标志位(对所有的数据传送指令而言) 进栈指令: PUSH SRC 执行操作: (SP) (SP) 2 ( (SP)+1, (SP) ) (SRC) 出栈指令: POP DST 执行操作: (DST)

3、 ( (SP)+1, (SP) ) (SP) (SP) + 2 堆栈:先进后出的存储区,段地址存放在SS中, SP在任何时候都指向栈顶,进出栈后自动修改SP。 注意: * 堆栈操作必须以字为单位 * 不影响标志位 * 不能用立即寻址方式 PUSH 1234H * DST不能是CS POP CS 例:假设 (AX) = 2107 H , 执行 PUSH AX * * * * * * * * (SP) PUSH AX 执行前 (SS) (SP) * * * * * * * * 07H 21H 低地址 高地址 PUSH AX 执行后 进栈方向 (SS) 例: POP BX (SP) * * * *

4、* * * * 07H 21H POP BX 执行前 (SS) (SP) * * * * * * * * 07H 21H 低地址 高地址 POP BX 执行后 (BX) = 2107H 出栈方向 (SS) 例:PUSH DS SUB AX, AX PUSH AX RET 例:PUSH AX PUSH BX PUSH CX ;其间用到AX、BX、CX POP CX ; 后进先出 POP BX POP AX 交换指令: XCHG OPR1, OPR2 执行操作: (OPR1) (OPR2) 注意: * 不影响标志位 * 不允许使用段寄存器,两个操作数必须有一个在寄 存器中(内存之间不能相互传送数据

5、) 例:XCHG BX,BP+SI (BX)=6F30H,(BP)=0200H,(SI)=0046H, (SS)=2F00H,(2F246H)=4154H 例:XCHG AL,BH l 累加器专用传送指令(只限使用AX或AL) 输入指令 IN (I/O CPU) 长格式: IN AL, PORT (字节) IN AX, PORT (字) 执行操作: (AL) ( PORT ) (字节) (AX) ( PORT+1,PORT )(字) 短格式: IN AL, DX (字节) IN AX, DX (字) 执行操作: (AL) ( (DX) ) (字节) (AX) ( (DX)+1,(DX) )(字

6、) 输出指令 OUT (CPU I/O) 长格式: OUT PORT, AL (字节) OUT PORT, AX (字) 执行操作:( PORT ) (AL) (字节) ( PORT+1, PORT ) (AX)(字) 短格式: OUT DX, AL (字节) OUT DX, AX (字) 执行操作:( (DX) ) (AL) (字节) ( (DX)+1, (DX) ) (AX)(字) 注意: * 不影响标志位 * 前256个端口号00HFFH可直接在指令中指定(长格式) * 如果端口号 256,端口号 DX(短格式) 例: IN AX, 28H MOV DATA_WORD, AX 例: MO

7、V DX, 3FCH IN AX, DX 例: OUT 5, AL 例:测试某状态寄存器(端口号27H)的第2位是否为1 IN AL, 27H TEST AL, 00000100B JNZ ERROR ;若第2位为1,转ERROR处理 例:Sound程序 mov dx, 100 in al, 61h and al,11111100b sound: xor al, 2 ; 1 0 1 out 61h, al ;ON OFF ON mov cx, 140h ;脉宽 Wait1:loop wait1 dec dx jne sound 设备控制寄存器 端口61H1 / 0 0 控制其它外部设备 放大器

8、 2号定时器门控 1 0 与 门 (BX) 30 H F0040 31 H F0041 (AL) = 3 32 H F0042 33 H F0043 TABLE (DS)=F000H 换码指令:XLAT 或 XLAT OPR 执行操作:(AL) ( (BX) + (AL) ) 例: MOV BX, OFFSET TABLE ; (BX)=0040H MOV AL, 3 XLAT TABLE 指令执行后 (AL)=33H 注意: * 不影响标志位 * 字节表格(长度不超过256) 首地址 (BX) * 需转换的代码位移量 (AL) l 地址传送指令 有效地址送寄存器指令:LEA REG, SRC

9、 执行操作: (REG) SRC SCR:不能是立即寻址,寄存器寻址 指针送寄存器和DS指令:LDS REG, SRC 执行操作: (REG) (SRC) 只能是存储器寻址 (DS) (SRC+2) 相继二字 寄存器、DS 指针送寄存器和ES指令:LES REG, SRC 执行操作: (REG) (SRC) (ES) (SRC+2) 相继二字 寄存器、ES 例:下列两种指令的功能相同 LEA BX, TABLE MOV BX,OFFSET TABLE 40 H 00 H 00 H 30 H TABLE (DS):1000H MOV BX, TABLE ; (BX)=0040H MOV BX,

10、OFFSET TABLE ; (BX)=1000H LEA BX, TABLE ; (BX)=1000H LDS BX, TABLE ; (BX)=0040H ; (DS)=3000H LES BX, TABLE ; (BX)=0040H ; (ES)=3000H 注意: * 不影响标志位 * REG 不能是段寄存器 * SRC 必须为存储器寻址方式 l 标志寄存器传送指令 标志送AH指令: LAHF 执行操作: (AH) (FLAGS的低字节) AH送标志寄存器指令:SAHF 执行操作: (FLAGS的低字节) (AH) 标志进栈指令: PUSHF 执行操作: (SP) (SP) - 2 (

11、 (SP)+1, (SP) ) (FLAGS) 标志出栈指令: POPF 执行操作: (FLAGS) ( (SP)+1, (SP) ) (SP) (SP) + 2 * 影响标志位 LAHF指令 该指令功能是把标志寄存器中的SF、ZF、AF、PF 、CF五个标志传至AH的第7、6、4、2、0位,第5、3、 1位未定义。 SF ZFAFPFCFTFIFDFOF FLAG AH 算术指令: l 加法指令 ADD、ADC、INC l 减法指令 SUB、SBB、DEC、NEG、CMP l 乘法指令 MUL、IMUL l 除法指令 DIV、IDIV l 十进制调整指令 DAA、DAS、 AAA、AAS、A

12、AM、AAD l 加法指令 加法指令: ADD DST, SRC 执行操作: (DST) (SRC) + (DST) 带进位加法指令:ADC DST, SRC 执行操作: (DST) (SRC) + (DST) + CF 加1指令: INC OPR 执行操作: (OPR) (OPR) + 1 注意: * 除INC指令不影响CF标志外,均对条件标志位有影响。 加法指令对条件标志位的影响 * CF 位表示无符号数相加的溢出 * OF 位表示带符号数相加的溢出 1 结果为负 0 否则 SF= 1 结果为0 0 否则 ZF= 1 和的最高有效位有向高位的进位 0 否则 CF= 1 两个操作数符号相同,

13、而结果符号与之相反 0 否则 OF= 举例: n=8 bit 带符号数(-128127), 无符号数(0255) 0 0 0 0 0 1 0 0 + 0 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 带:(+4)+(+11)=+15 OF=0 无:4+11=15 CF=0 带符号数和无符号数都不溢出 0 0 0 0 1 0 0 1 + 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 1 带: (+9)+(+124)=-123 OF=1 无: 9+124=133 CF=0 带符号数溢出无符号数溢出 0 0 0 0 0 1 1 1 + 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 0 带:(+7)+(-5)=+2 OF=0 无:7+251=2 CF=1 带符号数和无符号数都溢出 1 0 0 0 0 1 1 1 + 1 1 1 1 0 1 0 1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号