📄 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:bmp format error!','$'
err8 db 'panic:width should be 320!','$'
err9 db 'panic:height should be 200!','$'
err10 db 'panic:not a 256 color!','$'
err11 db 'panic:bmp file is too complex','$'
err20 db 'panic:unknow error detected!','$'
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 err11
dw 8 dup (0)
erra20 dw offset err20
dseg ends
cseg segment para public 'code'
public panic
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
mov ah,9
int 21h
mov ah,4ch
int 21h ; we can't continue
continue:
cmp ax,87h ; this is the highest error number we can handle
jb continue2
mov dx,offset err20
mov ah,9
int 21h
mov ah,4ch
int 21h
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
mov ah,9
int 21h
mov ah,4ch
int 21h ; this procedure never return
panic endp
cseg ends
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -