⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 error.asm

📁 一个朋友写的操作系统源码
💻 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:require parameter missing!','$'

     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
            dw 0
     erra14 dw offset err12
     erra15 dw offset err13
            dw 0
            dw 0
     erra18 dw offset err14
            dw  3 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

     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 + -