mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-07 03:04:19 -05:00
95 lines
1.5 KiB
ArmAsm
95 lines
1.5 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
arm_func_start STD_CompareNString
|
|
STD_CompareNString: ; 0x020DE03C
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0x4
|
|
cmp r2, #0x0
|
|
beq _020DE080
|
|
cmp r2, #0x0
|
|
mov lr, #0x0
|
|
ble _020DE080
|
|
_020DE058:
|
|
ldrb r12, [r0, lr]
|
|
ldrb r3, [r1, lr]
|
|
cmp r12, r3
|
|
addne sp, sp, #0x4
|
|
subne r0, r12, r3
|
|
ldmneia sp!, {lr}
|
|
bxne lr
|
|
add lr, lr, #0x1
|
|
cmp lr, r2
|
|
blt _020DE058
|
|
_020DE080:
|
|
mov r0, #0x0
|
|
add sp, sp, #0x4
|
|
ldmia sp!, {lr}
|
|
bx lr
|
|
|
|
arm_func_start STD_CompareString
|
|
STD_CompareString: ; 0x020DE090
|
|
b _020DE09C
|
|
_020DE094:
|
|
add r0, r0, #0x1
|
|
add r1, r1, #0x1
|
|
_020DE09C:
|
|
ldrsb r2, [r1, #0x0]
|
|
ldrsb r3, [r0, #0x0]
|
|
cmp r3, r2
|
|
bne _020DE0B4
|
|
cmp r3, #0x0
|
|
bne _020DE094
|
|
_020DE0B4:
|
|
sub r0, r3, r2
|
|
bx lr
|
|
|
|
arm_func_start STD_GetStringLength
|
|
STD_GetStringLength: ; 0x020DE0BC
|
|
ldrsb r1, [r0, #0x0]
|
|
mov r2, #0x0
|
|
cmp r1, #0x0
|
|
beq _020DE0DC
|
|
_020DE0CC:
|
|
add r2, r2, #0x1
|
|
ldrsb r1, [r0, r2]
|
|
cmp r1, #0x0
|
|
bne _020DE0CC
|
|
_020DE0DC:
|
|
mov r0, r2
|
|
bx lr
|
|
|
|
arm_func_start STD_CopyLString
|
|
STD_CopyLString: ; 0x020DE0E4
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0x4
|
|
sub r12, r2, #0x1
|
|
cmp r12, #0x0
|
|
mov lr, #0x0
|
|
ble _020DE120
|
|
_020DE0FC:
|
|
ldrsb r3, [r1, #0x0]
|
|
strb r3, [r0, lr]
|
|
ldrsb r3, [r1, #0x0]
|
|
cmp r3, #0x0
|
|
beq _020DE120
|
|
add lr, lr, #0x1
|
|
cmp lr, r12
|
|
add r1, r1, #0x1
|
|
blt _020DE0FC
|
|
_020DE120:
|
|
sub r3, r2, #0x1
|
|
cmp lr, r3
|
|
blt _020DE138
|
|
cmp r2, #0x0
|
|
movne r2, #0x0
|
|
strneb r2, [r0, lr]
|
|
_020DE138:
|
|
mov r0, r1
|
|
bl STD_GetStringLength
|
|
add sp, sp, #0x4
|
|
ldmia sp!, {lr}
|
|
bx lr
|