>> Technologie Électronique >  >> Audio pour la maison >> Amplificateurs et préamplis

Obtenir entrée utilisateur en assembleur 8086 pour opérations addition

Introduction gestion entrée 8086 assembleur

En programmant en assembleur 8086, obtenir entrée utilisateur pour opérations arithmétiques comme addition nécessite interruptions DOS. Approche courante utilise interruption 21h fonction 01h pour lire caractère unique entrée standard, puis convertir ASCII en valeur numérique.

Programme addition complet exemple

Programme suivant montre comment demander deux chiffres simples, les additionner, afficher résultat :

.MODEL SMALL
.STACK 100H
.DATA
MSG DB 'Enter two numbers: $'
CRLF DB 0DH, 0AH, '$'
.CODE
MAIN PROC
; Initialiser segment données
MOV AX, @DATA
MOV DS, AX
; Afficher prompt
MOV AH, 9
LEA DX, MSG
INT 21H
; Obtenir premier nombre
MOV AH, 1
INT 21H
SUB AL, 30H ; Convertir ASCII décimal
MOV BL, AL ; Stocker dans BL
; Obtenir second nombre
MOV AH, 1
INT 21H
SUB AL, 30H ; Convertir ASCII décimal
MOV BH, AL ; Stocker dans BH
; Effectuer addition
ADD BL, BH ; BL = BL + BH
MOV AL, BL ; Déplacer résultat vers AL pour affichage
; Afficher résultat
MOV AH, 2
MOV DL, AL
INT 21H
; Nouvelle ligne
MOV AH, 9
LEA DX, CRLF
INT 21H
; Quitter programme
MOV AH, 4CH
INT 21H
MAIN ENDP
END MAIN

Concepts clés expliqués

Fonctions Interruption DOS 21h

  • Fonction 01h : Lit caractère entrée standard avec écho
  • Fonction 02h : Écrit caractère sortie standard
  • Fonction 09h : Affiche chaîne terminée par $
  • Fonction 4Ch : Termine programme retour DOS

Conversion ASCII

Caractères numériques '0'-'9' ont valeurs ASCII 30h-39h. Soustraire 30h convertit code ASCII en valeur numérique réelle (0-9). Conversion essentielle avant opérations arithmétiques.

Utilisation registres

Programme utilise registres BL et BH stocker deux nombres entrée, puis les additionne instruction ADD. Résultat reste dans BL, déplacé vers AL pour affichage via registre DL.

Limitations et extensions

Exemple basique gère seulement chiffres simples (0-9). Pour entrée multi-chiffres, il faut implémenter boucle lisant caractères jusqu'à Entrée, construisant nombre en multipliant valeur accumulée par 10 et ajoutant chaque nouveau chiffre.

Amplificateurs et préamplis