(2006-08-06) rescue-bootcd
This commit is contained in:
111
extra/syslinux-3.09/regdump.inc
Normal file
111
extra/syslinux-3.09/regdump.inc
Normal file
@@ -0,0 +1,111 @@
|
||||
;; $Id: regdump.inc,v 1.2 2004/12/14 22:46:25 hpa Exp $
|
||||
;; -----------------------------------------------------------------------
|
||||
;;
|
||||
;; Copyright 2003 H. Peter Anvin - All Rights Reserved
|
||||
;;
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, Inc., 53 Temple Place Ste 330,
|
||||
;; Boston MA 02111-1307, USA; either version 2 of the License, or
|
||||
;; (at your option) any later version; incorporated herein by reference.
|
||||
;;
|
||||
;; -----------------------------------------------------------------------
|
||||
|
||||
;;
|
||||
;; regdump.inc
|
||||
;;
|
||||
;; Dump as much as possible of the register state; for debugging
|
||||
;;
|
||||
|
||||
disk_dumpregs:
|
||||
mov ah,02h
|
||||
call dumpregs
|
||||
int 13h
|
||||
ret
|
||||
|
||||
dumpregs:
|
||||
push gs
|
||||
push fs
|
||||
push es
|
||||
push ds
|
||||
push ss
|
||||
push cs
|
||||
pushad
|
||||
pushfd
|
||||
|
||||
push cs
|
||||
pop ds
|
||||
|
||||
mov bp,sp
|
||||
mov di,regnames
|
||||
|
||||
mov cx,9 ; 9 32-bit registers
|
||||
.reg8:
|
||||
mov si,[di]
|
||||
inc di
|
||||
inc di
|
||||
call cwritestr
|
||||
mov eax,[bp]
|
||||
add bp,4
|
||||
call writehex8
|
||||
loop .reg8
|
||||
|
||||
mov cx,7 ; 6 16-bit registers
|
||||
.reg4:
|
||||
mov si,[di]
|
||||
inc di
|
||||
inc di
|
||||
call cwritestr
|
||||
mov eax,[bp]
|
||||
inc bp
|
||||
inc bp
|
||||
call writehex4
|
||||
loop .reg4
|
||||
|
||||
call crlf
|
||||
|
||||
popfd
|
||||
popad
|
||||
add sp,4 ; Skip CS, SS
|
||||
pop ds
|
||||
pop es
|
||||
pop fs
|
||||
pop gs
|
||||
ret
|
||||
|
||||
regnames:
|
||||
dw .eflags
|
||||
dw .edi
|
||||
dw .esi
|
||||
dw .ebp
|
||||
dw .esp
|
||||
dw .ebx
|
||||
dw .edx
|
||||
dw .ecx
|
||||
dw .eax
|
||||
dw .cs
|
||||
dw .ss
|
||||
dw .ds
|
||||
dw .es
|
||||
dw .fs
|
||||
dw .gs
|
||||
dw .ip
|
||||
|
||||
.eflags db 'EFL: ', 0
|
||||
.edi db 13,10,'EDI: ', 0
|
||||
.esi db ' ESI: ', 0
|
||||
.ebp db ' EBP: ', 0
|
||||
.esp db ' ESP: ', 0
|
||||
.ebx db 13,10,'EBX: ', 0
|
||||
.edx db ' EDX: ', 0
|
||||
.ecx db ' ECX: ', 0
|
||||
.eax db ' EAX: ', 0
|
||||
.cs db 13,10,'CS: ',0
|
||||
.ss db ' SS: ',0
|
||||
.ds db ' DS: ',0
|
||||
.es db ' ES: ',0
|
||||
.fs db ' FS: ',0
|
||||
.gs db ' GS: ',0
|
||||
.ip db ' IP: ',0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user