Bahasa Assembler :
Interrupt
|
Interrupts can be seen as a
number of functions. These functions make the programming much easier,
instead of writing a code to print a character you can simply call the
interrupt and it will do everything for you. There are also interrupt
functions that work with disk drive and other hardware. We call such
functions software interrupts.
Interrupts are also
triggered by different hardware, these are called hardware
interrupts. Currently we are interested in software interrupts
only.
To make a software interrupt there is an
INT instruction, it has very simple syntax:
INT value Where value can be a
number between 0 to 255 (or 0 to 0FFh), generally we will use
hexadecimal numbers. You may think that there are only 256 functions,
but that is not correct. Each interrupt may have sub-functions. To
specify a sub-function AH register should be set before calling
interrupt. Each interrupt may have up to 256 sub-functions (so we get
256 * 256 = 65536 functions). In general AH register
is used, but sometimes other registers maybe in use. Generally other
registers are used to pass parameters and data to sub-function.
The
following example uses INT 10h sub-function 0Eh to type a
"Hello!" message. This functions displays a character on the screen,
advancing the cursor and scrolling the screen as necessary.
#MAKE_COM# ; instruct compiler to make COM file.
ORG 100h
; The sub-function that we are using
; does not modify the AH register on
; return, so we may set it only once.
MOV AH, 0Eh ; select sub-function.
; INT 10h / 0Eh sub-function
; receives an ASCII code of the
; character that will be printed
; in AL register.
MOV AL, 'H' ; ASCII code: 72
INT 10h ; print it!
MOV AL, 'e' ; ASCII code: 101
INT 10h ; print it!
MOV AL, 'l' ; ASCII code: 108
INT 10h ; print it!
MOV AL, 'l' ; ASCII code: 108
INT 10h ; print it!
MOV AL, 'o' ; ASCII code: 111
INT 10h ; print it!
MOV AL, '!' ; ASCII code: 33
INT 10h ; print it!
RET ; returns to operating system.
| Copy & paste the above
program to Emu8086 source code editor, and press [Compile and
Emulate] button. Run it!
|