Les différences entre: INT 10H , INT 16H, INT 21H

Quelqu'un pourrait-il m'expliquer les différences entre: INT 10H , INT 16H, INT 21H en langage d'assemblage? Quand doit-on utiliser et pour quoi?

Par exemple: dans ce simple code pour l'impression "Bonjour, Monde!"
Pourquoi n'avons-nous utiliser int 10h dans la quatrième ligne?
Pourquoi n'avons-nous utiliser int 16h en ligne avant la dernière?

name "hi-world"
org 100h     
mov ax, 3     
int 10h      
mov ax, 1003h
mov bx, 0
int 10h
mov ax, 0b800h
mov ds, ax
mov [02h], 'H'

mov [04h], 'e'

mov [06h], 'l'

mov [08h], 'l'

mov [0ah], 'o'

mov [0ch], ','

mov [0eh], 'W'

mov [10h], 'o'

mov [12h], 'r'

mov [14h], 'l'

mov [16h], 'd'

mov [18h], '!'


mov cx, 12  ; number of characters.
mov di, 03h ; start from byte after 'h'

c:  mov [di], 11101100b 
add di, 2 ; skip over next ascii code in vga memory.
loop c

; wait for any key press:
mov ah, 0
int 16h

ret
InformationsquelleAutor Mariah | 2015-05-12