Fakultät rekursiv berechnen



  • Hallo zusammen,

    folgendes:

    org 100h
    
     start:		mov ax,4
    		mov bx,1
    		push ax
    		call fak
    		pop ax
    		imul bx,ax	; ergebnis steht in bx
    	        mov ah,4Ch
    		int 21h
    
    	fak: 	push bp
    		mov bp,sp
    		mov ax,[bp+4]		
    		cmp ax,1
    		je ende
    
    		dec ax			
    		push ax
    		call fak
    		pop ax	
    
    	ende:	imul bx,ax					
    		mov sp,bp
    		pop bp	
    		ret
    

    In ax übergebe ich Parameter, bx enthält das Ergebnis beim roll-back.
    Das Ergebnis stimmt zwar, doch bin ich mir nicht sicher, ob so eine Rekursion in Asm abläuft.

    Kommentare?

    Danke 🙂



  • curry-king schrieb:

    Kommentare?

    Der Code sieht ok aus, hab's aber nicht ausprobiert, weil 16-Bit DOS, uralt usw. Warum MS-DOS?
    ... und mal nebenbei, warum ist Dein Code so schief eingerückt? Absicht oder einfach nur falscher Editor? Empfehlung: Nutze vi (gvim z.B.), egal, was andere über diesen Editor sagen, nutze ihn einfach...



  • Hallo,

    ich wollte einfach den Einstieg in x86 Assembler finden und hatte da ein bisschen im NASM Manual gelesen, aber eben nur über 16-bit.
    Als Editor verwende ich NodePad++ unter Win. Unter Linux gedit oder vim.

    Danke für Deine Antwort!


Anmelden zum Antworten