首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

们,小女子确实不懂求解

2012-06-18 
大虾们,小女子确实不懂求解编写程序:把一个不大于10000的数值转换为ASCLL字符串(如数值1234转换为字符串‘1

大虾们,小女子确实不懂求解
编写程序:把一个不大于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

热点排行