帮助理解 ARM 汇编示例代码 - 循环、设置标志和代码助记符

逆向工程 部件 手臂
2021-06-14 05:28:44

这是示例代码:

_start:
LDR r0, =n
LDR r0, [r0]
LDR r1, =array1
MOV r2, #0
LDR r4, =array2
loop:
LDR r3, [r1], #4
CMP r3, #58
BGT a_point
CMP r3, #47
BLT a_point
SUB r3, r3, #0x30
STR r3, [r4], #4

a_point:
    subs r0, r0, #1
    BGT loop

stop:
    b stop

.Data
n: .word 6
array1: .word 0x30, 0xFFFFFFF5, 0x37, 0x4b, 0x18, 0x40
array2: .word 0x01, 0x0, 0x0, 0x0, 0x0, 0x0

我无法理解循环的工作原理,它的作用,特别是分支指令如何与 -lt 和 -gt 后缀配对工作。这个简单程序的目的是什么?在此先感谢您的帮助。

0个回答
没有发现任何回复~