资源描述:
《将ASCII码表示的十进制数转换为二进制数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、实验内容:实验1:将ASCII码表示的十进制数转换为二进制数二、实验步骤:1、从键盘输入五位的十进制数,保存在地址为3500H的存储单元2、把这个十进制数转换为十六进制数,所得结果保存在地址为3510H的存储单元中3、把这个十六进制的结果的每位取出来,转换为ACSII码值,存储在地址为3514H的存储单元中4、把以3514H为起始地址的字符串输出到屏幕,即可得到5位十进制数转换为二进制数的结果三、程序代码:DATASEGMENTORG34FEHBUFDB10DB?DB10DUP(?)ORG3510HBBFDB20DUP(?),0DH,0AH,'$'IBFDB'Pleasein
2、putonenumber:',0DH,0AH,'$'ICFDB0DH,0AH,'Theresultis:',0DH,0AH,'$'DATAENDSSTACKSEGMENTSTACK'STACK'STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETIBFMOVAH,9INT21HMOVDX,0MOVAH,0AHLEADX,BUFINT21HMOVSI,3500HMOVDX,0MOVCX,04HMOVBX,000AHMOVAH,00HCIRCLE:MOVAL,[SI
3、]SUBAL,30HADDAX,DXMULBXMOVDX,AXINCSIMOVAH,0LOOPCIRCLEMOVAL,[SI]SUBAL,30HADDAX,DXLEASI,BBFMOV[SI],AXMOVDX,AXMOVCH,04HMOVCL,04HMOVBX,3514HNEXT:ROLAX,CLMOVDL,ALANDDL,0FHCMPDL,09HJBEPLADDDL,07HPL:ADDDL,30HMOV[BX],DLINCBXDECCHJNZNEXTMOVDX,OFFSETICFMOVAH,9INT21HMOVAH,09HMOVDX,3514HINT21HMOVAH,4CHIN
4、T21HCODEENDSENDSTART四、代码运算过程:实验2:将从键盘输入的五位十进制数的ASCII码已存在3500起始的内存单元中。把它转换成BCD码后,再按位分别存入350A起始的内存单元内。若输入的不是十进制的ASCII码,则显示FF.代码如下:START:MOVAX,DATAMOVDS,AXLEASI,BUFMOVCX,05HMOVAH,00HLEADI,BBFCIRCLE:MOVAL,[SI]CMPAL,30HJBNEXTCMPAL,39HJANEXTSUBAL,30HINT21HINCDIINCSILOOPCIRCLELYX:MOV[DI],ALMOVAH,4CH
5、NEXT:MOVAL,0FFHJMPLYX程序运行:实验3:将十六位二进制数转换为ASCII码表示的十进制数。十六进制数的值域为0~65535,最大可转换为五位十进制数。代码如下:START:MOVAX,DATAMOVDS,AXLEASI,BUFMOVCH,05HMOVAH,00HLEADI,BBFADDDI,04HMOVBX,000AHMOVCL,04HMOVAX,[SI]CIRCLE:CWDMOVDX,0IDIVBXADDDL,30HMOV[DI],DLDECDIDECCHMOVDX,0JNZCIRCLEMOVAH,4CHINT21H程序运行: