pcs/sw_int.asm

46 lines
1.1 KiB
NASM
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

DGROUP group data
data segment word public 'DATA'
assume DS:DGROUP
data ends
PGROUP group prog
prog segment byte public 'PROG'
assume CS:PGROUP
public isw_int,fsw_int,tsw_int,ssw_int
SWI_ARGS struc
OLDBP DW ?
RET_ADDR DW ?
INT_NUM DW ?
AX_ARG DW ?
BX_ARG DW ?
CX_ARG DW ?
DX_ARG DW ?
SWI_ARGS ends
sw_int proc near
isw_int:
fsw_int:
tsw_int:
ssw_int:
push bp ; Save Base Pointer
mov bp,sp ; Update with Stack Pointer
mov ax,[bp].INT_NUM ; Get interrupt number
mov cs:int_no,al ; Move to location in code
mov ax,[bp].AX_ARG ; Load ax register with 1st arg
mov bx,[bp].BX_ARG ; Load bx register with 2nd arg
mov cx,[bp].CX_ARG ; Load cx register with 3rd arg
mov dx,[bp].DX_ARG ; Load dx register with 4th arg
db 0CDh ; Byte code for INT instruction
int_no db 070h ; Byte code for interrupt number
pop bp
ret ; and go back to the caller.
sw_int endp
prog ends
end