




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章8086 8088指令系统 格式 INCreg mem功能 类似于C语言中的 操作 对指定的操作数加1例 INCALINCSIINCBYTEPTR BX 4 注 本指令不影响CF标志 3 加1指令INC 单操作数指令 1 不考虑借位的减法指令SUB格式 SUBdest src操作 dest dest src 注 1 源和目的操作数不能同时为存储器操作数2 立即数不能作为目的操作数3 SUB指令对操作数的要求以及对状态标志位的影响和ADD指令完全相同 2 减法指令 例 SUBAL 60HSUB BX 20H DXSUBAX CXSUBAL BX SI AL的内容与SS BP SI 单元的内容相减 结果送AL SBB指令主要用于多字节的减法 格式 SBBdest src操作 dest dest src CF 功能 用目的操作数减去源操作数以及标志位CF的值 结果仍送到目的操作数 注意 SBB指令对操作数的要求以及对状态标志位的影响与SUB指令完全相同 只是CF也要参加求差运算 指令例子 SBBAX CXSBBWORDPTR SI 2080HSBB SI DX 2 考虑借位的减法指令SBB 例 SBBBL 30H BL BL 30H CF SBBDX SI DX DX SI CF 作用类似于C语言中的 操作符 格式 DECopr操作 opr opr 1指令例子 DECCLDECBYTEPTR DI 2 DECSI 3 减1指令DEC 格式 NEGopr操作 opr 0 opr 对一个操作数求补相当于用0减去此操作数 故利用NEG指令可得到负数的绝对值 不是求补码 例 若 AL 0FCH 则执行NEGAL后 AL 04H CF 1本例中 0FCH为 4的补码 执行求补指令后 即得到4 4的绝对值 4 求补指令NEG 格式 CMPdest src操作 dest src CMP也是执行两个操作数相减 但结果不送目标操作数 其结果只反映在标志位上 指令例子 CMPAL 0AHCMPCX SICMPDI BX 03 5 比较指令CMP 例 CMPBX 2100H BX 2100H 修改标志位CMPCL DH CL DH 修改标志位 根据标志位来判断比较的结果 1 根据ZF判断两个数是否相等 若ZF 1 则两数相等 2 若两个数不相等 则分两种情况考虑 比较的是两个无符号数若CF 0 则dest src 若CF 1 则dest src 比较的是两个有符号数若OF SF 0 则dest src 若OF SF 1 则dest src 比较指令在使用时 一般在其后紧跟条件转移指令 判断比较结果的转向 举例 比较AL BL CL中带符号数的大小 将最小数放在AL中 程序 CMPAL BL AL和BL比较JNGBBB 若AL BL 则转XCHGAL BL 若AL BL 则交换BBB CMPAL CL AL和CL比较JNGCCC 若AL CL 则转XCHGAL CL 若AL CL 则交换CCC HLT 例 3 乘法指令 要点 有符号数和无符号数的乘法需要使用不同的乘法指令 乘法指令只需指出源操作数 即指令中只需指定乘数 被乘数和目的操作数隐含为累加器 和DX 乘法运算中乘数 被乘数 的字长与积的字长的关系 8位 8位 16位乘积 16位 16位 32位乘积 1 无符号数的乘法指令MUL MEM REG 格式 MULsrc操作 字节操作数 AX AL src 字操作数 DX AX AX src 操作数 指令中的源操作数可以是8位 或16位 的寄存器或存储器单元 但不能是立即数 指令例子 MULBL AL BL 乘积在AX中MULCX AX CX 乘积在DX AX中MULBYTEPTR BX 3 乘法指令 例 MULDL AX AL DL MULBX DX AX AX BX MULBYTEPTR SI AX AL SI MULW0RDPTR DI DX AX AX DI 1 DI MUL10 错误 源操作数不能为立即数MULAL BL 错误 目的操作数无需写出 格式与MUL指令类似 只是要求两操作数均为有符号数 指令例子 IMULBL AX AL BL IMULWORDPTR SI DX AX AX SI 1 SI 2 有符号数乘法指令IMUL 注意 MUL IMUL指令中 AL AX 为隐含的乘数寄存器 AX DX AX 为隐含的乘积寄存器 SRC不能为立即数 除CF和OF外 对其它标志位无定义 乘法指令对CF OF的影响 P36例3 36 3 37 00乘积的高位段为零11否则 MUL指令 CF OF 例 AL A5H 5B BL 11H 1 IMULBL AX AL BL A5 11 5B 11 060B F9F5 AX F9F5HCF OF 1 2 MULBL AX AL BL A5 11 0AF5 AX 0AF5HCF OF 1 4 除法指令 要点 有符号数和无符号数的除法需要使用不同的除法指令 除法指令只需指出源操作数 即指令中只需指定除数 被除数和目的操作数隐含为AX和DX 除法运算中被除数的字长与除数和商的字长的关系 16位 8位 8位商 8位余数 32位 16位 16位商 16位余数 除法指令对被除数 商及余数的存放有如下规定 格式 DIVsrc操作 字节操作 AL AX SRC 的商 AH AX SRC 的余数字操作 AX DX AX SRC 的商 DX DX AX SRC 的余数指令例子 DIVCLDIVWORDPTR BX 注 1 若除数为零或AL中商大于FFH 或AX中商大于FFFFH 则CPU产生一个类型0的内部中断 2 指令中的源操作数可以是8位 或16位 的寄存器或存储器单元 但不能是立即数 1 无符号数除法指令DIV 例 DIVBL 用BL的内容去除AX的内容 商放在AL 余数放在AHDIVCX 用CX的内容去除DX AX的内容 商放在AX 余数放在DXDIV10 错误 除数不允许是立即数 2 有符号数除法指令IDIV 格式 IDIVsrc操作与DIV类似 商及余数均为有符号数 且余数符号总是与被除数符号相同 注意 对于DIV IDIV指令AX DX AX 为隐含的被除数寄存器 AL AX 为隐含的商寄存器 AH DX 为隐含的余数寄存器 src不能为立即数 对所有条件标志位均无定义 除法运算要求被除数字长是除数字长的两倍 若不满足则需对被除数进行扩展 否则产生错误 对于无符号数除法扩展 只需将AH或DX清零即可 对有符号数而言 则是符号位的扩展 可使用前面介绍过的符号扩展指令CBW和CWD 关于除法操作中的字长扩展问题 例 写出34H 25H的程序段 MOVAL 34HMOVBL 25HCBW AL的符号扩展到AHIDIVBL 0034H 25H 结果为 AH 0FH AL 01H 例 编写程序 计算7FA2H 3DDH MOVAX 7FA2H AX 7FA2HMOVBX 03DDH BX 03DDHCWD DX AX 00007FA2H 位扩展 DIVBX AX 0021H 商 DX 0025H 余数 5 BCD码运算的十进制调整指令 专用于对BCD码运算的结果进行调整包括 AAA DAA AAS DAS AAM AAD均为隐含寻址 隐含的操作数为AL和AH为何要对BCD码的运算结果进行调整 BCD码本质上是十进制数 即应遵循逢十进一的规则 而计算机是按二进制 十六进制 进行运算 并未按十进制规则进行运算 BCD码调整指令的概貌 BCD码运算调整指令包括加法调整AAA和DAA 减法调整AAS和DAS 乘法调整AAM 除法调整AAD 1 加法的十进制调整指令 1 非压缩BCD码加法调整AAA本指令对在AL中的由两个未组合的BCD码相加后的结果进行调正 得到一个正确的未组合的BCD码 AAA指令只影响AF和CF 其余标志无定义 AAA指令应紧跟在ADD或ADC指令之后 如果AL的低4位 9 AF 1 则 AL AL 6 AH AH 1 AF 1 AL AL 0FH CF AF否则AL AL 0FH AAA指令的操作如下 调整原理 先看一个例子计算8 900001000见右式 0000100100010001 11结果应为17 而计算机相加为11 原因在于运算过程中 如遇到低4位往高4位产生进位时 此时AF 1 是按逢十六进一的规则 但BCD码要求逢十进一 因此只要产生进位 个位就会少6 这就要进行加6调正 这个1代表了16 而实际上仅应为10 即多进了6 实际上当低4位的结果 9 即A F之间 时 也应进行加6调正 原因是逢十没有进位 故用加6的方法强行产生进位 如对上例的结果进行加6 0001000111 0000011060001011117 00001111 0000000100000111 AH AL 例2 有两个字符串形式的十进制数 2658和3619 求二者之和 即2658 3619 由题意知 被加数和加数的每一位都以ASCII码形式存放在内存中 假定二数在内存中均是低位在前 高位在后 另留出5个单元存放相加的结果 内存中数据存放形式见下页图 36H 32H 39H 31H STRING1 STRING2 38H 35H 36H 33H 被加数 加数 数据段 8 5 6 2 9 1 6 3 SUM 结果 程序段为 LEASI STRING1 STRING1偏移地址送SILEADI STRING2 STRING2偏移地址送DILEABX SUM SUM偏移地址送BXMOVCX 4 循环4次CLC 清进位标志AGAIN MOVAL SI ADCAL DI 带进位加AAA 未压缩BCD码调正MOV BX AL 结果存入SUMINCSI 调整指针INCDIINCBXDECCX 循环计数器减1JNZAGAIN 若未处理完 则转AGAIN 2 压缩BCD码加法调整DAA 两个压缩BCD码相加结果在AL中 通过DAA调整得到一个正确的压缩BCD码 指令操作 调整方法 若AL的低4位 9 AF 1则 AL AL 6 AF 1若AL的高4位 9 CF 1则 AL AL 60H CF 1除OF外 DAA指令影响所有其它标志 DAA指令应紧跟在ADD或ADC指令之后 用十进制计算48 27 程序段如下 MOVAL 48HADDAL 27HDAA其中 ADD指令的运算过程为 48 27应等于75 但ADD指令运算的结果为6FH 结果不正确 执行DAA指令时 因低4位 9 故进行加6调整 可以看出 调整后 AL 75 BCD AF 1 CF 0 结果正确 1 非压缩BCD码减法的十进制调正指令AAS对AL中由两个非压缩的BCD码相减的结果进行调整 调整操作为 若AL的低4位 9或AF 1 则 AL AL 6 AH AH 1 AF 1 AL AL 0FH CF AF否则 AL AL 0FH 2 减法的十进制调整指令 自学 举例 16 8 MOVAX 0106H0000011006MOVBL 08H 00001000 08SUBAL BL11111110FEAAS 00000110 0611111000F8 00001111 0F0000100008结果为 AL 08H AH 0 CF AF 1 2 压缩BCD码减法的十进制调正指令DAS对AL中由两个压缩BCD码相减的结果进行调整 调整操作为 若AL的低4位 9 AF 1 则 AL AL 6 且AF 1若AL的高4位 9 CF 1 则 AL AL 60H 且CF 1DAS对OF无定义 但影响其余标志位 DAS指令要求跟在减法指令之后 3 乘法的十进制调正指令AAM对AX中由两个非压缩BCD码相乘的结果进行调整 调整操作为 AL 0AH AH 商 AL 余数隐含的操作寄存器为AL和AH AAM跟在MUL指令之后使用 影响标志位PF SF ZF 其它无定义 用AAM可实现 99的二 十进制转换 例1 按十进制乘法计算7 8 程序段如下 MOVAL 07H AL 07HMOVCL 08H CL 08HMULCL AX 0038HAAM AH 05H AL 06H所得结果为非压缩的BCD码 例2 把3AH转换成等值的十进制数 MOVAL 3AH 58AAM AH 05H AL 08H 4 除法的十
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一、查找网上资料教学设计-2025-2026学年小学信息技术粤教版四年级上册-粤教版
- 7 瓦楞纸的创意教学设计-2025-2026学年小学美术广西版四年级下册-广西版
- 第2课 智慧生活教学设计-2025-2026学年初中信息技术青岛版2024第六册-青岛版2024
- 1 平行四边形的性质说课稿-2025-2026学年初中数学鲁教版五四制2012八年级上册-鲁教版五四制2012
- 2025年中考数学试题分类汇编:特殊的平行四边形(13大考点69题) (第1期)解析版
- 2023八年级数学上册 第1章 分式1.3 整数指数幂1.3.2 零次幂和负整数指数幂说课稿 (新版)湘教版
- 2025年银行招聘考试模拟试题(200题)含答案
- 2023一年级数学上册 4 认识图形(2)说课稿 新人教版
- 蓄水池防护知识培训总结课件
- 蒸馒头的劳动课课件
- 2024新苏教版一年级数学上册全册教案(共21课时)
- 《交通运输行业安全生产监督检查工作指南 第2部分:道路运输》
- 物业费收缴培训
- 操作系统原理 习题及答案(机工孟庆昌第2版)
- 军用无人机课件
- 303智能化综采工作面作业规程
- 中建基础设施公司“主要领导讲质量”
- 山东省二年级下册数学期末考试试卷
- GB/T 44621-2024粮油检验GC/MS法测定3-氯丙醇脂肪酸酯和缩水甘油脂肪酸酯
- 校园天眼平台建设方案
- 餐饮加盟协议合同书
评论
0/150
提交评论