Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .global crash
- crash:
- PUSH {R12}
- LDR R12, =ZSpare
- LDR R11, [R12, #150]
- POP {R12}
- LDR R10, =#0xE0001030
- MOV R9, #48
- STR R9, [R10]
- MOV R9, #120
- STR R9, [R10]
- LSR R9, R8, #4
- AND R9, #0b00001111
- CMP R9, #10
- BLGE letter
- BLLT num
- B crash2
- crash2:
- LSR R9, R8, #0
- AND R9, #0b00001111
- CMP R9, #10
- BLGE letter
- BLLT num
- B crash3
- crash3:
- ;@ Print the invalid intruction and its location in HEX
- ;@ Should probably loop back to execute or something
- MOV R9, #32
- STR R9, [R10]
- MOV R9, #64
- STR R9, [R10]
- MOV R9, #32
- STR R9, [R10]
- MOV R9, #48
- STR R9, [R10]
- MOV R9, #120
- STR R9, [R10]
- ;@LDR R11, =#0xffffffff;@overide ZPC value for testing
- LSR R9, R11, #28
- CMP R9, #10
- BLGE letter
- BLLT num
- B crash4
- crash4:
- LSR R9, R11, #24
- AND R9, #0b00001111
- CMP R9, #10
- BLGE letter
- BLLT num
- B crash5
- crash5:
- LSR R9, R11, #20
- AND R9, #0b00001111
- CMP R9, #10
- BLGE letter
- BLLT num
- B crash6
- crash6:
- LSR R9, R11, #16
- AND R9, #0b00001111
- CMP R9, #10
- BLGE letter
- BLLT num
- B crash7
- crash7:
- LSR R9, R11, #12
- AND R9, #0b00001111
- CMP R9, #10
- BLGE letter
- BLLT num
- B crash8
- crash8:
- LSR R9, R11, #8
- AND R9, #0b00001111
- CMP R9, #10
- BLGE letter
- BLLT num
- B crash9
- crash9:
- LSR R9, R11, #4
- AND R9, #0b00001111
- CMP R9, #10
- BLGE letter
- BLLT num
- B crash10
- crash10:
- LSR R9, R11, #0
- AND R9, #0b00001111
- CMP R9, #10
- BLGE letter
- BLLT num
- LDR R9, = ZSpare
- LDR R9, [R9, #100]
- LDR R10, =#0xE0001030
- MOV R11, #10
- STR R11, [R10]
- MOV R11, #79
- STR R11, [R10]
- MOV R11, #80
- STR R11, [R10]
- MOV R11, #69
- STR R11, [R10]
- MOV R11, #82
- STR R11, [R10]
- MOV R11, #65
- STR R11, [R10]
- MOV R11, #78
- STR R11, [R10]
- MOV R11, #68
- STR R11, [R10]
- MOV R11, #83
- STR R11, [R10]
- MOV R11, #58
- STR R11, [R10]
- SUBS R9, #1
- BMI done
- MOV R8, R0
- MOV R7, #12
- BL printOpcode
- SUBS R9, #1
- BMI done
- MOV R8, R1
- MOV R7, #12
- BL printOpcode
- SUBS R9, #1
- BMI done
- MOV R8, R2
- MOV R7, #12
- BL printOpcode
- SUBS R9, #1
- BMI done
- MOV R8, R3
- MOV R7, #12
- BL printOpcode
- SUBS R9, #1
- BMI done
- printOpcode:
- PUSH {R14}
- MOV R11, #10
- STR R11, [R10]
- MOV R11, #13
- STR R11, [R10]
- MOV R11, #48
- STR R11, [R10]
- MOV R11, #120
- STR R11, [R10]
- printOpcode1:
- LSR R11, R8, R7
- AND R11, #0b00001111
- CMP R11, #10
- BLGE letter_op
- BLLT num_op
- SUBS R7, #4
- POPMI {R15}
- B printOpcode1
- B done
- letter_op:
- PUSH {R14}
- ADD R11, #87
- STR R11, [R10]
- POP {R15}
- num_op:
- PUSH {R14}
- ADD R11, #48
- STR R11, [R10]
- POP {R15}
- letter:
- PUSH {R14}
- ADD R9, #87
- STR R9, [R10]
- POP {R15}
- num:
- PUSH {R14}
- ADD R9, #48
- STR R9, [R10]
- POP {R15}
- done:
- b done
Add Comment
Please, Sign In to add comment