电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

微机原理与汇编语言第06章

138页
  • 卖家[上传人]:我**
  • 文档编号:118283190
  • 上传时间:2019-12-12
  • 文档格式:PPT
  • 文档大小:813KB
  • / 138 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第6章 汇编语言程序设计及应用举例 本章重点: 进一步熟悉理解8086/8088微处理器的指令。 掌握二进制及十进制算术运算指令及程序设计的 方法,掌握XLAT转换指令及查表程序设计,理解 位运算指令包括逻辑运算指令和移位指令及应用. 了解串处理指令的功能,掌握常用的DOS功能调 用和BIOS中断调用指令的使用方法,能综合应用 汇编指令编写格式正确的汇编源程序等。 第6章 汇编语言程序设计及应用举例 6.1 算术运算程序设计 6.2 数码转换 6.3 查表程序设计 6.4 逻辑运算 6.5 字符串处理 6.6 系统的功能调用 6.7 综合编程应用举例 6.1 算术运算程序设计 四则运算是计算机经常进行的一种操作。算 术运算指令实现二进制(和十进制)数据的四 则运算 请注意算术运算类指令对标志的影响 掌握:ADD/ADC/INC、SUB/SBB/DEC/ NEG/CMP 熟悉:MUL/IMUL、DIV/IDIV 理解:CBW/CWD、DAA/DAS、 AAA/ AAS/AAM/AAD 6.1.1 加法类指令 1加法指令ADD 功能:OPRD1OPRD1+OPRD2 完成两个操作数相加,结

      2、果送至目的操作数 OPRD1。目的操作数可以是累加器,通用寄存器 及存储器操作数。ADD指令影响所有标志位CF、 DF、PF、SF、ZF和AF。 MOV AX,2 ;(AX)=2 MOV BX,4 ;(BX)=4 ADD AX,BX ;(AX)=6 例6.1.1:加法运算 mov al,0fbh ;al=0fbh add al,07h;al=02h mov word ptr 200h,4652h ;200h=4652h mov bx,1feh ;bx=1feh add al,bl;al=00h add word ptr bx+2,0f0f0h ;200h=3742h ADDADD 1加法指令ADD 例如: ADD AL,30 ;累加器与立即数相加 ADD BX,3000H ;通用寄存器与存储单元内容相加 ADD DI,CX ;通用寄存器之间 ADD DX,DATABX+SI ;通用寄存器与存储单元内容相加 ADD BUFFSI,DX ;存储器操作数与寄存器相加 6.1 算术运算程序设计 2加进位的加法指令ADC 格式:ADC OPRD1,OPRD2 功能:OPRD1OPRD1+OPRD

      3、2+CF 这条指令与上条指令类似,只是在两个操作数相加 时,要把进位标志CF的现行值加上去,结果送至目的操 作数。这条指令对标志位的影响与ADD相同。 例:计算13579BDF H十02468ACE H的值。 MOV DX,1357H MOV AX,9BDFH ADD AX,8ACEH ;CF=1,(AX)=26ADH ADC DX,0246H ;(DX)=159EH 例6.1.2:双字加法 mov ax,4652h;ax=4652h add ax,0f0f0h ;ax=3742h,CF=1 mov dx,0234h;dx=0234h adc dx,0f0f0h ;dx=f325h,CF=0 ;DX.AX0234 4652H F0F0 F0F0H F325 3742H ADCADC 6.1 算术运算程序设计 格式:INC OPRD 功能:OPRDOPRD+1 完成对指定的操作数OPRD加1,然后返回此操作数。此指令主 要用于在循环程序中修改地址指针和循环次数等。INC指令执行的结 果不影响CF位,而对其它5个标志位AF、OF、PF、SF和ZF有影响 。 例如: MOV AL,-2 ;(

      4、AL)= -2 ADD AL,1 ;(AL=-1,CF=0 ADD AL,1 ;(AL)=0,CF=1 ADC AL,4 ;(AL)=5,CF=0 MOV AL,-2 ;(AL)= -2 ADD AL,1 ;(AL)= -1,CF=0 INC AL ;(AL)=0,CF=0 ADC AL,4 ;(AL)=4,CF=0 3加1指令INC 6.1 算术运算程序设计 1减法指令SUB 格式:SUB OPRD1,OPRD2 功能:OPRD1OPRD1OPRD2 完成两个操作数相减,也即从OPRD1中 减去OPRD2,结果放在OPRD1中。 例如: SUB CX,BX SUB BP,CL 6.1.2 减法类指令 例6.1.3:减法运算 mov al,0fbh ;al=0fbh sub al,07h;al=0f4h,CF0 mov word ptr 200h,4652h ;200h=4652h mov bx,1feh ;bx=1feh sub al,bl;al=0f6h sub word ptr bx+2,0f0f0h ;200h=5562h,CF1 SUBSUB 6.1 算术运算程序设计 格式:

      5、SBB OPRD1,OPRD2 功能:OPRD1OPRD1OPRD2CF 这条指令与SUB类似,只是在两个操作数相减时,还要 减去借位标志CF的现行值。本指令对标志位AF、CF、OF 、PF、SF和ZF都有影响。同ADC指令一样,本指令主要 用于多字节操作数相减。 例6.1.3:计算13579BDF H-02468ACE H的值。 MOV AX,9BDFH SUB AX,8ACEH ;CF=0,(AX)=1111H MOV DX,1357H SBB DX,0246H ;(DX)=1111H 2带借位的减法指令SBB 例6.1.3b:双字减法 mov ax,4652h;ax=4652h sub ax,0f0f0h ;ax=5562h,CF=1 mov dx,0234h;dx=0234h sbb dx,0f0f0h ;dx=1143h,CF=1 ;DX.AX0234 4652H F0F0 F0F0H 1143 5562H SBBSBB 6.1 算术运算程序设计 格式:DEC OPRD 功能:OPRDOPRD1 对指令的操作数减1,然后送回此操作数。在 相减时,把操作数作为一个无符号二进制数

      6、来对 待。指令执行的结果,影响标志AF、OF、PF、 SF和ZF,但对CF标志不影响(即保持此指令以前 的值)。 例如:CLC ;CF=0 MOV AX,0 ;(AX)=0,CF=0 DEC AX ;(AX)= -1,CF=0 SBB AX,3 ;(AX)= -4,CF=0 3减1指令DEC INC指令和DEC指令都是单操作数指令 主要用于对计数器和地址指针的调整 DEC指令对操作数减1(减量) DEC指令不影响进位CF标志,按定义 设置其他状态标志 6.1 算术运算程序设计 格式:NEG OPRD 功能:OPRD0OPRD 对操作数取补,即用零减去操作数,再把结果送 回操作数。求补运算属于减法运算,只不过被减数 为0。 例:假设AL=4, 执行 NEG AL后,(AL)=11111100=-4补 4求补指令NEG 例:MOV AH,5 NEG AH ;AH=11111011B,是-5(补码) MOV AX,-6 NEG AX ;AX=0006H,是+6 注:操作数为0,结果不变;操作数为-128或-32768,结 果数值不变,但置OF=1;NEG指令影响所有标志位。此 指令的结果一般

      7、总是使标志CF=1。除非在操作数为零时 ,才使CF=0。 例:MOV AL,3 ;(AL)=3,CF=0 NEG AL ;(AL)=-3,CF=1 NEG AL ;(AL)=3,CF=1 例6.1.4:求补运算 mov ax,0ff64h neg al ;ax=ff9ch,OF=0、SF=1、ZF=0、PF=1、CF=1 sub al,9dh ;ax=ffffh,OF=0、SF=1、ZF=0、PF=1、CF=1 neg ax ;ax=0001h,OF=0、SF=0、ZF=0、PF=0、CF=1 dec al ;ax=0000h,OF=0、SF=0、ZF=1、PF=1、CF=1 neg ax ;ax=0000h,OF=0、SF=0、ZF=1、PF=1、CF=0 NEGNEG 6.1 算术运算程序设计 格式:CMP OPRD1,OPRD2 功能:OPRD1OPRD2 比较指令完成两个操作数相减,使结果反映在标 志位上,但不送回结果。 例如:CMP AL,100 CMP DX,DI CMP CX,COUHTBP CMP COUNTSI,AX 5比较指令CMP 例6.1.4:比较AL与100

      8、cmp al,100;al-100 jb below ;al9,则(AL)+6AL, 1AF。 调整十位。若CF=1或AL高4位9,则(AL)+60HAL ,1CF 6.2.1 十进制调整指令 表6-1 十进制调整指 令 指令 格式 指令说明 DAA压缩 的BCD码 加法调整 DAS压缩 的BCD码 减法调整 AAA非压缩 的BCD 码加法调整 AAS非压缩 的BCD 码减法调整 AAM乘法后的BCD 码调 整 AAD除法前的BCD 码调 整 BCD码(Binary Coded Decimal),是用4位二进制数表示1 位十进制数的编码方式,也称为二一十进制数,或称8421 码。所以在计算机中人们用BCD码表示十进制数,对BCD 码计算机中有两种表示方法:一类为压缩BCD码,即规定 每个字节表示两位BCD数;另一类称为非压缩BCD码,即 用一个字节表示一位BCD数,在这字节的高四位用0填充。 例如,十进制数25,表示为压缩BCD数时为:25H;表示为 非压缩BCD数时为:0205H,用两字节表示。相关的BCD 转换指令见表6-1。 6.2.1 十进制调整指令 q 压缩BCD码就是通常的

      9、 8421码;它用4个二进制位 表示一个十进制位,一个字 节可以表示两个十进制位, 即0099 q 非压缩BCD码用8个二进 制位表示一个十进制位,只 用低4个二进制位表示一个 十进制位09,高4位任意 ,通常默认为0 十进制数调整指令对二进制运算的结果进行十进 制调整,以得到十进制的运算结果 分成压缩BCD码和非压缩BCD码调整 例6.2.1:设(BCD1)=1234H, (BCD2)=6789H。求(BCD1)十(BCD2)的值 。结果存BCD3中。如图6-2所示。 MOV AL,BCD1 ;(AL)=34H ADD AL,BCD2 ;(AL)=BDH,AF=0,CF=0 DAA ;(AL)=23H,AF=1,CF=1 MOV BCD3,AL MOV AL,BCDl+1 ;(AL)=12H ADC AL,BCD2+1 ;(AL)=7AH,AF=0,CF=0 DAA ;(AL)=80H,AF=1,CF=0 MOV BCD3+1,AL 6.2 数码转换 2. DAS指令 格式:DAS 功能:必须跟在SUB或SBB后使用,将存于AL 寄存器中的2位压缩型BCD码减法运算的结果进行 调整,调整后结果仍保留在AL中。调整办法: 调整个位。若AF=1或AL低4位9,则(AL)- 6AL,1AF。 调整十位。若CF=1或AL高4位9,则(AL)- 60HAL,1CF。 例:计算85-57的值。 MOV AL,85H SUB AL,57H ;(AL)=2EH,AF=1,CF=0 DAS ;(AL)=28H,AF

      《微机原理与汇编语言第06章》由会员我**分享,可在线阅读,更多相关《微机原理与汇编语言第06章》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.