编写程序:把一个不大于10000的数值转换为ASCLL字符串(如数值1234转换为字符串‘1234’);
假设数据段定义如下:
Data segment
Tab10p dw 1000, 100, 10, 1
Str db 4 dup(‘’) ;存放输出字符串
Num dw 1234 ;存放输入的数值
data ends
------解决方案--------------------------------------------------------
+30h 即可转换,如果不是十六进制的话
------解决方案--------------------------------------------------------
转换成十进制表示的字符串吗?
说一下程序思路吧,懒得写程序了,以前写过代码.
把一个数值转换成十进制表示的字符串:
过程是: 目标数值整除10,得到余数,暂时保存,把商继续整除10,取得余数,直到商为0,运算结束. 把所有的余数按倒序排列起来,每个余数分别+30H,排列起来就是目标数值了.
假设 12 ,举个简单的例子,容易理解.
12/10 ( 12 整除 10 ) ,得到商1 余数2 ,把余数2 暂时保存起来,可以放到栈中.继续把商 1 整除 10,直到商为0,除法运算结束. 1/10 得到商0 ,余数 1 ,一共进行了两次除法运算.这样就得到了两个余数. 把所有余数分别+30H就能得到ASCII码,注意要把余数倒过来. 余数1+30H,得到31H 余数2+30H得到32H. 得到的目标数值就是 3132H