Wie macht man ein Taschenrechner(NASM)

Hi

...was für ein aussagekräftiger Post...

Du liest eine Eingabe ein, parst sie und gibst das Ergebnis wieder aus.

Wo genau kennst du dich jetzt nicht aus?
Tastatureingabe? Bildschirmausgabe?
Oder wie man eine Eingabe wie "3*(4+1*2/8)" auseinandernimmt?
 
Wieso kommt das ergebnis hier nicht raus?

Code:
org 0x7c00

mov ax, 0x9000
mov ss, ax
xor sp, sp

mov bx, 500h
add bx, [summand1]
mov [ergebnis], bx
mov si, msg
call print

msg db 'Ergebis:', [ergebnis], 0x0D, 0x0A, 0

print:
lodsb 
or al, al
jz .done
mov ah, 0Eh
int 10h
jmp print

.done:
ret

loop:
jmp loop

summand1 dw 900h
ergebnis dw 0h

times 512 - ($-$$) -2 db 0
dw 0AA55h

Es kommt so eine Fehlermeldung:
nasm -f bin -o rechner.bin rechner.asm
rechner.asm:13: error: expression syntax error
 
mach das so, dann gehts. das warum verstehst du ja eh nicht...

msg db 'Ergebnis:'
ergebnis dw 1h
msg_end db 0x0D,0x0A,0
 
Zuletzt bearbeitet:
Zurück