📄 error.asm
字号:
sseg segment stack
db 128 dup (0)
sseg ends
dseg segment para 'errormes'
err1 db 'panic:function number invalid!','$'
err2 db 'panic:no file!','$'
err3 db 'panic:no path!','$'
err4 db 'panic:too many file!','$'
err5 db 'panic:access denied!','$'
err6 db 'panic:invalid file hander!','$'
err7 db 'panic:illegal BIOS command!','$'
err8 db 'panic:address mark not found!','$'
err9 db 'panic:write protect error!','$'
err10 db 'panic:sector not found!','$'
err11 db 'panic:media has been changed!','$'
err12 db 'panic:DMA overrun!','$'
err13 db 'panic:DMA boundary error!','$'
err14 db 'panic:media not found!','$'
err15 db 'panic:CRC error!','$'
err16 db 'panic:NEC error!','$'
err17 db 'panic:seek error!','$'
err18 db 'panic:time out occurred!','$'
err19 db 'panic:error magic number on file system!','$'
err20 db 'panic:unknown error type!','$'
err21 db 'panic:batch terminal signature [#] not found!','$'
err22 db 'panic:configuration file is NULL!','$'
err23 db 'panic:syntax error in configuration!','$'
err24 db 'panic:no master boot record!','$'
err25 db 'panic:loading stuix failure!','$'
err26 db 'panic:A20# can not be opened!','$'
err27 db 'panic:invalid a.out header!','$'
err28 db 'panic:invalid kernel image!','$'
erra1 dw offset err1
erra2 dw offset err2
erra3 dw offset err3
erra4 dw offset err4
erra5 dw offset err5
erra6 dw offset err6
erra7 dw offset err7
erra8 dw offset err8
erra9 dw offset err9
erra10 dw offset err10
erra11 dw offset err24
erra12 dw offset err11
erra13 dw offset err25
erra14 dw offset err12
erra15 dw offset err13
erra16 dw offset err26
erra17 dw offset err27
erra18 dw offset err14
erra19 dw offset err28
dw 2 dup (0)
erra22 dw offset err15
dw 15 dup (0)
erra38 dw offset err16
dw 31 dup (0)
erra70 dw offset err17
dw 29 dup (0)
erra100 dw offset err21
dw 4 dup (0)
erra105 dw offset err22
erra106 dw offset err23
dw 18 dup (0)
erra125 dw offset err19
dw 8 dup (0)
erra134 dw offset err18
dseg ends
cseg segment para public 'code'
public panic
extrn dispstr:near
assume cs:cseg,ds:dseg,ss:sseg
panic proc near
push ds
push es
push bp
mov bp,sp
mov ax,dseg ; load private segment
mov ds,ax
mov ax,8[bp] ; fetch error code
cmp ax,1
jae continue ; if error code valid
mov dx,offset err20 ; this is a unknown error type
push dx
call dispstr
pop cx
jmp hang ; we can't continue
continue:
cmp ax,87h ; this is the highest error number we can handle
jb continue2
mov dx,offset err20
push dx
call dispstr
pop cx
jmp hang
continue2:
mov bx,2
mul bx ; 2*ax
mov bx,offset erra1
add bx,ax
dec bx
dec bx
mov dx,[bx] ; load appropriate error code address
push dx
call dispstr
pop cx
hang: ; this procedure never return
jmp hang
panic endp
cseg ends
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -