Assembly Language Program - Part II: 1. BIOS Interrupt
Assembly Language Program - Part II: 1. BIOS Interrupt
1. BIOS Interrupt
2) Set cursor
Function code: 02H
Interrupt used: INT 10H
E.g.:
MOV AH,02H ; set function (cursor)
MOV BH,00 ; set page number 0 (current page)
MOV DH, 08 ; set row 8
MOV DL,15 ; set column 15
INT 10H ; call interrupt service
3) Clear screen
Function code: 02H
Interrupt used: INT 10H
E.g.:
MOV AX,0600H ; AH = 06 = set function (clear screen)
; AL= 00 = line # to scroll /
; 00 (full screen)
MOV BH,71H ; attribute (color)set page number 0
; 7 = white background &
; 1 = blue foreground
MOV CX,0000H ; set start row:column
; = upper left row:column
MOV DX,174FH ; set start row:column
; = lower right row:column
INT 10H ; call interrupt service
2. I/O Interrupts
1) Input byte
Function code: 01H
Interrupt used: INT 21H
E.g.:
MOV AH,01H ; request input char
; input char to be stored in AL
INT 21H ; call interrupt service
1
BACS1024 Introduction to Computer Systems
E.g.:
MOV AH,07H ; request input char
; input char to be stored in AL
INT 21H ; call interrupt service
3) Output byte
Function code: 02H
Interrupt used: INT 21H
E.g.:
MOV AH,02H ; request display char
MOV DL,61H ; char to display 61h = ASCII “a”
INT 21H ; call interrupt service
5) Output string
Function code: 09H
Interrupt used: INT 21H
E.g.:
.DATA
Msg DB “Hello world!$” ; define data item / variable
.CODE
MOV AH,09H ; request display string
LEA DX,Msg ; load effective / start address
INT 21H ; call interrupt service
6) Input string
Function code: 0AH
Interrupt used: INT 21H
E.g.:
.DATA
ARRAY LABEL BYTE ; name
MAX DB 20 ; max length
ACT DB ? ; actual length
ARRAYDATA DB 20 DUP (‘’) ; data area
.CODE
MOV AH,0AH ; request input string
LEA DX,ARRAY ; load effective address
INT 21H ; call interrupt service