| 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!
 
 
 |