Parameter Passing
All parameters passed to and from the BIOS routines go through
the 8088 registers. The prologue of each BIOS function indicates
the registers used
on
the call and the return.
For
the memory size
example, no parameters are passed. The memory size, in
lK-byte
increments,
is
returned in the
AX
register.
If a BIOS function has several possible operations, the
AH
register
is
used as input to indicate the desired operation.
For
example, to set the time of day, the following code
is
required:
MOV
AU,1 ;function
is
to set time of day.
MOV
CX,UIGU_COUNT
;establish the current time.
MOV
DX,LOW_COUNT
INT
IAU
To
read the time of day:
MOV
AU,O
INT
IAU
;set the time.
;function
is
to
read time of day.
;read the timer.
Generally, the BIOS routines save all registers except for
AX
and
the flags.
Other
registers are modified on return only if they are
returning a value to the caller. The exact register usage
is
in the
prologue
of
each BIOS function.
Int
Address
Name
BIOS
Entry
0
0-3
Divide
by
Zero D
11
1
4-7
Single
Step
D
11
2
8-B
Nonmaskable
NMI
INT
3
C-F
Breakpoint
D
11
-
4 10-13 Overflow D
11
5
14-17
Print
Screen
PRINT
SCREEN
6
18-1B
Reserved
D
11
7
1C-1F
Reserved
Dl"l
8
20-23 Timer
TIMER
INT
9
24-27 Keyboard
KB
INf
A
28-2B
Reserved
D1T
B
2C-2F
Communications
D
11
C
30-33
Communications
D
11
8088
Software
Interrupt
Listing
(Part
1
of
2)
5-4 System BIOS