




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章汇编语言顺序程序设计,1/37,本章内容分三节:5.1算术指令5.2逻辑指令5.3顺序程序举例,第五章汇编语言顺序程序设计,2/37,一、算术指令(5类)1.加法指令(ADD,ADC,INC)2.减法指令(SUB,SBB,DEC,NEG,CMP)3.乘法指令(MUL,IMUL)4.除法指令(DIV,IDIV)5.十进制调整指令(DAA,DAS等),第五章汇编语言顺序程序设计,3/37,一、算术指令(5类)1.加法指令(ADD,ADC,INC)(1)ADDDST,SRC加法操作:(DST)(SRC)+(DST)(2)ADCDST,SRC带进位加法操作:(DST)(SRC)+(DST)+CF(3)INCOPR加1操作:(OPR)(OPR)+1,第五章汇编语言顺序程序设计,4/37,对条件标志位的影响(INC不影响CF):CF进位标志:根据最高位是否有进位来设置。有进位CF=1,无进位CF=0用途:1)判断无符号数溢出。2)双字运算时,保存低位字向高位字的进位。OF溢出标志:根据操作数符号及其变化情况来设置。两操作数符号相同,结果符号与之相反,OF=1,否则,OF=0。用途:用来判断带符号数的溢出。,第五章汇编语言顺序程序设计,5/37,一、算术指令(5类)1.加法指令(ADD,ADC,INC)2.减法指令(SUB,SBB,DEC,NEG,CMP)3.乘法指令(MUL,IMUL)4.除法指令(DIV,IDIV)5.十进制调整指令(DAA,DAS等),第五章汇编语言顺序程序设计,6/37,2.减法指令(SUB,SBB,DEC,NEG,CMP)(1)SUBDST,SRC减法操作:(DST)(DST)-(SRC)(2)SBBDST,SRC带借位减法操作:(DST)(DST)-(SRC)-CF(3)DECOPR减1操作:(OPR)(OPR)-1,第五章汇编语言顺序程序设计,7/37,(4)NEGOPR求补操作:(OPR)(OPR)(5)CMPOPR1,OPR2比较操作:(OPR1)-(OPR2),第五章汇编语言顺序程序设计,8/37,对标志标志位的影响(DEC不影响CF)CF:判无符号数溢出若减数大于被减数CF=1,否则,CF=0。OF:判有符号数溢出若两个数的符号相反,而结果的符号与减数的相同,则OF=1,否则,OF=0。,第五章汇编语言顺序程序设计,9/37,一、算术指令(5类)1.加法指令(ADD,ADC,INC)2.减法指令(SUB,SBB,DEC,NEG,CMP)3.乘法指令(MUL,IMUL)4.除法指令(DIV,IDIV)5.十进制调整指令(DAA,DAS等),第五章汇编语言顺序程序设计,10/37,3.乘法指令(MUL,IMUL)(1)MULSRC无符号数乘法操作:(AX)(AL)(SRC)字节操作(DX,AX)(AX)(SRC)字操作(2)IMULSRC带符号数乘法操作:(AX)(AL)(SRC)字节操作(DX,AX)(AX)(SRC)字操作,第五章汇编语言顺序程序设计,11/37,关于乘法操作数的说明:1)目的操作数必须为累加器。2)字节运算:被乘数放于AL中,积放于AX中。3)字运算:被乘数放于AX中,积放于DX、AX中。4)源操作数(乘数)可以是除立即数方式以外的任何一种寻址方式。,第五章汇编语言顺序程序设计,12/37,乘法指令只影响CF和OF,其它条件码无定义。1)MUL:若乘积的高一半为0,则CF=OF=0,否则,CF=OF=1。2)IMUL:若乘积的高一半是低一半的符号位的扩展,则,CF=OF=0,否则,CF=OF=1。,第五章汇编语言顺序程序设计,13/37,如何区分MUL和IMUL(1111,1111B)(1111,1111B)看作无数号数,上式为:FFHFFH=FFE01H看作带符号数,上式为:(-1)(-1)=1选用MUL或IMUL应根据实际情况而定。,第五章汇编语言顺序程序设计,14/37,一、算术指令(5类)1.加法指令(ADD,ADC,INC)2.减法指令(SUB,SBB,DEC,NEG,CMP)3.乘法指令(MUL,IMUL)4.除法指令(DIV,IDIV)5.十进制调整指令(DAA,DAS等),第五章汇编语言顺序程序设计,15/37,4.除法指令(DIV,IDIV)(1)DIVSRC无符号除法字节操作:(AL)(AX)/(SRC)的商(AH)(AX)/(SRC)的余数字操作:(AX)(DX,AX)/(SRC)的商(DX)(DX,AX)/(SRC)的余数(2)IDIVSRC带符号除法,第五章汇编语言顺序程序设计,16/37,除法指令的说明:关于标志位:除法对所有条件码均无定义。关于结果:无符号数:商、余数均为无符号数带符号数:商、余数均为带符号数,且余数符号应与被除数符号相同。关于溢出:被除数高8/16位绝对值除数的绝对值,商溢出。,第五章汇编语言顺序程序设计,17/37,符号位的扩展CBW字节转换为字操作:AL内容的符号位扩展到AH中CWD字节转换为双字操作:AX内容的符号位扩展到DX中,第五章汇编语言顺序程序设计,18/37,一、算术指令(5类)1.加法指令(ADD,ADC,INC)2.减法指令(SUB,SBB,DEC,NEG,CMP)3.乘法指令(MUL,IMUL)4.除法指令(DIV,IDIV)5.十进制调整指令(DAA,DAS等),第五章汇编语言顺序程序设计,19/37,5.十进制调整指令BCD码的概念:用四位二进制数来表示一个十进制数码,又称8421码。BCD码的存储格式:压缩的BCD码(4位)非压缩的BCD码(8位),真值(十进制)864压缩BCD码100001100100非压缩BCD码000010000000011000000100,第五章汇编语言顺序程序设计,20/37,15+16=3100010101+0001011000101011+0000011000110001,不是BCD码,第五章汇编语言顺序程序设计,21/37,十进制调整指令(1)DAA加法的十进制调整指令。(2)DAS减法的十进制调整指令。(3)AAA加法的ASCII调整指令。(4)AAS减法的ASCII调整指令。(5)AAM乘法的ASCII调整指令。(6)AAD除法的ASCII调整指令。,第五章汇编语言顺序程序设计,22/37,本章内容分三节:5.1算术指令5.2逻辑指令5.3顺序程序举例,第五章汇编语言顺序程序设计,23/37,二、逻辑指令1.逻辑运算指令(5个)2.移位指令(8个),第五章汇编语言顺序程序设计,24/37,二、逻辑指令1.逻辑运算指令(5个)(1)ANDDST,SRC逻辑与(2)ORDST,SRC逻辑或(3)NOTOPR逻辑非(4)XORDST,SRC异或(5)TESTDST,SRC测试,第五章汇编语言顺序程序设计,25/37,用途:AND常用于把某些位清零。例:43H第6位清零OR常用于把某些位置位。例:将43H第5位置1,MOVAL,43HANDAL,0BFH,MOVAL,43HORAL,20H,第五章汇编语言顺序程序设计,26/37,NOT用于把一个数各位同时求反。XOR用于把一个数的某位求反。例:将43H的第3位取反TEST用于测试某位是否为0或1。例:测试43H第2位是否为0,MOVAL,43HXORAL,08H,MOVAL,43HTESTAL,04HJZL1,测试43H第2位是否为1MOVAL,43HTESTAL,04HJNZL1,第五章汇编语言顺序程序设计,27/37,二、逻辑指令1.逻辑运算指令(5个)2.移位指令(8个),第五章汇编语言顺序程序设计,28/37,2.移位指令(8个)(1)SHLOPR,CNT(shiftlogicalleft)逻辑左移(2)SALOPR,CNT(shiftarithmeticleft)算术左移,MSB:MostSignificantBit,最高有效位LSB:LeastSignificantBit,最低有效位,第五章汇编语言顺序程序设计,29/37,(3)SHROPR,CNT(shiftlogicalright)逻辑右移(4)SAROPR,CNT(shiftarithmeticright)算术右移,第五章汇编语言顺序程序设计,30/37,(5)ROLOPR,CNT(rotateleft)循环左移(6)ROROPR,CNT(rotateright)循环右移,第五章汇编语言顺序程序设计,31/37,(7)RCLOPR,CNT(rotateleftthroughcarry)带进位循环左移(8)RCROPR,CNT(rotaterightthroughcarry)带进位循环右移,第五章汇编语言顺序程序设计,32/37,说明:(1)CNT处只能写1或CL,移动次数大于1时,该次数放于CL(2)SHL与SAL执行结果一致。(3)以上8条指令均影响CF位(4)算术移位相当于带符号数乘/除2,逻辑移位相当于无符号数乘/除2。,第五章汇编语言顺序程序设计,33/37,例:将AL的内容算术左移5位MOVAL,0AAHMOVCL,5SALAX,CL,第五章汇编语言顺序程序设计,34/37,本章内容分三节:5.1算术指令5.2逻辑指令5.3顺序程序举例,第五章汇编语言顺序程序设计,35/37,例1:设有三个无符号的个位数,计算这三个数的平均值(截尾取整),并将这个平均值显示在屏幕上。,datasegmentadb6bdb9cdb2dataendscodesegmentassumecs:code,ds:datamainprocfarstart:movax,datamovds,axmoval,aaddal,b,addal,cmovah,0movbl,3divblmovdl,aladddl,30hmovah,02hint21hmovax,4c00hint21hmainendpcodeendsendstart,第五章汇编语言顺序程序设计,36/37,例2:编程实现对一个无符号32位数的乘4操作。,datasegmentxdd12345678hydd?dataendscodesegmentassumecs:code,ds:datamain
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业定制珠宝合同范本
- 绿化草坪的合同范本
- 支持性服务合同范本
- 公司房租合同范本
- 中介售房居间合同范本
- 海南房屋租赁合同范本
- 客车司机用工合同范本
- 押物放款合同范本
- 销售型员工合同范本
- 橱柜定做采购合同范本
- 茂县生活垃圾资源化综合利用项目环评报告
- 水电站新ppt课件 第一章 水轮机的类型构造及工作原理
- 护理查对制度课件
- 市政工程占道施工方案
- 初中英语中考专题训练阅读理解-应用文篇
- GB/T 39965-2021节能量前评估计算方法
- GB/T 20671.1-2006非金属垫片材料分类体系及试验方法第1部分:非金属垫片材料分类体系
- GB/T 17449-1998包装玻璃容器螺纹瓶口尺寸
- 熵权法教学讲解课件
- PMC知识培训课件
- 高中数学教材分析讲座课件第五章-三角函数
评论
0/150
提交评论