Распечатать char как значение int ASCII в ARM Assembly - PullRequest
0 голосов
/ 06 декабря 2018

В настоящее время я работаю над сборкой 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"

На основании некоторых других вопросов, которые я видел здесь , я считаю, что это проблема преобразования типов, когда printf не может правильно преобразовать мое значение r1 в целое число (я пробовал% c, u, d, x, i и f).Тем не менее, я в растерянности из-за того, как решить эту проблему, не реализуя свою собственную функцию для побитового изменения значения в r2.Есть ли функция, которую я могу разветвлять для правильного приведения этого значения к целому числу?

Редактировать: следует упомянуть, что это происходит независимо от первого вызова printf.

...