码制转换 十、二进制数、ASCII码之间的互相转换。①BCD.PPT

上传人:天*** 文档编号:923531 上传时间:2018-11-07 格式:PPT 页数:31 大小:166KB
下载 相关 举报
码制转换 十、二进制数、ASCII码之间的互相转换。①BCD.PPT_第1页
第1页 / 共31页
码制转换 十、二进制数、ASCII码之间的互相转换。①BCD.PPT_第2页
第2页 / 共31页
码制转换 十、二进制数、ASCII码之间的互相转换。①BCD.PPT_第3页
第3页 / 共31页
码制转换 十、二进制数、ASCII码之间的互相转换。①BCD.PPT_第4页
第4页 / 共31页
码制转换 十、二进制数、ASCII码之间的互相转换。①BCD.PPT_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、1.码制转换十、二进制数、 ASCII码之间的互相转换。 BCD数 2进制数 算法: Dn-1*10n-1+D0*10 0 = (D n-1*10+ Dn-2)*10+)*10+ D 0= ( 0*10+Dn-1)*10+ Dn-2)*10+)*10+ D 0 即: 新的中间结果 = 中间结果 *10+本位数字(中间结果初值为 0)4.5 常见程序设计举例1程序 1:将 65535的非压缩 BCD数转换成 2进制数。程序如下 :;数据段定义mydata SEGMENTdecnum DB 5, 3, 0, 1, 9 ;BCD数 53019binnum DW ?mydata ENDS2prog S

2、EGMENTASSUME CS:prog, DS:mydatabegin: MOV AX, mydataMOV DS, AX MOV SI, OFFSET decnumMOV CX, 5 ;5位 BCD数 MOV BX, 10XORAX, AX ;中间结果初始值为 0Next: MUL BX ;中间结果 *10+本位数字ADD AL, SIADC AH, 0INC SI ;指向下位 BCD数LOOP nextMOV binnum, AX ;保存结果MOV AH, 4CHINT 21Hprog ENDSEND begin3程序 2:把 255的非压缩 BCD数转换成 2进制数decnum DB

3、1, 5, 9 ;BCD数 159binnum DB ?MOV AX, decnumXCHG AH, AL ;百位在 AH, 十位在 ALAAD ;百位数 *10 + 十位数MOV AH, AL ;中间结果送 AHMOV AL, decnum+2AAD ;中间结果 *10 + 个位数MOV binnum, AL4例:从键盘输入两个整数 ,并求其和。因键入为整数 ,故要进行如下转换:ASCIIBCD 二进制数ASCIIBCD 码很简单 ,高 4位清零即可得到非压缩的 BCD码。BCD 二进制数在本例中采用用以下方法:(0+千位数 )*10+百位数 )*10)+十位数 )*10+个位数 ASCII

4、码 二进制数 (用于输入 ) 第一次中间结果第二次中间结果第三次中间结果最终结果 5开始两个数分别转换成二进制数键入两个数相加结束返回 DOS如有溢出则提示开始取第一个 ASCII码是 负号吗?数字符个数 1,指针 1指针定位字符个数 1= 0?取数字,与中间结果相加,再乘以 10指向下一个数字字符加个位数是负数则求补存结果结束NYYN转换子程序6程序如下:DATA SEGMENTSTR1 DB 10,?,10 DUP(?) ;第 1个数的输入缓冲区 STR2 DB 10,?,10 DUP(?) ;第 2个数的输入缓冲区 NUM DW ?,?;存转换后的二进制数SUM DW 0;存和OVER

5、DB Overflow!,13,10,$DATA ENDS;CODE SEGMENTASSUME CS:CODE,DS:DATAMAIN PROCFAR7START: MOV AX,DATAMOV DS,AXMOV AH,0AHLEA DX,STR1INT 21H ;输入第一个数字串 (设为 26)MOV AH,0AHLEA DX,STR2INT 21H ;输入第二个数字串 (设为 33)LEA BX,STR1 ;串 1的首地址送 BXLEA DI,NUM ;存二进制首地址送 DICALLCHANGE ;将串 1 ASCII码 二进制LEABX,STR2 ;串 2的首地址送 BX 8LEADI

6、,NUM+2;指向CALLCHANGE;将串 2 ASCII码 二进制MOV AX,NUM ;(AX)=NUM=001AHADDAX,NUM+2;两数相加,(AX)=003BHMOV SUM,AX;存和JNO NEXT ;无溢出 ,转NEXTLEADX,OVERMOV AH,9INT 21H ;显示 Overflow!NEXT: MOV AH,4CHINT 21H ;返回 DOSMAINENDP9CHANGE PROCMOVCL,BX+1 ;实际字符数送 CLMOVAL,BX+2 ;第一个字符送 ALMOVCH,AL;暂存在CHCMPAL,- ;第一个字符是负号吗 ?JNZNEXT1;不是 ,转 NEXT1DEC CL;字符数减 1INC BXNEXT1: ADD BX,2;指向第一个数字字符MOVAX,0;清零AX,存二进制数LP1: DEC CLJZNEXT2;若(CL)=0,转 NEXT2MOVDL,BX ;取字符ANDDL,0FH;转换成BCD码ADD AL,DL ;加到中间结果上ADC AH,0 10

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。