Compare commits
No commits in common. "9f8f207e4b9cfbcbd78cc705d8c3ca9e3ff3ce03" and "57c787f87dc7897f4f8dd50b700cff1f47db157e" have entirely different histories.
9f8f207e4b
...
57c787f87d
35
lab1_v2.S
35
lab1_v2.S
|
@ -8,48 +8,16 @@
|
||||||
bkpt 0xAB
|
bkpt 0xAB
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
#define A 0x0321
|
|
||||||
#define B 0x7005
|
|
||||||
#define C 0x0050
|
|
||||||
|
|
||||||
.section .text
|
.section .text
|
||||||
|
|
||||||
lab1_v2:
|
lab1_v2:
|
||||||
push.n {lr}
|
push.n {lr}
|
||||||
|
|
||||||
bl calculate_formula_v2
|
mov r0, #2073
|
||||||
bl int_to_str
|
bl int_to_str
|
||||||
|
|
||||||
pop.n {pc}
|
pop.n {pc}
|
||||||
|
|
||||||
calculate_formula_v2:
|
|
||||||
ldr r0, =A
|
|
||||||
ldr r1, =B
|
|
||||||
ldr r2, =C
|
|
||||||
|
|
||||||
cmp r0, r1
|
|
||||||
bgt gret
|
|
||||||
blt less
|
|
||||||
|
|
||||||
same: @ default
|
|
||||||
add r2, r0, r2, lsr #3
|
|
||||||
add r0, r2, r1
|
|
||||||
b finish
|
|
||||||
|
|
||||||
gret:
|
|
||||||
rsb r0, r0, #192
|
|
||||||
sub r0, r0, r1
|
|
||||||
add r0, r2, r0, lsl #2
|
|
||||||
b finish
|
|
||||||
|
|
||||||
less:
|
|
||||||
orr r1, r1, r2
|
|
||||||
mul r0, r0, r1
|
|
||||||
|
|
||||||
finish:
|
|
||||||
mov r10, r0
|
|
||||||
mov pc, lr
|
|
||||||
|
|
||||||
int_to_str:
|
int_to_str:
|
||||||
mov r3, sp
|
mov r3, sp
|
||||||
|
|
||||||
|
@ -77,6 +45,7 @@ int_to_str:
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
bne proceed_with_conversion
|
bne proceed_with_conversion
|
||||||
|
|
||||||
|
finish:
|
||||||
BKPT_WRITE r3
|
BKPT_WRITE r3
|
||||||
|
|
||||||
mov pc, lr
|
mov pc, lr
|
||||||
|
|
21
start.S
21
start.S
|
@ -19,9 +19,9 @@ __hard_reset__:
|
||||||
|
|
||||||
bl bootload_v2
|
bl bootload_v2
|
||||||
|
|
||||||
|
|
||||||
readloop:
|
readloop:
|
||||||
ldr.n r0, [r7, #8]
|
ldr.n r0, [r7, #8]
|
||||||
wfi
|
|
||||||
b.n readloop
|
b.n readloop
|
||||||
|
|
||||||
load_systick_timer:
|
load_systick_timer:
|
||||||
|
@ -53,25 +53,6 @@ bootload_v2:
|
||||||
|
|
||||||
ldr.n r3, =__ram_start
|
ldr.n r3, =__ram_start
|
||||||
add r3, r3, #1
|
add r3, r3, #1
|
||||||
|
|
||||||
push {r3}
|
|
||||||
blx r3
|
|
||||||
pop {r3}
|
|
||||||
|
|
||||||
@ patch A
|
|
||||||
ldr r0, =0x707ff64d @ 0xDF7F
|
|
||||||
str r0, [r3, #0xb]
|
|
||||||
|
|
||||||
push {r3}
|
|
||||||
blx r3
|
|
||||||
pop {r3}
|
|
||||||
|
|
||||||
@ patch A and B
|
|
||||||
ldr r0, =0x000af240 @ 0x000A
|
|
||||||
str r0, [r3, #0xb]
|
|
||||||
ldr r0, =0x010af240 @ 0x000A
|
|
||||||
str r0, [r3, #0xf]
|
|
||||||
|
|
||||||
blx r3
|
blx r3
|
||||||
|
|
||||||
pop {pc}
|
pop {pc}
|
||||||
|
|
Loading…
Reference in New Issue