S
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.