Ein und Ausgabe



  • Hi kurze frage,

    in diesem Programm gibt es die Variablen zahl1 und zahl2. die möchte ich über stdin eingeben und dann beide nacheinander über stdout ausgeben. Das alles mit fasm unter Linux. Frage:

    Warum gibt er mir dann bei beiden Ausgaben den Wert von zahl2 aus?
    Gebe ich die Variablen direkt nach der Eingabe wieder aus funktioniert es!

    format ELF executable 3
    entry start
    
    ;================== code =====================
    segment readable executable
    ;=============================================
    
    start:
    
    ;zahl1 einlesen
    	mov eax,3
            mov ebx,0
    	mov ecx,zahl1
            mov edx,64
    	int 80h
    
    ;zahl2 einlesen
    	mov eax,3
            mov ebx,0
    	mov ecx,zahl2
            mov edx,64
    	int 80h
    
    ;ausgabe zahl1
    	mov ecx,zahl1
    	mov eax,4
    	mov ebx,1
    	mov edx,64
    	int 80h
    
    ;ausgabe zahl2
    	mov ecx,zahl2
    	mov eax,4
    	mov ebx,1
    	mov edx,64
    	int 80h
    
    ;beenden
    	mov eax,1
    	xor ebx,ebx
    	int 80h
    
    ;================== data =====================
    segment readable writeable
    ;=============================================
    zahl1 db ''
    zahl2 db ''
    


  • vielleicht in ecx die adresse der variablen anstatt den wert



  • ;ausgabe zahl1
    	mov eax,4
    	mov ebx,1
    	mov ecx,[zahl1]
    	mov edx,64
    	int 80h
    

    Antwort:

    test.asm [20]:
    mov ecx,[zahl2]
    error: operand sizes do not match.

    geht auch nicht, auch wenn ich das bei der Eingabe mache. Gleiche Fehlermeldung beim compilieren



  • versuch mal anstatt mov ecx,zahl1 -> lea ecx,zahl1



  • leider nicht

    lea ecx,zahl1
    error: invalid operand.
    

    wenn ich lea ecx,[zahl1] eingeben, dann gibt er kein fehle raus. Aber es wird immer noch nur Zahl2 ausgegeben



  • Weiss denn keiner warum sowas nicht geht? Müsste doch für einen guten Assembler Coder ganz einfach sein, so eine ein und Ausgabe oder nicht?



  • Wo kann man den die INT-80h-API nachschlagen?


Anmelden zum Antworten