检查了一下,没有看到任何已经回答的问题。所以我知道用ASCII字符'9',你可以减去30h得到9h的十六进制值。
现在要得到'A'的ASCII字符的十六进制值,你必须减去32h然后加上1d吗?我的思路对吗?
当从ASCII值中得到一个数字时,可以减去0x30
sub al, 0x30
…或者简单地用0x0F
,如果你确定它是一个数字
and al, 0x0F
当从ASCII值中获取字符时,必须参考ASCII间隔。
sub al, 0x41 ; for upper-case characters (0x41 - 0x5A)
sub al, 0x61 ; for lower-case characters (0x61 - 0x7A)