La plupart des instructions machines utilisent les registres. DOS ayant tourné principalement avec des processeurs Intel 8086, beaucoup de concepts qui se rapportent à eux se rapporte aussi au DOS. C'est pourquoi la page Wikipédia de ces derniers possède un schéma plutôt bien fait des registres utilisés dans le DOS.
Si je reprends rapidement les registres les plus importants :
AX (Primary Accumulator)16bits | |
AH | AL |
BX (Base Accumulator)16bits | |
BH | BL |
CX (Counter Accumulator)16bits | |
CH | CL |
DX (Accumulator, other functions)16bits | |
DH | DL |
SI (Source Index)16bits | |
DI (Destination Index)16bits | |
BP (Base Pointer)16bits | |
SP (Stack Pointer)16bits |
Chaque registre est de taille 16bits (soit deux octets) néanmoins les registres AX, BX, CX et DX ont une certaine spécificité. En effet chacun de ces registres est décomposable en deux sous-registres : l'octet de poids fort (H) et l'octet de poids faible (L).
Ainsi si le registre AX contient 0xAD01, AH contient 0xAD et AL contient 0x01. Il est bien important de considérer que modifier la valeur de AL (ou AH) modifie de facto la valeur de AX.
1 Commentaire