# Wie macht man ein Taschenrechner(NASM)



## TheComputaNerd (17. Februar 2011)

also mit eingabe, .....


----------



## sheel (17. Februar 2011)

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?


----------



## TheComputaNerd (18. Februar 2011)

Bildschirmausgabe des Ergebnisses


----------



## TheComputaNerd (18. Februar 2011)

Wieso kommt das ergebnis hier nicht raus?


```
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


----------



## stephsto (21. Februar 2011)

mach das so, dann gehts. das warum verstehst du ja eh nicht...

msg db 'Ergebnis:'
ergebnis dw 1h
msg_end  db 0x0D,0x0A,0


----------

