44 lines
521 B
ArmAsm
44 lines
521 B
ArmAsm
/*
|
|
A bunch of functions I could have written in C (or not), but decided not to,
|
|
Mostly so I could get more experience in assembler.
|
|
*/
|
|
|
|
|
|
.section .text
|
|
|
|
.global _enable_paging_asm
|
|
|
|
.global _hang_asm
|
|
.global _halt_asm
|
|
|
|
.global _sti_asm
|
|
.global _cli_asm
|
|
|
|
|
|
_enable_paging_asm:
|
|
push %eax
|
|
|
|
mov %cr0, %eax
|
|
or $0x80000000, %eax
|
|
mov %eax, %cr0
|
|
|
|
pop %eax
|
|
|
|
ret
|
|
|
|
_hang_asm:
|
|
hlt
|
|
jmp _hang_asm
|
|
|
|
_halt_asm:
|
|
nop
|
|
ret
|
|
|
|
_sti_asm:
|
|
sti
|
|
ret
|
|
|
|
_cli_asm:
|
|
cli
|
|
ret
|