《Inter汇编语言程序设计》7.6 ASCII和未压缩算术指令(AAA指令的一点理解)

                     这一节我个人觉得比较难学(可能我基础差了些),一直接触的指令都是处理二进制数据的,突然接触了个按十进制数串的形式进行运算的,确实很盲目,本例就是这本书的ASCII_add.asm的例子,作者讲的我感觉我不够详细,理解着困难,所以以初学者的理解发这个文章,有什么理解不正确的地方,欢迎看到的指正。

下面直接分析程序:

TITLE	ASCII  Addition		(ASCII_add.asm)

; 这是一个直接以“ASCII码”的存储方式进行相加运算的例子。也就是说我们用于计算的数(输入的数)是ASCII码形式的,
; cup无需将其转换成未压缩形式,直接以ASCII码格式进行数据的处理。
INCLUDE  Irvine32.inc

DECIMAL_OFFSET = 5
.data
decimal_one  BYTE  "100123456789765"	; 这是本例子用于计算的数,每个数字占用1字节(8个bit)
decimal_two  BYTE  "900402076502015"	; 这是本例子用于计算的数,每个数字占用1字节(8个bit)
sum  BYTE  (SIZEOF decimal_one + 1) DUP (0),0	
; SIZEOF操作符求得decimal_one的字节长度,这是最后调用库函数以字符串的形式输出,
; 末尾的0表示字符串结束标志,
; + 1是因为我们用于计算的数相加后可能会产生“十进制进位”。

.code
main  PROC
		mov  esi,SIZEOF decimal_one - 1	 ; 设置esi指向decimal_one字符数组的最后一个元素
		mov
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值