cmp al,'0'
je true
cmp al,'1'
je true
cmp al,'2'
je true
cmp al,'3'
je true
cmp al,'4'
je true
cmp al,'5'
je true
cmp al,'6'
je true
cmp al,'7'
je true
cmp al,'8'
je true
cmp al,'9'
je true
jne error 我感兴趣的是如何使用区间和ASCII数字编码来减少cmp的数量。谢谢。
发布于 2015-11-09 12:29:08
ASCII码是数字。编写'0‘时,汇编程序将其转换为30h = 48d。正如您在这个ASCII表中看到的那样,字母'0‘到'9’由连续数字30H.39h表示。因此,您可以反向检查:如果al低于'0‘或al在'9’以上,则可以转到error。您只需要两次比较:
cmp al,'0'
jb error ; jump if below
cmp al,'9'
ja error ; jump if above
true:https://stackoverflow.com/questions/33608156
复制相似问题