资源描述:
《用汇编语言程序实现数制转换》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、用汇编语言程序实现数制转换关键词:转换、程序、十进制数、十六进制数、逻辑、移位、寄存器。摘要:本文主要谈了用汇编语言程序实现十进制数转换为十六进制数和十六进制数转换为十进制数的方法、过程以及功能介绍,并给出实现数制变换的两个程序段。ProcedurerealizesandcountsandmakechangingblerlanguageTheuniversityofJixilvlianxueKeyofcountingtentimes,sexadecimalnumbersystemiscounted,logicshifts,theregister,Summary:Thistextd
2、iscussandrealizeblerlanguageproceduredecimalnumberchangeintosexadecimalnumbersystemcountandsexadecimalnumbersystemcountmethodtomovemainly,Courseandfunctionintroduce,giveandappearandrealizeandcountandmaketentteacher(engineer)在学习汇编语言或调试汇编程序时常常会碰到将十进制数变成十六进制数或将十六进制数变为十进制数等数制变换问题,因此本人用汇编语言编写了两个小程
3、序段,可方便地实现此数制变换,即可将从键盘直接输入任一有效的十进制数或十六进制数即可转变为相应的十六进制数或十进制数,需转换的数值应不超过一个字的范围,即十进制数的转换范围是0-65535之间的自然数,十六进制数的转换范围是0-FFFF之间的整数。在实现将十进制数转换为十六进制数的程序段中,数制转换采用的方法是:首先将从键盘输入的0-9之间字符的ASCll值变换为数字后依次乘十循环累加送入AX中,再将AX中十六进制数循环移位,再通过逻辑变换变为相应十六制字符的ASCll值送DL中,再通过调用显示程序将十六制数在屏幕上显示出来。本程序可将从键盘输入的一位十进制数、两位十进制数、三位
4、十进制数、四位十进制数以及五位有效十进制数转换为十六进制数,当输入完五位十进制数时系统会自动实现数制转换,当输入的十进制数超过65535时,系统自动回到DOS状态不进行转换操作。在转换一位、二位、三位、四位十进制数时需按回车键来实现转换。另外,本程序段增加了非法字符屏蔽功能,即当从键盘输入除0-9以外的其它任何字符时系统将不进行数制转换直接回到DOS状态。本程序段增加了显示信息功能,可方便地看到转换前和转换后的结果。在实现十六进制数转换为十进制数的程序段中,数制的转换采用的方法是:将从键盘输入有效十六进制数字符的ASCll值,通过逻辑操作变为十六进制数的有效字符,通过移位操作依次
5、送入AX寄存器中,再把AX中内容看成是5位十进制数,按照从高位到低位的原则,该位的位权依次与对应位1位权比较,计数累加后再与30H相加形成该位的十进制数的ASCll值,再通过调用显示子程序把相应位的十进制数值在屏幕上显示出来。本程序增加了屏蔽功能,即当输入除0-9、A-F或a-f之间的任何字符时,则系统自动退回DOS状态。当需转换的十六进制数不足四位时前面需补0,(如:000f、0012、0345)输入完后系统自实现数制转换,此外,本程序段增加了显示信息功能,可方便地看到转换前和转换后的结果。1、十进制数转十六进制数程序清单如下:datasegmentbuf1db"10jzs:$
6、";显示输入十进制数提示信息buf2db"16jzs:$";显示输出十六进制数显示信息dataendsstacksegmentparastackstackdb10dup(?)stackendscodesegmentassumecs:code,ds:data,ss:stackstart:movax,datamovds,axmovdx,offsetbuf1movah,9int21hmovbx,0movdi,5ppp:movah,1int21hcmpal,13jedisplaycmpal,0jbexitcmpal,9jaexitsubal,30hmovah,0xchgax,bxmovc
7、x,10mulcxjcexitxchgax,bxaddbx,axjcexitdecdijnzpppdisplay:movdl,13movah,2int21hmovdl,10int21hmovdx,offsetbuf2movah,9int21hmovch,4movcl,4rotate:rolbx,clmoval,blandal,0fhaddal,30hcmpal,3ahjbnextaddal,07hnext:movdl,almovah,2int21hdecchjnerotateex