Je rencontre des problèmes lors de la sortie de la valeur calculée à chaque étape du calcul de la séquence Fibonacci, elle affiche le caractère ASCII respectif de la valeur calculée comme ☺ ☻ ♥ ♣ et le nombre de fois exécution est dépend de l'utilisateur mais il est limité à 47:Sortie du caractère ASCII des nombres dans l'assembly 8086
org 100h
ask_for_input db " Please enter a number[1-47]: ","$"
inputNumber DB 0
conv DB 10D
newL DB 0AH,"$"
ask-again:
LEA DX, newL
MOV AH,9H
int 21H
; Ask for user input
LEA DX, ask_For_input
mov AH,9H
int 21H
; Gets user input
; First digit
MOV ah, 01H
int 21h
SUB AL, 30H
MUL conv
MOV inputNumber, AL
; Second Digit
MOV AH, 01H
int 21h
SUB AL, 30H
add inputNumber, AL
; Checks if number is above 47D
CMP inputNumber, 2FH
JNLE ask-again
; Checks if number is below 00D
CMP inputNumber, 00H
JLE ask-again
; Squence loop Counter
MOV CH, 00H
MOV CL, inputNumber
; Starting calculation
prev DB 01D
current DB 1D
Begin:
space DB " ","$"
LEA DX, space
MOV AH,9H
int 21H
; Print Current Number
LEA DX, current,"$"
mov AH,09H
int 21H
; Finds next number
MOV BL, prev
add current, BL
; Advances prev
MOV BL, current
SUB BL, prev
MOV prev, BL
Loop Begin
Vous devriez certainement pas placer des données dans le chemin d'exécution de code. Mettez-les après tout le code. En ce qui concerne l'impression, 'int 21h/ah = 09h' est utilisé pour imprimer des chaînes. Vous devrez donc convertir votre numéro en chaîne. Il y a beaucoup de questions sur la façon de le faire déjà, alors faites des recherches. – Michael
Et qu'est-ce que "LEA DX, actuel," $ "' censé faire? Est-ce que cela s'assemble même? – Michael
@Michael Je suis vraiment nouveau à l'assemblage et ce que j'ai vu le livre de texte que le tuteur vient de donner sur la production de chaînes à la console – samix73