版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 80 x86指令系统 二、算术运算指令8086808680888088有丰富的算术运算指令,而且可以处有丰富的算术运算指令,而且可以处理理4 4种类型的数据,如下表所示:种类型的数据,如下表所示:AX、DX寄存器乘除AX寄存器乘除AX、DX寄存器乘除AX寄存器乘除AX寄存器加减09分离式AX寄存器乘除AX寄存器加减099组合式十进制所有的通用寄存器或存储器加减-32768+3276716位带符号所有的通用寄存器或存储器加减-1281278位带符号所有的通用寄存器或存储器加减06553516位无符号所有的通用寄存器或存储器加减02558位无符号二进制第4章 80 x86指令系统 1.1.
2、加法指令加法指令在微处理器中,没有专用的在微处理器中,没有专用的BCD码运算指令,码运算指令,使用二进制运算指令进行使用二进制运算指令进行BCD码数的运算,然后用码数的运算,然后用BCD码运算调整指令进行调整,重新得到码运算调整指令进行调整,重新得到BCD码的码的结果。结果。 BCD调整指令 ASCII码调整指令 (dst) (dst) + 1 (dst) (dst)+(src)+(CF) (dst) (dst) +(src)操作功能1CPS Z A DAA AAA INC dst ADC dst, src ADD dst, srcO标志位影响指令格式第4章 80 x86指令系统 例 4 .
3、3 计 算 两 个 多 字 节 十 六 进 制 数 之 和 :3B74AC60F8H+20D59E36C1H=? 式中被加数和加数均有5个字节,可以编一个循环程序实现以上运算。假设已将被加数和加数分别存入从DATA1和DATA2开始的两个内存区,且均为低位字节在前,高位字节在后,如图4.15所示。要求相加所得结果仍存回以DATA1为首址的内存区。 第4章 80 x86指令系统 程序流程图如图4.16所示。程序如下:MOV CX,5;设置循环次数MOV SI,0 ;置位移量初值CLC ;清进位CFLOOPER:MOV AL,DATA2SI;取一个加数ADC DATA1SI,AL;和一个被加数相加
4、INC SI ;位移量加1DEC CX ;循环次数减1 JNZ LOOPER ;加完否,若没完,转LOOPER,继续相加HLT ;程序暂停 第4章 80 x86指令系统 F8H60HACH存储器DATA174H3BHC1H36H9EHD5H20HDATA2被加数加数图4.15 例4.3中被加数和加数在内存中的存放情况 第4章 80 x86指令系统 开始初始化: 置循环次数清SI, 清进位标志CF取一个字节加数与一个被加数相加并送回内存区SI加1循环次数减1循环次数到结束YN 图4.16 例4.3的程序流程图 第4章 80 x86指令系统 AAA指令的操作为:指令的操作为:如果如果(AL) 0F
5、H9 或或 (AF)1则则(AL) (AL)06H(AH) (AH)1(AF) 1(CF) (AF)(AL) (AL) 0FH)否则否则(AL) (AL) 0FH)DAA指令的操作为:指令的操作为:如果如果(AL) 0FH9, (AF)1则则(AL) (AL)06H(AF) 1如果如果(AL) 9FH 或或 (CF)1则则(AL) (AL)60H(CF) 1第4章 80 x86指令系统 例要求计算两个至今指数之和,例要求计算两个至今指数之和,7 78 8?。可用以?。可用以下指令实现:下指令实现:MOV AX, 0007HMOV AX, 0007H;(AL)=07H,(AH)=00H;(AL)
6、=07H,(AH)=00HMOV BL, 08HMOV BL, 08H;(BL)=08H;(BL)=08HADD AL, BLADD AL, BL;(AL)=0FH;(AL)=0FHAAAAAA;(AL)=05H,(AH)=01H;(AL)=05H,(AH)=01H;(CF)=(AF)=1;(CF)=(AF)=1MOV AX, 0007HMOV AX, 0007H;(AL)=07H,(AH)=00H;(AL)=07H,(AH)=00HMOV BL, 08HMOV BL, 08H;(BL)=08H;(BL)=08HADD AL, BLADD AL, BL;(AL)=0FH;(AL)=0FHDAA
7、DAA;(AL)=15H,(AH)=00H;(AL)=15H,(AH)=00H;(CF)=0,(AF)=1;(CF)=0,(AF)=1第4章 80 x86指令系统 2.减法指令BCD调整指令ASCII码调整指令(dst) (src)(dst) 0 (dst)(dst) (dst) 1(dst) (dst) (src) (CF)(dst) (dst) (src)操作功能AASCMP dst, src1CPS Z ADASNEG dstDEC dstSBB dst, srcSUB dst, srcO标志位影响指令格式第4章 80 x86指令系统 例4.4 内存数据段存放了200个带符号数,首地址为
8、TAB1,要求将各数取绝对值后存入以TAB2为首址的内存区。 由于200个带符号数中可能既有正数,又有负数,因此先要判断正负。如为正数,可以原封不动地传送到另一内存区;如为负数,则需先求补即可得到负数的绝对值,然后再传送。程序如下: LEA SI,TAB1;(SI)源地址指针LEA DI,TAB2 ;(DI)目标地址指针 MOV CX,200 ;(CX)循环次数 第4章 80 x86指令系统 CHECK: MOVAL,SI ;取一个带符号数到ALORAL,AL ;AL内容不变,但使之影响标志JNSNEXT ;若(SF)=0,则转NEXTNEG AL ;否则求补NEXT:MOV DI,AL ;传
9、送到目标地址INC SI ;源地址加1INC DI ;目标地址加1DEC CX ;循环次数减1JNZ CHECK ;如不等于零,则转CHECKHLT ;停止 第4章 80 x86指令系统 AAS指令的操作为:指令的操作为:如果如果(AL) 0FH9 或或 (AF)1则则(AL) (AL)06H(AH) (AH)1(AF) 1(CF) (AF)(AL) (AL) 0FH)否则否则(AL) (AL) 0FH)DAS指令的操作为:指令的操作为:如果如果(AL) 0FH9, (AF)1则则(AL) (AL)06H(AF) 1如果如果(AL) 9FH 或或 (CF)1则则(AL) (AL)60H(CF)
10、 1第4章 80 x86指令系统 3.乘法指令BCD调整指令(AX) (src) (AL)(DX:AX) (src) (AX)(AX) (src) (AL)(DX:AX) (src) (AX)操作功能CPS Z AAAMIMUL srcMUL srcO标志位影响指令格式AL源操作数ALAHAX源操作数AXDX第4章 80 x86指令系统 4.除法指令若(AX)8000H,则(DX) 0000H,否则(DX) FFFFHCWD若(AL)80H,则(AH) 00H,否则(AH) FFHCBWBCD调整指令(AL) (AX)/(src)的商(AH) (AX)/(src)的余数(AX) (DX:AX)
11、 /(src)的商(DX) (DX:AX) /(src)的余数(AL) (AX)/(src)的商(AH) (AX)/(src)的余数(AX) (DX:AX) /(src)的商(DX) (DX:AX) /(src)的余数操作功能CPS Z AAADIDIV srcDIV srcO标志位影响指令格式第4章 80 x86指令系统 8086/8088CPU执行除法时规定:除数只能是被执行除法时规定:除数只能是被出数的一半字长。当被除数为出数的一半字长。当被除数为16位时,除数应为位时,除数应为8为;为;当被除数为当被除数为32位时,除数应为位时,除数应为16为为AL源操作数AXAHAXAL源操作数AH
12、DX商商余数余数8位16位16位32位除数除数被除数被除数第4章 80 x86指令系统 三、逻辑类指令 1. 1. 逻辑运算指令逻辑运算指令逻辑运算类指令与算术运算指令不同,算逻辑运算类指令与算术运算指令不同,算术指令是按字节或字进行算术运算,而逻辑运术指令是按字节或字进行算术运算,而逻辑运算指令是把操作数按位来进行逻辑运算。算指令是把操作数按位来进行逻辑运算。 第4章 80 x86指令系统 “与与”运算指令运算指令格式:格式:AND dst, src“或或”运算指令运算指令格式:格式: OR dst, src“非非”运算指令运算指令格式:格式:NOT opr“异或异或”运算指令运算指令格式:
13、格式:XOR dst, src测试指令测试指令格式:格式:TEST dst, src说明:说明:TEST相当于相当于AND运算,但是运算,但是不保存结果,仅影响标志。不保存结果,仅影响标志。第4章 80 x86指令系统 常见的用法举例常见的用法举例 清进位标志位:清进位标志位: AND AX,AX 或或 OR AL,AL等等 清零操作数:清零操作数:XOR AX,AX 不仅把不仅把AX清清零,而且也影响了状态标志零,而且也影响了状态标志 把某几位取反:用把某几位取反:用XOR指令,把要取反指令,把要取反的位和的位和1异或,不变的位和异或,不变的位和0异或异或 清零或置位某几位:用清零或置位某几
14、位:用AND指令清零,指令清零,用用OR指令置位指令置位第4章 80 x86指令系统 2. 移位操作指令移位操作指令该类指令的使用方法是:该类指令的使用方法是: 移动移动1位,用类似于位,用类似于 SHL AX,1的格式的格式 移动移动n位,用类似于位,用类似于 SHL AX,CL的格式的格式SHL逻辑左移:操作数整体左移,最高位移到逻辑左移:操作数整体左移,最高位移到CF,空余低位补空余低位补0SHR逻辑右移:操作数整体右移,最低位移到逻辑右移:操作数整体右移,最低位移到CF,空余高位补空余高位补0SAL算术左移:和算术左移:和SHL指令相同指令相同SAR算术右移:操作数整体右移,最低位移到
15、算术右移:操作数整体右移,最低位移到CF,空余高位补原符号位空余高位补原符号位第4章 80 x86指令系统 逻辑移位适用于无符号数,算术移位适逻辑移位适用于无符号数,算术移位适用于有符号数。用于有符号数。 逻辑左移和算术左移的机器码完全相同,逻辑左移和算术左移的机器码完全相同,是助记符的两种写法。是助记符的两种写法。ROL循环左移:操作数整体左移,最高位循环左移:操作数整体左移,最高位移到移到CF,最低位补原最高位,最低位补原最高位ROR循环右移:操作数整体右移,最低位循环右移:操作数整体右移,最低位移到移到CF,最高位补原最低位,最高位补原最低位第4章 80 x86指令系统 RCL带进位的循
16、环左移:类似于带进位的循环左移:类似于ROL循环循环移位,移位,CF加入到循环圈中。加入到循环圈中。RCR带进位的循环右移:类似于带进位的循环右移:类似于ROR循环循环移位,移位,CF加入到循环圈中。加入到循环圈中。说明:说明:循环移位常用来变换数据格式。循环移位常用来变换数据格式。MOV CL,4;置循环以位次数置循环以位次数MOV AL,16H;(AL)=16HROL AL,CL;(AL)=61H第4章 80 x86指令系统 四、串操作指令 串操作指令的特征是对数据块(字符串)进行操串操作指令的特征是对数据块(字符串)进行操作,并且其中部分指令可以两个操作数同时是存储器操作,并且其中部分指
17、令可以两个操作数同时是存储器操作数。作数。MOVSMOVS (Move string) (Move string) 串传送串传送CMPSCMPS (Compare string) (Compare string) 串比较串比较SCASSCAS (Scan string) (Scan string) 串扫描串扫描LODSLODS (Load from string) (Load from string) 从串中取数据从串中取数据STOSSTOS (Store in to string) (Store in to string) 存数据到串中存数据到串中第4章 80 x86指令系统 串操作指令每次
18、执行完成一个字节或一个字的串操作指令每次执行完成一个字节或一个字的操作。操作。 通常使用重复前缀,用来完成数据块的操作。通常使用重复前缀,用来完成数据块的操作。重复前缀重复前缀 REP 重复重复 REPE/REPZ 相等相等/为零则重复为零则重复 REPNE/REPNZ 不相等不相等/不为零则重复不为零则重复第4章 80 x86指令系统 串操作指令需要指明每次操作的类型:串操作指令需要指明每次操作的类型:B 字节,字节,W字字例如:例如:MOVSB, CMPSW等。等。串操作指令使用串操作指令使用DS:SI作为源操作数的指针;作为源操作数的指针;ES:DI作为目的操作数的指针作为目的操作数的指针使用使用DF来表示每次操作以后变址寄存器来表示每次操
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贝类繁育工班组管理竞赛考核试卷含答案
- 催化剂制造工工作效率水平考核试卷含答案
- 移动通信机务员操作能力知识考核试卷含答案
- 炼钢原料工岗位技能综合实践考核试卷含答案
- 染色小样工交接水平考核试卷含答案
- 2026超高清视频编解码芯片自主创新与生态建设路径研究
- 2026金融行业市场供需分析及发展评估规划研究分析文献
- 2026充电设施用地政策创新与多场景复合利用模式报告
- 2026电磁屏蔽材料在数据中心建设中的渗透率预测报告
- 2026医疗级纯水制备系统关键材料国产化进程评估
- 广东佛山市南海区狮山镇2026年村(社区)工作人员招聘考试试卷-含答案解析
- 施工过程各阶段质量安全的保证措施
- 云南劳动合同续签协议书
- 借款担保人协议书
- 人教版中考物理复习第三章物态变化教学课件
- 表5.13.16钢构件(多层及高层)安装工程检验批质量验收记录
- GB/T 19443-2017标称电压高于1 500 V的架空线路用绝缘子直流系统用瓷或玻璃绝缘子串元件定义、试验方法及接收准则
- DLIF术后护理
- PMDP课程-角色认知
评论
0/150
提交评论