在ARM Assembly中将char打印为int ASCII值

时间:2018-12-06 15:48:49

标签: assembly arm printf

当前正在做一些ARM组装工作,我认为int转换有问题。基本上,我在r1中存储了一些字符,可以使用%c打印来验证。但是,如果我想查看其十进制ASCII值,则在打印进行检查时会遇到一长串数字。

ldr r1, [r2]       //r2 is start address of char array in C containing alphabet
ldr r0, =fmt_str  
bl printf          //prints "the letter is a"
ldr r0, =fmt_strd
bl printf          //prints "the letter is 1634934881"

fmt_str:   .asciz "the letter is %c \n"
fmt_strd:  .asciz "the letter is %d \n"

基于我看到的here的其他一些问题,我认为这是一个类型转换问题,其中printf无法将我的r1值正确转换为整数(我尝试了%c,u ,d,x,i和f)。但是,我不知如何解决此问题而又不实现自己的按位更改r2中的值的方法。有分支功能可以将该值正确转换为整数吗?

编辑:无论第一次调用printf都应该提及这种情况。

0 个答案:

没有答案