精灵王
- 注册日期2010-12-08
- 发帖数640
- QQ
- 火币1103枚
- 粉丝120
- 关注75
|
阅读:3946回复:0
经典汇编语言教程:10.3 数据转换程序举例
楼主#
更多
发布于:2013-01-28 14:23
| | | | 例10.7是用“用16位除10”的方法从低向高依次得到每位的数值,但若待输出的数据是32位,用10除之后,其商很可能会超过16位,所以,不能简单地引用例10.7的方法来输出32位二进制。 假设:32位二进制数Z为A×2 16+B,其中:A和B都是16位二进制数。 用10去除A,得:A=A 1×10+A 2,于是, (1) 假设A 2×2 16+B被10除后所得的商和余数分别为B 1和C 1(B 1≥0,C 1≥0)。 利用式(1)和“A 2<10”,我们不难看出:Z的个位就是C 1和B 1<2 16。 令Z 1=A 1×2 16+B 1,显然,Z 1就是Z/10所得到的商。 对于Z 1,再利用式(1)得到商Z 2和C 2。……,重复上面的步骤,直到所得商为0为止。 下面的例10.9就是利用上面方法来输出32位二进制数值。 例10.9编写一个子程序,该子程序能把32位二进制变量的数值以十进制形式输出出来。若该数值为负数,则需要输出负号"-",否则,不输出符号。
| | | | |
|