Niedawno zacząłem się bawić assemblerem. Korzystam z asmloadera od Gynvaela Napisałem sobie coś co przypomina kalkulator. Oto kod:
http://pastebin.com/07ZtKKby
ale mam problem otóż muszę podawać kody ascii znaków(+,-,*,/) aby otrzymać prawidłowy wynik. To zrobiłem tylko prowizorycznie byle działało. Ja jednak chce zrobić tak aby użytkownik podawał bezpośrednio znak do bufora klawiatury
Dla przykładu:
Jeśli bym wrzucił do rejestru eax
wartość znaku i później użył printfa([ebx + 3 * 4]) to znak normalnie się wyświetla na ekranie. Problem tkwi z kodem znaku. Jak zdebugowałem ten programik to bezpośrednio po instrukcji
mov eax, [ebp-8] ; ebp - 8 to znak
sprawdziłem zawartość rejestru eax i okazało się ,że np zamiast kodu znaku ascii wyświetlały się jakieś wartości na minusie(dla literki "a" jest to wartość -159). Właśnie dlatego nie potrafię porównać instrukcją cmp rejestru eax z odpowiednim kodem ascii znaków.
Byłbym bardzo wdzięczny za jakąś konkretną odpowiedź.