(十进制调整指令,BCD码)201八年201八年201八年

上传人:woxinch****an2018 文档编号:44681646 上传时间:2018-06-14 格式:PPT 页数:40 大小:239KB
返回 下载 相关 举报
(十进制调整指令,BCD码)201八年201八年201八年_第1页
第1页 / 共40页
(十进制调整指令,BCD码)201八年201八年201八年_第2页
第2页 / 共40页
(十进制调整指令,BCD码)201八年201八年201八年_第3页
第3页 / 共40页
(十进制调整指令,BCD码)201八年201八年201八年_第4页
第4页 / 共40页
(十进制调整指令,BCD码)201八年201八年201八年_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《(十进制调整指令,BCD码)201八年201八年201八年》由会员分享,可在线阅读,更多相关《(十进制调整指令,BCD码)201八年201八年201八年(40页珍藏版)》请在金锄头文库上搜索。

1、李建俊 电子工业出版社11. 了解算术类指令的作用 2. 掌握算术类指令的格式及使用 3. 学会应用教学目标及要求2教学重点及难点重点、难点:指令的使用3教学方法1. 多媒体演示2. 提问式,启发式教学时数 24复习加法指令减法指令BCD码5本节内容乘法指令除法指令6十进制数(BCD码)运算指令BCD码,称二-十进制代码,亦称二进码十进数。是一种二进制的数字编码形式表示十进制数。这种编码形式利用了四位二进制表示一位十进制的数码。 7十进制数(BCD码)运算指令BCD码有两类: 非压缩型BCD码压缩型BCD码BCD07 0BCDBCD7 08实例12 压缩型BCD码 0001 0010一个字节存

2、放两位十进制数的BCD码 非压缩型BCD码 0000 0001 0000 0010一个字节存放一位十进制数的BCD码 9实例1. 34+23=572. 0011 01003. + 0010 00114. 0101 01115. 不需要调整2. 48+29=770100 1000+ 0010 10010111 0001+ 0000 01100111 0111需要调整 AF=1,10实例3. 57+46=1030101 0111 + 0100 01101001 1101 + 0000 01101010 0011+ 0110 0000 1 0000 0011中间结果 AF=0,但低4位9,加06H高

3、4位9,加60H11压缩型BCD码加法调整指令DAA 指令格式: DAA 该指令不带操作数,但是隐含给出的,隐含寄存器操作数为AL。 操作:1. 在用DAA之前,用ADD或ADC指令进行8位数加法运算,相加结果放在AL中.然后用DAA指令进行调整.注意: DAA只对AL中的内容进行调整,不会改变AH的内容.12压缩型BCD码加法调整指令DAA 调整方法:1) 调整个位:若AF=1或AL低4位9,则(AL)+06HAL,1AF2) 调整十位:若CF=1或AL高4位9,则(AL)+60HAL,1CF 57+46=1030101 0111 + 0100 01101001 1101 + 0000 01

4、101010 0011+ 0110 0000 1 0000 001113实例17+1835MOV AL,17 MOV BL,18 ADD AL,BL DAA0001 01110001 1000 0010 1111低4位 F9则加 06H0000 01100011 0101 AF=1,CF=014练习168+59=?48+29=?34+23=?15MOV 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+

5、1 ;(AL)=7AH,AF=0,CF=0 DAA ;(AL)=80H,AF=1,CF=0 MOV BCD3+1,AL设(BCD1)=1234H,(BCD2)=6789H。 求(BCD1)十(BCD2)的值。结果存BCD3中。练习216压缩型BCD码减法调整指令DAS 指令格式: DAS 该指令不带操作数,但是隐含给出的,隐含寄存 器操作数为AL。 操作:1.在用DAS之前,先用指令SUB或SBB进行8位数的减法运算,相减结果放在AL中.然后用DAS调整.17压缩型BCD码减法调整指令DAS 调整方法:1) 调整个位:若AF=1或AL低4位9, 则(AL)-06HAL,1AF2) 调整十位:若

6、CF=1或AL高4位9, 则(AL)-60HAL,1CF18减法实例3318150011 00110001 1000 0001 1011(AF=1)低4 位 B9则减06H0000 01100001 0101AF=1,CF=0MOV AL,33H SUB AL,18H DAS19计算85-57的值。MOV AL,85H SUB AL,57H ;(AL)=2EH,AF=1,CF=0 DAS ;(AL)=28H,AF=1,CF=0练习120非压缩型BCD码加法调整指令AAA 指令格式: AAA 该指令中的操作数是隐含给出的,隐含寄存器操作为AL和AH寄存器,最后得到的结果,个位放在AL中,十位放在

7、AH中。 操作:1. 在用AAA之前,先用指令ADD或ADC进行8位数的加法运算,相加结果放在AL中.然后用AAA调整.21非压缩型BCD码加法调整指令AAA0000 10000000 0111 0000 1111低4位 F9则 加06H0000 01100001 0101 AF=1,CF=007+0815高4位清零, AH+1AH 调整过程:IF (AL)低4位9或(AF)=1 (AL+06H)AL(AH+1)AH1AFAFCFAL高4位清零 ELSEAL高4位清零22AAA指令实例23+0831MOV AX,0203MOV BL, 08ADD AL,BLAAA23练习09+04=?48+0

8、9=?24非压缩型BCD码减法调整指令AAS 指令格式: AAS 该指令中的操作数是隐含给出的,隐含寄存器操作为AL和AH寄存器,最后得到的结果,个位放在AL中,十位放在AH中。 操作:1. 在用AAS之前,先用指令SUB或SBB进行8位数的减法运算,相加结果放在AL中.然后用AAS调整.25非压缩型BCD码减法调整指令AAS 调整过程:IF (AL)高4位9或(AF)=1 (AL-06H)AL(AH-1)AH1AFAFCF(AL)高4位清零 ELSE(AL)高4位清零0000 00110000 0100- 1111 1111低4位 F9则 减06H0000 0110-1111 1001 AF

9、=1,CF=013-0409高4位清零, AH-1AH26练习0803523041927总结非压缩型BCD码:AAA,AAS只影响状态标志AF和CF,其 它状态标志不确定.压缩型BCD码:DAA,DAS影响状态标志SF,ZF,AF,PF,CF,但不影响OF.28十进制乘除法调整指令AAM 非压缩型BCD码的乘法调整指令AAD 非压缩型BCD码的除法调整指令29已知字变量W1和W2分别存放着两个压缩 BCD数,编写程序求两数之和,并将其 和 送到SUM字节变量中。练习130DATA SEGMENTA1 DW 3456HA2 DW 6789HSUM DB 3 DUP(?) DATA ENDSCOD

10、E SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,BYTE PTR A1ADD AL,BYTE PTR A2DAAMOV SUM,ALMOV AL,BYTE PTR A1+1ADC AL,BYTE PTR A2+1DAAMOV SUM+1,ALMOV AL,0ADC AL,0MOV SUM+2,ALMOV AH,4CHINT 21H CODE ENDSEND START31OFFSET(求偏移量) 利用OFFSET运算符,可以得到一个标号或变量的偏移地址。 格式: OFFSET 变量名或标号名 实例DATA SEGM

11、ENT D1 DB 10H,23H,34HD2 DB 11H,90HDATA ENDSMOV CX, OFFSET D1MOV BX, OFFSET D2 32XLAT 字节转换指令 格式 XLAT src-table 功能:根据表中元素的序号,查出表中相应元素内容,取代AL内容。隐含寻址,有效地址EA=(BX)+(AL)。表头地址传送到BX寄存器,元素的序号即位移量送AL,表中第一个元素的序号为0,依次为1,2,3,.33实例37H36H35H34H33H32H31H30Htable+7table+6table+5table+4table+3table+2table+1table+0MOV

12、BX,OFFSET tableMOV AL,02HXLAT table34练习1将16进制数转换为ASC 码并显示出来,变量TAB1 定义。如下图:35DATA SEGMENTTABLE DB 30H,31H,32H,33H,34H,35H,36H,37HHEX DB 05H DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV BX,OFFSET TABLEMOV AL,HEXXLAT TABLEMOV DL,ALMOV AH,02HINT 21HMOV AH,4CHINT 21H CODE END

13、SEND START36练习2以BUF为首地址的内存中存有115的平方表。 查表求X单元中数(在115之间)的平方值,并 送回X单元。37DATA SEGMENTTABLE DB 1,4,9,16,25,36,49,64,81,100,121,144,169,196,255X DB 12 DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AX,0MOV BX,OFFSET TABLEMOV AL,XDEC ALXLAT TABLE ;ADD BX,AXMOV X,AL ;MOV X,BXMOV AH,4CHINT 21H CODE ENDSEND START 38小结1. 乘法指令2. 除法指令3. BCD码39作业复习本节课内容40

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号