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