【发布时间】:2016-01-09 10:24:01
【问题描述】:
我正在编写用于添加 n 个十六进制数字的代码。 这是我没有得到的代码部分
packnum:
xor bl,bl
mov ecx,02 ; For two digit numbers
mov esi,numascii
up1:
rol bl,04 ; Multiply by 10
mov al,[esi]
cmp al,39h
jbe skip
sub al,07h
skip:
sub al,30h
add bl,al
inc esi
loop up1
ret
为什么将 al 与 39h 进行比较? 如果不相等,为什么要从 al 中减去 07h?这是ASCII到十六进制的转换吗?
【问题讨论】:
标签: assembly