汇编考试复习题(南京理工大学)

上传人:第*** 文档编号:59554672 上传时间:2018-11-09 格式:PPT 页数:69 大小:200KB
返回 下载 相关 举报
汇编考试复习题(南京理工大学)_第1页
第1页 / 共69页
汇编考试复习题(南京理工大学)_第2页
第2页 / 共69页
汇编考试复习题(南京理工大学)_第3页
第3页 / 共69页
汇编考试复习题(南京理工大学)_第4页
第4页 / 共69页
汇编考试复习题(南京理工大学)_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《汇编考试复习题(南京理工大学)》由会员分享,可在线阅读,更多相关《汇编考试复习题(南京理工大学)(69页珍藏版)》请在金锄头文库上搜索。

1、1,封面,总复习,2,第一章 1.2数据表示,第一章 汇编语言基础知识 1.2 数据表示 1.十进制数转换二进制数; 整数部分不断除以2,记下每次得到的余数,直到商为零;余数倒排,即最后得到的余数排在最高位,第一个余数排在最低位。例如将十进制数13转换成二进制数: 小数部分转换:乘2取整,顺序排列得到的整数。例如将0.8125转换成二进制数,3,数制转换 BCD 码,2.二进制数十六进制数互相转换 1101001.101B=68.AH (68.5H) 3.BCD 码(8421码、二十进制数) 解决十进制数在计算机内部如何表示。BCD码 规定用四位二进制数表示一位十进制数。 对多位十进制数,只要

2、把每一位十进制数分别表示为四位二进制数即可。 压缩BCD码和非压缩BCD码,4,ASCII码,4.ASCII码 解决字母、符号在计算机内部如何表示。 基本ASCII码(标准ASCII码)用七位二进制数表示一个符号(共128个); 书写:用两位十六进制数书写,如41H-A; 种类:1)控制字符(前32个和最后一个): 0D- 回车,0A- 换行; 2)其他为打印字符(可显示字符); 应记住的ASCII码:30H39H,41H,61H 扩展ASCII码用八位二进制数表示一个符号(共256个)。,5,有符号数表示方法,5.有符号数表示方法 原码、反码、补码总结: 1)正数的原码反码补码相同;负数的原

3、码反码补码各不相同,但符号位都是1。 2)设字长为八位,原码反码的表数范围为 -127+127,补码的表数范围为-128+127。 3)已知某负数的补码,求该负数的真值,方法如下: 符号位不动,其余位求反加一,得到的是该负数的原码; 根据原码即可写出该负数的真值。 例:X补=11111100B X原=10000011B+1=10000100B X= -0000100= - 4,6,1.5 8086微处理器,1.5 8086微处理器 1.8086的功能结构 总线接口单元、执行单元、指令预取队列 2.8086的寄存器组 8086通用寄存器 (1)AX-累加器。 (2)BX-基地址寄存器。 (3)C

4、X-计数寄存器。 (4)DX-数据寄存器。 (5)SI-源变址寄存器。 (6)DI-目的变址寄存器。 (7)BP-栈基地址寄存器。(8)SP-栈顶指针。 专用寄存器 IP、标志寄存器FLAG(PSW),7,段寄存器使用规定,3.段寄存器使用规定,8,1.6 8086的寻址方式,1.6 8086的寻址方式 1.立即数寻址方式 2.寄存器寻址方式 3.存储器寻址方式 寄存器间接寻址 寄存器相对寻址 基址变址寻址 直接寻址 基址变址相对寻址,9,mem操作数的各种形式,mem操作数的各种形式 2050H;VAR_ADDR BX;BP;si;di BX+disp;BP+disp;si+disp;di+

5、disp dispBX; dispBP; dispSI; dispDI BX+SI;BX+DI;BP+SI;BP+DI BXSI;BXDI; BX+SI+disp;BX+DI+disp; BP+SI+disp;BP+DI+disp;,10,第二章 2.1 MOV,第二章 8086的指令系统 2.1 数据传送指令 2.1.1 通用数据传送指令 MOV/XCHG/XLAT MOV DEST,SRC 立即数只能作源操作数,且要与目的操作数匹配。 两个操作数类型要匹配。 如汇编程序无法确定操作类型,要加类型说明符。 CS一般不能作目的操作数(用转移指令改变)。 如果指令有两个操作数,不允许两个都是存储

6、器数。 所有“MOV”类指令均不影响标志。,11,PUSH/POP,2.1.2 堆栈操作指令 PUSH r16/m16/seg POP r16/m16/seg 堆栈操作是字操作指令 在“POP”指令中,“POP CS”为非法指令。 堆栈操作指令不影响标志。,12,地址传送指令,2.1.3 标志传送指令 LAHF/SAHF/PUSHF/POPF 2.1.4 地址传送指令 LEA/LDS/LES LEA r16,mem 2.1.5 输入输出指令 IN/OUT,13,2.2 算术运算指令,2.2 算术运算指令 ADD/ADC/INC SUB/SBB/DEC/NEG/CMP 加法指令对标志的影响:AD

7、D和ADC指令对所有的6个状态标志都有影响,INC指令不影响CF,影响其他五个标志。学习加减法指令要会设置标志、使用标志。 加减法运算要注意OF和CF的意义不同,用法不同。 注意NEG/CMP指令的用法。,14,MUL/IMUL,MUL/IMUL 指令指定的是乘数,被乘数是隐含的。如乘数类型为字节,则被乘数为AL,16位乘积用AX;如乘数类型为字,则被乘数为AX,32位乘积用DX,AX。 影响 CF 、OF 标志:如果乘积的高一半为零,或高一半为低一半的符号扩展,则 CF=OF=0,否则,CF=OF=1。对其他标志无定义。 单操作数指令,涉及mem时,须指定类型。 MUL BYTR PTRBX

8、+SI MUL WORD PTRBX+SI,15,DIV/IDIV,DIV / IDIV 指令指定的是除数,被除数是隐含的;除数为字节,则称为“字节除”,被除数使用AX;除数为字,称为“字除”,被除数使用DX AX。 操作数的格式与乘法指令相同。 指令对状态标志无定义。 当产生除法溢出,CPU自动产生“0号”中断,运行相 应中断服务程序。程序设计时,应避免产生除法溢出。,16,CBW/CWD,CBW/CWD 注意符号扩展涉及的对象是AL和AH以及AX和DX,与其他寄存器无关。 用来为有符号数除法准备被除数(16位被除数和32位被除数)。 为无符号数除法准备被除数,用“0扩展”。 DAA/DAS

9、/AAA/AAS/AAM/AAD 如果做BCD码加法运算,ADD、ADC指令后应紧跟DAA指令,以保证结果正确。 调整对象只能是AL寄存器(BCD码运算只能使用以AL寄存器为目的操作数的8位数运算指令)。 对OF标志无定义,设置其他标志,17,2.3 位操作指令,2.3 位操作指令 AND/OR/XOR/TEST/NOT 操作数格式同加减法指令。 设置CF=OF=0,影响SF、ZF、PF,对AF无定义。 TEST不影响目的操作数,只根据运算结果设置标志。 NOT reg/mem 不影响任何标志。,18,AND/OR/XOR/TEST/NOT,屏蔽若干位。 (常用指令) AND AL,01H;屏

10、蔽AL的D7D1,保留D0 AND AL,0FH;屏蔽AL高4位,保留低4位 使若干位置1 (常用指令) OR BL,0F0H;使BL高4位置1,低4位不变 清除CF、OF 或 设置标志 AND AL,AL (AND AL,0FFH;OR BL,BL;) ;类似指令没有改变目的操作数,但使CF=OF=0,也 可能纯粹以设置其他标志(ZF)为目的。,19,用法/2,求反 NOT AL / NOT WORD PTRBX+DI 对指定位求反 XOR AL,0FH;AL高4位不变,低4位求反 XOR CL,55H;CL偶数位求反,奇数位不变 清除寄存器及CF(常用指令) XOR AX,AX / XOR

11、 BX,BX XOR BYTE PTRBX,BYTE PTRBX ,20,用法/3,不改变操作数,测试操作数或操作数的指定位 TEST AL,0FFH;由ZF标志判断AL是否为零 ;也可以用CMP指令。 TEST AL,01;由ZF标志判断AL的D0是否为零, ;ZF=1,则AL.D0=0 ;ZF=0,则AL.D0=1 AND AL,01 ;也可完成上述功能,但是改变了 目的操作数,21,移位指令,SHL/SAL/SHR/SAR 标志设置 AF:对AF无定义;CF:按移入的值或为0或为1; 根据移位后的结果设置SF、ZF、PF; OF:当移动一位时,移位后如果符号位发生变化,则OF=1,符号位

12、不发生变化,则OF=0,移位次数大于一时,OF不定。 操作数左移一位,相当于乘2(对有符号数同理,只要OF=0,结果就对)。 操作数逻辑右移(SHR)一位,相当于无符号数除以2;操作数算术右移(SAR)一位,相当于有符号数除以2。 ROL/ROR/RCL/RCR 移位指令和循环移位指令结合,可实现32位数左移右移。,22,2.4 控制转移类指令,2.4 控制转移类指令 2.4.1 无条件转移指令 JMP SHORT LABEL; JMP NEAR PTR LABEL; JMP r16 ;JMP WORD PTR mem JMP (FAR PTR) LABEL JMP FAR PTR mem (

13、JMP DWORD PTR mem),23,条件转移指令/1,2.4.2 条件转移指令 1.判断单个状态标志 助记符 标 志 说 明 JZ/JE ZF=1 结果为0;两数相等 JNZ/JNE ZF=0 不为0;不相等 JC/JB/JNAE CF=1 加有进位;减有借位;其他 JNC/JNB/JAE CF=0 无进位; 无借位;其他 JS SF=1 结果为负 JNS SF=0 结果为正 JP/JPE PF=1 结果的低8位含偶数个“1” JNP/JPO PF=0 结果的低8位含奇数个“1” JO OF=1 运算结果溢出 JNO OF=0 运算结果不溢出 JCXZ ( CX=0) 串操作是否处理完

14、所有,24,条件转移指令/2,2.比较无符号数高低(条件为一个标志或标志组合) 助记符 标志 说 明 JB/JNAE/JC CF=1 低于/不高于不等于() JNB/JAE/JNC CF=0 不低于/高于或等于() JBE/JNA CF=1或ZF=1 低于或等于/不高于() JNBE/JA CF=0且ZF=0 不低于不等于/高于() 3.比较有符号数大小(条件为标志组合) 助记符 标志 说 明 JL/JNGE SFOF 小于/不大于且不等于() JNL/JGE SFOF 不小于/大于或等于 () JLE/JNG SFOF或ZF=1 小于或等于/不大于 () JNLE/JG SFOF且ZF=0

15、不小于且不等于/大于(),25,循环控制指令,2.4.3 循环控制指令 LOOP label ;CX0,循环;否则退出 LOOPZ/LOOPF label;CX0 且 ZF=1,循环 ;否则退出 LOOPNZ/LOOPNE label;CX0 且 ZF=0,循环 ;否则退出 2.4.4 子程序调用及返回指令 CALL near ptr label ;段内直接调用 CALL r16/word ptr m16 ;段内间接调用 CALL far ptr label ;段间直接调用 CALL dword ptr mem ;段间间接调用 RET RET i16,26,中断控制指令/1,2.4.5 中断控制指令 1.8086中断类型 外部中断 中断源来自CPU之外(两种) 可屏蔽中断:响应与否,受IF标志控制。 涉及指令:CLI STI 非屏蔽中断:不受IF控制的中断源。(2#),27,中断控制指令/2,内部中断(4种) 中断源为:程序执行过程中程序自身引发的事件 除法错中断:除数为0或除法溢出。(0#) 单步中断:若单步标志TF=1,则每条指令执行

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

当前位置:首页 > 建筑/环境 > 施工组织

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