从字符串值中获取字符?
Get a character from a string value?
我有一组字符串中的数字(在内存中)如下:
numbers DCB "012345"
如何访问第一个数字并将其插入寄存器?
我会正确加载它,但我不确定如何加载该特定数字。
以下是将第一个数字加载到寄存器中的方法:
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。如果您希望字符串以 null 结尾,您需要这样声明它:
numbers DCB "012345", 0
或者,根据您的汇编程序,像这样:
numbers:
.asciz "012345"
我有一组字符串中的数字(在内存中)如下:
numbers DCB "012345"
如何访问第一个数字并将其插入寄存器?
我会正确加载它,但我不确定如何加载该特定数字。
以下是将第一个数字加载到寄存器中的方法:
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。如果您希望字符串以 null 结尾,您需要这样声明它:
numbers DCB "012345", 0
或者,根据您的汇编程序,像这样:
numbers:
.asciz "012345"