kvisc/ka/sys/dumprf.k

124 lines
2.1 KiB
Plaintext

; The OS/K Team licenses this file to you under the MIT license.
; See the LICENSE file in the project root for more information.
dumprf:
push ebp
mov ebp, esp
push nx0, nx1
mov nx0, ax0
mov nx1, esp
call RFS.LoadReg, nx0, $cr1
push eax
call RFS.LoadReg, nx0, $cr0
push eax
call RFS.LoadReg, nx0, $eip
push eax
push nx0
call printf, .dmp1
call RFS.LoadReg, nx0, $srp
push eax
call RFS.LoadReg, nx0, $trp
push eax
push zero # fixme
call RFS.LoadReg, nx0, $ebp
push eax
call RFS.LoadReg, nx0, $esp
push eax
call printf, .dmp2
call RFS.LoadReg, nx0, $ax5
push eax
call RFS.LoadReg, nx0, $ax4
push eax
call RFS.LoadReg, nx0, $ax3
push eax
call RFS.LoadReg, nx0, $ax2
push eax
call RFS.LoadReg, nx0, $ax1
push eax
call RFS.LoadReg, nx0, $ax0
push eax
call printf, .dmp3
call RFS.LoadReg, nx0, $edi
push eax
call RFS.LoadReg, nx0, $esi
push eax
call RFS.LoadReg, nx0, $edx
push eax
call RFS.LoadReg, nx0, $ecx
push eax
call RFS.LoadReg, nx0, $ebx
push eax
call RFS.LoadReg, nx0, $eax
push eax
call printf, .dmp4
call RFS.LoadReg, nx0, $nx5
push eax
call RFS.LoadReg, nx0, $nx4
push eax
call RFS.LoadReg, nx0, $nx3
push eax
call RFS.LoadReg, nx0, $nx2
push eax
call RFS.LoadReg, nx0, $nx1
push eax
call RFS.LoadReg, nx0, $nx0
push eax
call printf, .dmp5
call RFS.LoadReg, nx0, $nx8
push eax
call RFS.LoadReg, nx0, $nx7
push eax
call RFS.LoadReg, nx0, $nx6
push eax
call printf, .dmp6
mov esp, nx1
pop nx1, nx0
leave
ret
.dmp1 = "Environ #1:\nfrm=0d%d eip=0x%x\ncr0=0x%x cr1=0x%x\n\n"
.dmp2 = "Environ #2:\nesp=0x%x ebp=0x%x ind=0d%d\ngrp=0x%x trp=0x%x srp=0x%x\n\n"
.dmp3 = "Argument:\nax0=0x%x ax1=0x%x ax2=0x%x\nax3=0x%x ax4=0x%x ax5=0x%x\n\n"
.dmp4 = "Volatile:\neax=0x%x ebx=0x%x ecx=0x%x\nrdx=0x%x esi=0x%x edi=0x%x\n\n"
.dmp5 = "Persistent:\nnx0=0x%x nx1=0x%x nx2=0x%x\nr15=0x%x nx4=0x%x nx5=0x%x\n"
.dmp6 = "nx6=0x%x nx7=0x%x nx8=0x%x\n"