aboutsummaryrefslogtreecommitdiff
path: root/src/exceptions/data.S
diff options
context:
space:
mode:
Diffstat (limited to 'src/exceptions/data.S')
-rw-r--r--src/exceptions/data.S19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/exceptions/data.S b/src/exceptions/data.S
index 656ba96..e3add71 100644
--- a/src/exceptions/data.S
+++ b/src/exceptions/data.S
@@ -9,21 +9,24 @@ data:
ldr r2, =data_msg
bl draw_string
// Output return address
- mov r0, #13
- mov r1, #15
+ mov r0, #80
+ mov r1, #0
mov r2, r4
sub r2, #8
bl draw_hex32
- mov r0, #22
- mov r1, #15
+ // Output the data at the address
+ mov r0, #80
+ mov r1, #1
ldr r2, [r4, #-8]
bl draw_hex32
- mov r0, #32
- mov r1, #15
+ // Output the Program Status
+ mov r0, #80
+ mov r1, #2
mrs r2, spsr
bl draw_hex32
- mov r0, #41
- mov r1, #15
+ // Output the data-fault register
+ mov r0, #80
+ mov r1, #3
mrc p15, 0, r2, c5, c0, 0 //// https://developer.arm.com/documentation/ddi0464/d/System-Control/Register-descriptions/Data-Fault-Status-Register?lang=en
bl draw_hex32
ldmfd sp!, {r0-r12,lr}