您好,欢迎访问三七文档
一、实验目的与要求1.熟悉二进制、十进制、十六进制转换规则2.熟悉算数运算指令及移位指令的运用。二、实验逻辑原理图与分析(汇编—流程图)2.1画实验逻辑原理图2.2逻辑原理图分析(所应用单板机内部资源及外围接口芯片的核心分析)通过从键盘输入16进制的数,存入BX中,然后判断BX是否为0,如果BX不为0,则将BX/10余数压栈,如果BX为0,则出栈所有余数,这样输出来的数据就全部是10进制数了。三、程序分析STACKSEGMENTDW100HDUP(?)STACKENDSdatasegmentdatdb0dh,0ah,'$'dataendscodesegmentassumecs:code,ds:data,SS:STACKstart:movax,datamovds,axmovdl,16;movcx,2movbx,0lp:;从键盘输入字符,如果不是回车键或者是换行的话,就讲该字符转换成数字*16,保存到bx中movah,01hint21hcmpal,0dhjzbinarycmpal,3ahjlnextsubal,07hjmpnextnext:subal,30h;字符al减去30H得到相对应的数字cbwxchgax,bxmuldl;数字乘以16得到输入相对应的16进制数xchgax,bxaddbx,axjmplpbinary:leadx,datmovah,09hint21hmovax,bxmovcx,0MOVBX,10JYB1:XORDX,DXDIVBX;将BX除以10,将余数压栈ADDDL,30HPUSHDXinccxcmpax,0jnzJYB1JYB2:POPDX;最后将余数都出栈,结合每次输出的10进制数,得带最终的10进制数MOVAH,2INT21HLOOPJYB2movdl,'D';输出'D'movah,2int21hexit:movah,4chint21hcodeendsendstart四、实验数据和结果分析4.1实验结果数据4.2结果数据分析输入数据是FF,当有数据,当第一个F输入时,转换成对应的数字15然后*16的到的值是240,然后当输入第二个F时,转换成对应的数字是15,与第一个数累加结果是255,存入BX,然后BX不断的除10,将余数压栈,直到BX为0时,余数全部出栈,第一次输出的值是2第二次输出的值是5,第三次输出的值也是5,所以全部的值是255也就是转换之后的结果。五、实验问题分析、思考题与小结(实验过程中的问题分析、产生的原因以及解决方法;思考题;总结)在本次实验过程中,我掌握了对进制转换的一些算法,同时对汇编语言的理解,分支指令更加深刻了,也学会了如何用汇编语言去操作栈,如何去出栈还是入栈。六、其它得分(百分制)
本文标题:汇编进制转换实验
链接地址:https://www.777doc.com/doc-7170609 .html