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
Vous devez vous connecter pour publier un commentaire.
Tout d'abord
INT
moyens d'interruption et n'a rien à voir avecint
type de données.Chaque
INT
représente une des fonctions de la famille, où, généralement,AH
représente le numéro de fonction.Par exemple :
INT 0x10 est utilisé pour l'écran de manipulation
INT 0x13 est pour le stockage (disque dur et FDD)
Vous pouvez trouver toutes ces fonctions ici: Interruption De Sauter De La Table
Mais ce sont juste BIOS INT, ce qui peut être réécrit par le système d'exploitation lors du démarrage. Par exemple, Windows utilise
INT 0x21
pour la communication entre l'espace utilisateur et l'espace noyau Linux, basée sur l'utilisationINT 0x80
. Voir aussi Table Des Appels Système LinuxDans votre code:
mov ax, 3
) signifie: régler le mode de TextMode 80x25 caractères et 16 couleurs.À l'égard de cette pièce de votre question:
Probablement jamais.
Ces interruptions BIOS étaient principalement utilisés par les applications MS-DOS, et sont essentiellement obsolète aujourd'hui. Ils ne sont pas disponibles au moment de l'exécution pour les applications s'exécutant sur n'importe quel système d'exploitation moderne, de sorte que vous ne sera probablement jamais les utiliser. (Des Exceptions peuvent comprendre, si vous le développement de certains morceaux de logiciels qui fonctionnent très tôt dans le processus de démarrage, comme un chargeur de démarrage, le firmware d'un périphérique matériel, ou si vous développez le BIOS lui-même.)
INT ici se trouve pour l'INTERRUPTION et il a la Fonction de Mode tels que 00,01,02 et ainsi de suite,
INT 10h
est utilisé pour les graphiques et vidéo mode d'initialisation, etINT 16h
est utilisé pour définir le clavier de l'avc.