第七章-指令系统2014.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章-指令系统2014

谢 谢! * 苗清影 qymiao@sjtu.edu.cn 80X86微处理器的指令系统 二、算术运算指令(Arithmetic) 1. 加法指令 2. 减法指令 8086/8088的指令系统(续) 8086/8088 指令助记符表 8086/8088 指令助记符表 8086/8088提供加、减、乘、除、转换五种基本算术操作 利用十进制调整指令和ASCII调整指令对BCD码表示的十进制数进行算术运算,对带符号数与无符号数进行乘、除运算。 1. 加法指令 (Arithmetic) 2. 减法指令 (Subtraction) 3. 乘法指令 (Multiplication) 4. 除法指令 (Division) 5. 转换指令 算术运算指令(Arithmetic) 大部分都影响标志位,不同指令影响不同: 1. 加、减法指令影响 SF,ZF,AF,PF,CF,OF; 2. 加1和减1指令不影响CF; 3. 乘法指令影响CF,OF; 4. 除法指令使大部分标志位的状态不确定; 5. 对BCD码调整指令对标志位的影响不同; 6. 转换指令对标志位无影响。 都可以用于字节、字的运算; 双操作数指令除源为立即数外,其余必须有一个操作数为寄存器;单操 作数指令不能为立即数。 算术运算指令 特点 1. ADD (Addition)加法指令 2. ADC (Add with carry)带进位加法指令 3. INC (Increment by 1)加1指令 4. AAA (ASCII adjust for addition)加法ASCII调整指令 5. DAA (Decimal adjust for addition)加法十进制调整指令 加法指令 指令格式:ADD dest, src; (dest)?(dest)+(src) Src:立即数,寄存器,存储器。 dest:寄存器,存储器。 例: ADD CL, 10 ;寄存器+立即数 ADD DX, SI ;寄存器+寄存器 ADD AX, MEM ;寄存器+存储器 ADD DATA[BX], AL ;存储器+寄存器 ADD (Addition) 加法指令 可以进行8位、16位的无符号数和带符号数的加法运算; 源操作数和目标操作数不能同时为存储器, 不能为段寄存器; 指令影响标志位的情况: OF=1,8位带符号数相加,和超出范围(-128~ +127) 16位带符号数相加,和超出范围(-32768~ +32767) CF=1,8位无符号数相加,和超过255 16位无符号数相加,和超过65535 其他条件标志(SF,AF,PF,ZF)根据定义设定。 ADD 指令 应用 例 MOV AL,7EH (AL)=7EH MOV BL,5BH (BL)=5BH ADD AL,BL (AL)=7EH+5BH=D9H 影响标志位的情况: ADD 指令 应用 SF=1, 结果最高位=1 ZF=0,结果不等于0 AF=1,D3 位向D4 有进位 PF=0,“1”的个数为奇数 CF=0,无进位 OF=1,和超过+127 (两个正数相加,结果为负;反之亦是) ADD 指令 应用 (BX)=1300H, (SI)=3500H, DX=1234H 操作 ADD [BX+SI], DX X X Y Y 4800H 4801H 1 2 3 4H + YYXX H ADD 指令 应用 编程实现两个双字型数的相加。 MOV AX, WORD PTR DP1 ADD AX, WORD PTR DP2 MOV WORD PTR DPSUM, AX MOV AX, WORD PTR DP1+2 ADC AX, WORD PTR DP2+2 MOV WORD PTR DPSUM+2, AX DP sum DP1 DP2 ADD 指令 应用 格式:ADC dest,src;(dest)←(dest)+(src)+CF CF: 进位标志CF的现行值(上条指令CF值) 特点:与ADD同。 用途:主要用于多字节运算中。 类型举例: ADC CX, 300 ;寄存器+立即数+CF ADC AL, BL ;寄存器+寄存器+CF ADC DX, COUNT[SI] ;寄存器+存储器+ CF ADC 指令 带进位加法 举例:计算两个多字节数相加 3B74AC60F8H+20D59E36C1H=? 两个多字节数存放在:DATA1, DATA2的开始单元。 流程图 多字节数内存存放 MOV CX, 5 MOV SI, 0 ;清SI CLC ;清CF LOOPER

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档