汇编语言课程总结课件

上传人:我*** 文档编号:146138891 上传时间:2020-09-26 格式:PPT 页数:45 大小:95.50KB
返回 下载 相关 举报
汇编语言课程总结课件_第1页
第1页 / 共45页
汇编语言课程总结课件_第2页
第2页 / 共45页
汇编语言课程总结课件_第3页
第3页 / 共45页
汇编语言课程总结课件_第4页
第4页 / 共45页
汇编语言课程总结课件_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《汇编语言课程总结课件》由会员分享,可在线阅读,更多相关《汇编语言课程总结课件(45页珍藏版)》请在金锄头文库上搜索。

1、,作业: P114:20、21、23 24、25、29,封面,课程总结,数制转换 BCD 码,第一部分 汇编语言基础知识 1.1 数据表示 1.二进制数十六进制数互相转换 1101001.101B=69.AH (68.5H) 2.BCD 码(8421码、二十进制数) 解决十进制数在计算机内部如何表示。BCD码 规定用四位二进制数表示一位十进制数。 对多位十进制数,只要把每一位十进制数分别表示为四位二进制数即可。,ASCII码,3.ASCII码 (P.11) 解决字母、符号在计算机内部如何表示。 基本ASCII码(标准ASCII码)用七位二进制数表示一个符号(共128个); 书写:用两位十六进制

2、数书写,如41H-A; 种类:1)控制字符(32个): 0D- 回车,0A- 换行; 2)图形字符(94个); 应记住的ASCII码:30H39H,41H-46H,61H(a) 扩展ASCII码用八位二进制数表示一个符号(共256个)。,1.5 8086微处理器,1.2 8086微处理器 (P.17) 1.8086的功能结构 总线接口单元、执行单元、指令预取队列 2.8086的寄存器组 8086通用寄存器 (1)AX-累加器。 (2)BX-基地址寄存器。 (3)CX-计数寄存器。 (4)DX-数据寄存器。 (5)SI-源变址寄存器。 (6)DI-目的变址寄存器。 (7)BP-栈基地址寄存器。(

3、8)SP-栈顶指针。 专用寄存器 IP、标志寄存器FLAG(PSW),段寄存器使用规定,3.段寄存器使用规定 (P.21),1.6 8086的寻址方式,1.3 8086的寻址方式 (P.28) 1.立即数寻址方式 2.寄存器寻址方式 3.存储器寻址方式 寄存器间接寻址 寄存器相对寻址 基址变址寻址 直接寻址 基址变址相对寻址,第二章 2.1 MOV,第二部分 8086的指令系统 机器指令:能被计算机直接识别和执行的二进制代码串 汇编指令:用来表示机器指令的助记符 2.1 数据传送指令 2.1.1 通用数据传送指令 (P.36-38) MOV/XCHG/XLAT MOV DEST,SRC 立即数

4、只能作源操作数,且要与目的操作数匹配。 两个操作数类型要匹配。 如汇编程序无法确定操作类型,要加类型说明符。 CS一般不能作目的操作数(用转移指令改变)。 如果指令有两个操作数,不允许两个都是存储器。 所有“MOV”类指令均不影响标志。,PUSH/POP,2.1.2 堆栈操作指令 (P.38) PUSH r16/m16/seg POP r16/m16/seg 堆栈操作是字操作指令 在“POP”指令中,“POP CS”为非法指令。 堆栈操作指令不影响标志。,地址传送指令,2.1.3 标志传送指令 (P.40) LAHF/SAHF/PUSHF/POPF 2.1.4 地址传送指令 (P.40) LE

5、A/LDS/LES LEA r16,mem 2.1.5 输入输出指令 (P.39) IN/OUT,2.2 算术运算指令,2.2 算术运算指令 (P.41) ADD/ADC/INC SUB/SBB/DEC/NEG/CMP 加法指令对标志的影响:ADD和ADC指令对所有的6个状态标志都有影响 INC、DNC指令不影响CF,影响其他五个标志 学习加减法指令要会设置标志、使用标志。 加减法运算要注意OF和CF的意义不同,用法不同。 注意NEG/CMP指令的用法。,MUL/IMUL,MUL/IMUL (P.44) 指令指定的是乘数,被乘数是隐含的。如乘数类型为字节,则被乘数为AL,16位乘积用AX;如乘

6、数类型为字,则被乘数为AX,32位乘积用DX,AX。 影响 CF 、OF 标志:如果乘积的高一半为零,或高一半为低一半的符号扩展,则 CF=OF=0,否则,CF=OF=1。对其他标志无定义。 单操作数指令,涉及mem时,须指定类型。 MUL BYTE PTRBX+SI MUL WORD PTRBX+SI,DIV/IDIV,DIV / IDIV (P.41) 指令指定的是除数,被除数是隐含的;除数为字节,则称为“字节除”,被除数使用AX;除数为字,称为“字除”,被除数使用DX AX。 操作数的格式与乘法指令相同。 指令对状态标志无定义。 当产生除法溢出,CPU自动产生“0号”中断,运行相 应中断

7、服务程序。程序设计时,应避免产生除法溢出。,2.3 位操作指令,2.3 位操作指令 (P.47-48) AND/OR/XOR/TEST/NOT 操作数格式同加减法指令。 设置CF=OF=0,影响SF、ZF、PF,对AF无定义。 TEST不影响目的操作数,只根据运算结果设置标志。 NOT reg/mem 不影响任何标志。, 屏蔽若干位。 (常用指令) AND AL,01H;屏蔽AL的D7D1,保留D0 AND AL,0FH;屏蔽AL高4位,保留低4位 使若干位置1 (常用指令) OR BL,0F0H;使BL高4位置1,低4位不变 清除CF、OF 或 设置标志 AND AL,AL (AND AL,

8、0FFH; OR BL,BL) ;指令没有改变目的操作数,但使CF=OF=0,用法/2,求反 NOT AL / NOT WORD PTRBX+DI 对指定位求反 XOR AL,0FH;AL高4位不变,低4位求反 XOR CL,33H;CL偶数位求反,奇数位不变 清除寄存器及CF(常用指令) XOR AX, AX / SUB AX, AX XOR BYTE PTRBX,BYTE PTRBX ,用法/3,不改变操作数,测试操作数或操作数的指定位 TEST AL,0FFH;由ZF标志判断AL是否为零 ;也可以用CMP指令。 TEST AL,01;由ZF标志判断AL的D0是否为零, ;ZF=1,则AL

9、.D0=0 ;ZF=0,则AL.D0=1 AND AL,01 ;也可完成上述功能,但是改变了 目的操作数,移位指令,SHL/SAL/SHR/SAR (P.48) 标志设置 AF:对AF无定义; CF:按移入的值为0或为1 根据移位后的结果设置SF、ZF、PF; OF:当移动一位时,移位后如果符号位发生变化,则OF=1,符号位不发生变化,则OF=0,移位次数大于1时,OF不定。 操作数左移一位,相当于乘2(对有符号数同理,只要OF=0,结果就对)。 操作数逻辑右移(SHR)一位,相当于无符号数除以2;操作数算术右移(SAR)一位,相当于有符号数除以2。 ROL/ROR/RCL/RCR 移位指令和

10、循环移位指令结合,可实现32位数左移右移。,2.4 控制转移类指令,2.4 控制转移类指令 (P.54) 2.4.1 无条件转移指令 JMP SHORT LABELJMP NEAR PTR LABEL JMP r16 ; JMP WORD PTR mem JMP FAR PTR LABEL JMP FAR PTR mem JMP DWORD PTR mem,条件转移指令/1,2.4.2 条件转移指令 (P.56) 1.判断单个状态标志 助记符 标 志 说 明 JZ/JE ZF=1 结果为0;两数相等 JNZ/JNE ZF=0 不为0;不相等 JC/JB/JNAE CF=1 加有进位;减有借位;

11、其他 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) 串操作是否处理完所有,条件转移指令/2,2.比较无符号数高低(条件为一个标志或标志组合) 助记符 标志 说 明 JB/JNAE/JC CF=1 低于/不高于不等于() JNB/JAE/JNC CF=0 不低于/高于或等于() JBE/JNA CF=1或ZF=1 低于或等于/不高于()

12、JNBE/JA CF=0且ZF=0 不低于不等于/高于() 3.比较有符号数大小(条件为标志组合) 助记符 标志 说 明 JL/JNGE SFOF 小于/不大于且不等于() JNL/JGE SFOF 不小于/大于或等于 () JLE/JNG SFOF或ZF=1 小于或等于/不大于 () JNLE/JG SFOF且ZF=0 不小于且不等于/大于(),循环控制指令,2.4.3 循环控制指令 (P.59) LOOP label ;CX0,循环;否则退出 LOOPZ/LOOPE label;CX0 且 ZF=1,循环 ;否则退出 LOOPNZ/LOOPNE label;CX0 且 ZF=0,循环 ;否

13、则退出 2.4.4 子程序调用及返回指令 (P.57) CALL near ptr label ;段内直接调用 CALL r16/word ptr m16 ;段内间接调用 CALL far ptr label ;段间直接调用 CALL dword ptr mem ;段间间接调用 RET,中断控制指令/1,2.4.5 中断控制指令 (P.161) 1.8086中断类型 外部中断 中断源来自CPU之外(两种) 可屏蔽中断:响应与否,受IF标志控制。 涉及指令:CLI STI 非屏蔽中断:不受IF控制的中断源。(2#),中断控制指令/2,内部中断(4种) 中断源为:程序执行过程中程序自身引发的事件

14、除法错中断:除数为0或除法溢出。(0#) 单步中断:若单步标志TF=1,则每条指令执行 行后产生单步中断。(1#) 溢出中断:执行中断指令INTO时,如OF=1,则 产生溢出中断。(4#) 指令中断:执行中断调用指令INT n ,产生指 令中断,类型号n=0255。,中断控制指令/3,2.8086的中断过程 中断向量表进入中断服务程序返回断点 CPU取类型号;外中断:中断源提供 内中断:指令提供、预定义 类型号4:对应向量在表中的首地址 保护断点:PSW、CS、IP依次入栈 从向量表读取服务程序入口地址: IP低位字 CS高位字 进入中断服务程序 3.8086的中断指令 (P.58) INT

15、i8 /INTO /IRET / CLI / STI,系统功能调用,2.4.6 系统功能调用 (P.83) 在AH中设置调用的功能号; 在指定的寄存器中设置入口参数; 执行INT 21H指令,调用功能子程序; 1.单个字符的输出 AH=02; 入口参数:DL=字符的ASCII码 2.字符串输出 AH=09; 入口参数:DS:DX=字符串首地址 字符串必须以(24H)结尾 3.单个字符输入 AH=01; 入口参数:无;出口参数:AL=字符ASCII码 4.字符串输入 AH=0A; 入口参数: DS:DX=字符串缓冲区首地址 第2字节:实际输入的字符个数; 第3字节开始:输入的字符串;,2.5 串操作指令,2.5 串操作指令 (P.50) 1. 串传送指令 MOVSB/MOVSW (src-ds:si,dest-es:di) 2. 串存储指令 STOSB/STOSW 3. 串读取指令 LODSB/LODSW 4. 串比较指令 CMPSB/CMPSW 5. 串扫描指令 SCASB/SCASW 6. 重复前缀指令 REP REPZ/REPE 和REPNZ/REPNE 1)源数据串可以段跨越,目的串不可。 2)DF=0,地址指针+1或+2,DF=1,指针-1或-2。 3)注意重复前缀的使用。,第三章3.1/3.2,第三部分 伪指令与汇编语言 (P.62) 3.1. 伪指

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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