Probleme mit [] und zahlen ausgeben



  • Mein erstes Problem ist folgendes:

    section .txt
    global 	_start
    
    _start:
    	mov	edx, len ;erste Nachricht
    	mov	ecx, msg ;ageben
    	mov	ebx, 1
    	mov	eax, 4
    	int	0x80
    
    	mov	edx, len2 ;zweite Nachricht
    	mov	ecx, msg2 ;ageben
    	mov	ebx, 1
    	mov	eax, 4
    	int	0x80
    
    	mov	edx, len3 ;dritte Nachricht
    	mov	ecx, msg3 ;ageben
    	mov	ebx, 1
    	mov	eax, 4
    	int	0x80
    
    ;nun die rechnung
    	mov	eax, [zahl1]  ;mit [ ] gibts immer Speicherzugriffsfehler
    	mov	edx, zahl2    ; ohne nicht allerdings
                                  ;allerdings rechnet er dann mit der adresse
                                  ; oder ?
    	add	eax, edx
    	push	eax
    	mov	edx, ergb
    
    ;und ausgeben
    
    	mov	edx, len4
    	mov 	ecx, ergb
    	mov	ebx, 1
    	mov	eax, 4
    	int	0x80
    ;und beenden
    	mov	ebx, 0
    	mov	eax, 1
    	int	0x80
    
    section .data
    msg  	 db 'Zahl 1 = 20', 0x0A
    len  	equ $ - msg
    msg2 	 db 'Zahl 2 = 30', 0x0A
    len2 	equ $ - msg2
    msg3 	 db '(Zahl 1 + zahl 2)/2 = ', 0x0A
    len3 	equ $ - msg3
    
    teiler	dw 2h
    zahl1	dw 20h
    zahl2	dw 30h
    ergb	dw 0h
    len4	equ $ - ergb
    

    Ich geb zu ich bin noch totaler anfänger. (hab vorher nur in C++ programmiert)
    Mein assembler ist nasmund ich arbeite unter linux.
    Nun wie man sieht rechne ich 20 + 30. Die devision hab ich erstmal
    weggelassen. Nun meine frage: Was mache ich falsch??
    Das mit den zhalen ist erstmal nebensächlich. Hauptsächlich würde
    ich gerne ersteres problem lösen.


Anmelden zum Antworten