从字符串值中获取字符?

时间:2015-03-02 05:28:07

标签: assembly arm

我在字符串(内存中)中有一组数字,如下所示:

numbers     DCB "012345"

如何访问第一个数字并将其插入寄存器?

我会加载它,但我不确定如何加载该特定数字。

1 个答案:

答案 0 :(得分:4)

以下是如何将第一个数字加载到寄存器中:

ldrb r0, numbers

r0现在包含值48(ASCII' 0')

要将numbers的地址加载到寄存器中,然后从中加载,请执行以下操作:

ldr r0, =numbers    // r0 now contains the address of numbers
ldrb r1, [r0]

r1现在也包含值48

您可以加载特定的数字(例如第3位数字),如下所示:

ldr r0, =numbers
add r0, #2
ldrb r1, [r0]

或者像这样:

ldr r0, =numbers
ldrb r1, [r0, #2]

或者像这样:

ldr r0, =numbers
mov r1, #2
ldrb r2, [r0, r1]

P.S。如果你想让字符串以空值终止,你需要像这样声明它:

numbers     DCB "012345", 0

或者,取决于您的汇编程序,如下:

numbers:
    .asciz "012345"