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.