Fakultät in Assembler

Ich möchte zu finden eine Fakultät einer Zahl, die kleiner ist als 8, mit diesem code. aber das funktioniert nicht kann jemand mir helfen?
Dies war mein zu Hause arbeiten. ich habe versucht, aber es ist Druck gleichen Charakter wieder und agian..

.model small_  
.stack_

.data_  
no db 1h_ ;  
counter db 1_  
string1 db "Please Enter the No. to calculate factorial (0~8): ","$"  
string2 db "Factorial is: ","$"  

.code  
main proc  
mov ax,@data  
mov ds,ax  
mov dx,offset string1  
mov ah,09h  
int 21h  
mov cl,1  
loop1:  
cmp counter,3  
ja End1  
mov ah,01h  
int 21h  
sub al,48  
inc counter  
mov no,al  
cmp no,8  
ja loop1  

Factorial:  
cmp no,cl  
je display  
mul al,cl  
inc cl  
jmp factorial  

Display:  
mov ax,@data  
mov ds,ax  
mov dx,offset string2  
mov ah,09  
int 21h  
mov dl,al  
add dl,48  
mov ah,02h  
int 21h  
End1:  
mov ah,4ch  
int  21h  
main endp  
**_End main _**
  • zeigen Sie uns Ihre 8 Zeilen code
  • Wer hat gesagt, es war nur 8 Zeilen? 😉
  • Tut mir Leid, aber das tun wir nicht, Whitespace.
  • Come on guys, geben Sie ihm ein paar Minuten, um die Bearbeitung seiner Frage und fügen Sie den code vor dem Aufruf in den Sarkasmus brigade 🙂
  • Er hatte sechs bisher und zählen.
  • Sorry, ich vergaß, um code hinzuzufügen.
  • Welches Zeichen gedruckt wird immer und immer wieder? Können Sie geben Sie die Nummer ganz gut und es bricht nur beim drucken das Ergebnis?
  • ja, es funktioniert gut, wenn ich geben Sie die Buchstaben ein..problem ist mit Faktoren-label oder Druck-label. die ich bin nicht in der Lage herauszufinden.
  • Charakter ist etwas, wie Pi.

InformationsquelleAutor Mujahid | 2013-10-01
Schreibe einen Kommentar