资源描述:
《微机原理汇编语言10进制转16进制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、汇编语言程序数制转换将输入的一个数据以不同进制形式输出。要求:(a)所有数字从键盘输入;(b)输入数据为任意一个小于十万的十进制数据;(c)将所输入数据以十六进制在屏幕显示输出(即十进制转十六进制)。;multi-segmentexecutablefiletemplate.datasegment;addyourdatahere!pkeydb"pressanykey...$"stringdb'pleaseinputdata:',0dh,0ah,24hshuzidw0bufferdw0;输入数字的暂存位置输入的数字大于10
2、需要缓冲string1db20h,20h,20h,20h,'output:',0dh,0ah,24hendsstacksegmentdw128dup(0)endscodesegmentstart:;setsegmentregisters:movax,datamovds,axmoves,axxorax,axmovbuffer,axleadx,stringmovah,09hint21h;显示请输入数据movdi,offsetshuzimovax,0biaohao1:movah,08hint21h;输入保存在AL中cmpal
3、,0dh;输入是回车,直接结束输入jebiaohao4movah,2movdl,al;显示此数int21hsubal,30hmovah,0pushax;保存刚输入的数字movbx,buffermovax,10mulbx;ax=10*bufferpopbx;将上面保存的ax的值给bxaddax,bx;ax=10*buffer+bx(之前的ax)输入的数字大于10movbuffer,ax;将ax的值给bufmov[di],ax;若输入11,循环第一次输入是1,第二次重输入12jmpbiaohao1;输入大于10的数字的下一
4、位biaohao4:;输入结束leadx,string1movah,09hint21h;显示请输入数据movax,shuzipushaxpushax;保存axxoral,almovcl,4;;;;;将数字移至低八位判断12到15rolax,cl;显示alcmpal,10jngebiaohao5addal,7biaohao5:addal,30hmovah,02movdl,alint21hxoral,almovcl,4;8到11rolax,clcmpal,10jngebiaohao6addal,7biaohao6:adda
5、l,30hmovah,02movdl,alint21hpopax;4dao7xorah,ahmovcl,4rolal,clandal,0Fh;al中高四位清零;xianshicmpal,10jngebiaohao7addal,7biaohao7:addal,30hmovah,02movdl,alint21hpopaxxorah,ahandal,0Fh;al中高四位清零cmpal,10jngebiaohao8addal,7biaohao8:addal,30hmovah,02movdl,alint21h;addyourco
6、dehereleadx,pkeymovah,9int21h;outputstringatds:dx;waitforanykey....movah,1int21hmovax,4c00h;exittooperatingsystem.int21hendsendstart;setentrypointandstoptheassembler.