dec, funktioniert nicht, wieso???



  • tag'chen,
    ich habe hier folgenden code zum laufen gebracht

    ;==============================================================================
    ; MOVSB, LODSB, STOSB
    ;==============================================================================
    
    ; MOVSB = SI -> DI
    ; LODSB = SI -> AL
    ; STOSB = AL -> DI
    
    IDEAL
    MODEL SMALL
    STACK 100
    
    DATASEG
    
    	myname db 'UPCJ', 10, 13, '$'
    
    CODESEG
    Start:
    
    	STARTUPCODE
    
    	mov cx, 4
    	mov si, OFFSET myname
    	mov di, si
    
    	schleife:
    
    		lodsb
    		dec al
    		stosb
    
    	loop schleife
    
    	mov ah, 09h
    	mov dx, OFFSET myname
    	int 21h	
    
    	mov ah, 01h
    	int 21h
    
    	EXITCODE
    
    END Start
    
    ;=== EXIT =====================================================================
    

    aber irgendwie wird al nich dekrementiert, wieso?

    Gruß Tobi.



  • T0bi schrieb:

    aber irgendwie wird al nich dekrementiert, wieso?

    schleife:
    
    		lodsb     ;  Quellbyte nach von DS:SI nach al
    		dec al    ;  al wird dekremiert
    		stosb     ;  al nach ES:DI
    
    	loop schleife
    

    Ich vermute (benutze selbst immer MASM), dass dein STARTUPCODE das Segmentregister ES nicht mit dem Wert von DS belegt. Probier mal das

    Start:
            mov    dx, @DATA
            mov    ds, dx
            mov    es, dx  
    ...
    

    mfg



  • ich benutze tasm.


Anmelden zum Antworten