1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
- .define _signal
- .extern _signal, cerror
- NSIG=16
- _signal: mov bx,sp
- mov cx,4(bx)
- mov bx,2(bx)
- cmp bx,NSIG
- jae 1f
- shl bx,1
- mov dx,dvect(bx)
- cmp cx,1
- jbe 2f
- mov dvect(bx),cx
- mov bx,sp
- mov 4(bx),entry
- mov bx,dx
- int 0xb0
- mov dx,bx
- mov bx,sp
- mov 4(bx),cx
- jb 3f
- jmp 4f
- 2:
- int 0xb0
- jb 3f
- mov dvect(bx),cx
- 4:
- cmp ax,1
- jbe 5f
- mov ax,dx
- 5:
- ret
- 1:
- mov ax,22
- 3:
- jmp cerror
- entry:
- push bx
- push cx
- push dx
- push di
- push si
- mov bx,sp
- mov di,10(bx)
- mov 10(bx),ax
- push di
- shl di,1
- call dvect(di)
- add sp,2
- pop si
- pop di
- pop dx
- pop cx
- pop bx
- pop ax
- popf
- ret
- .sect .bss
- dvect: .space 2*NSIG
- .sect .text
|