微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AT&T asm ascii整数转换

如何解决AT&T asm ascii整数转换

假设我们使用movzbq将数字“ 98”存储在%r11中,将第一个数字“ 9”存储在%r12中 ascii。 我从ascii中减去$ 48,得到整数“ 9”并将其存储在%r12中。 我将%r12添加到%r13以在%r13中获得值“ 9”或“ 0x9” 然后,我将%r13乘以10,得到的值“ 90”存储为“ 0x5a” 现在,%r13包含“ 0x5a”。我做不到...

movq %r13,%rdi
call putchar.  

因为这会打印字符“ Z”(ASCII表中的值为90)。怎样使它打印数字“ 90”呢?

subq $48,%r12      # Subtract $48 to convert ascii to integer.
add %r12,%r13      # add 9 to %r13
imulq $10,%r13     # multiply by 10
add %r12,%r13      # add to return value
movq %r13,%rdi 
call putchar

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。