Asteer Opublikowano 1 Grudnia 2009 Zgłoś Opublikowano 1 Grudnia 2009 (edytowane) Cześć Chciałbym prosic kogos kto zna podstawy Asemblera do sprawdzenia programu, ktory napisalem. Ma on za zadanie pobrac od uzytkownika 2 liczby oraz znak dzialania (+ lub -) a nastepnie korzystajac z odwrotnej notacji polskiej wyswietlic wynik na ekranie. Kod programu ktory udało mi sie napisac wyglada nasepujaco: .model small .stack 100h .data t1 db 'Podaj 2 liczby oraz znak dzialania (+ lub -)? :$' crlf db 0dh,0ah,'$' .code mov ax,@data mov ds,ax mov dx,offset t1 mov ah,09h int 21h mov cx,0 pobieranie: mov ah,01h int 21h push ax add cx,1 cmp cx,2 je dzialanie jmp pobieranie dzialanie: mov ah,01h int 21h cmp al,2Bh je dodawanie jmp odejmowanie dodawanie: pop dx pop bx add dx,bx mov ah,02h int 21h odejmowanie: pop dx pop bx sub bx,dx mov dx,bx mov ah,02h int 21h koniec: mov ah,4ch int 21h end Program działa z tym ze jako wynik dzialania nie wyswietla sumy podanych liczb a roznego rodzaju znaczki oraz litery :unsure: Jestem calkowicie poczatkujacy jezeli chodzi o asemblera dlatego prosze o wyrozumiałosc. Prosilbym o naprowadzenie mnie na etap w ktorym robie blad, za co z gory dziekuje :wink: Edytowane 1 Grudnia 2009 przez Asteer Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
mr__y Opublikowano 1 Grudnia 2009 Zgłoś Opublikowano 1 Grudnia 2009 Z assemblerem niewiele miałem wspólnego, ale jak na mój gust musisz zamienić liczbę a odpowiedni ciąg znaków. Funkcja 09h służy do wyświetlania stringów,a Ty próbujesz wyświetlić liczbę, Każdemu znakowi odpowiada jakiś kod(liczba) - te dziwne znaczki, które Ci się wyświetlają to znaki, których kod odpowiada obliczonej sumie. Ogólnie poczytaj sobie o ASCII. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Asteer Opublikowano 1 Grudnia 2009 Zgłoś Opublikowano 1 Grudnia 2009 Z assemblerem niewiele miałem wspólnego, ale jak na mój gust musisz zamienić liczbę a odpowiedni ciąg znaków. Funkcja 09h służy do wyświetlania stringów,a Ty próbujesz wyświetlić liczbę, Każdemu znakowi odpowiada jakiś kod(liczba) - te dziwne znaczki, które Ci się wyświetlają to znaki, których kod odpowiada obliczonej sumie. Ogólnie poczytaj sobie o ASCII. Doszedlem juz do tego :D Ale mimo wszystko dzieki za checi :wink: Teraz zastanawiam sie w jak zmodyfikowac program zeby kazde obliczenie wyswietlalo sie w nowej lini :rolleyes: Zapetlilem sobie progra, ktory po wykonaniu dzialania pyta uzytkownika czy chce jeszcze cos liczyc, jesli akceptuje, program przechodzi do kolejnego działania z tym ze wyswietla je w tej samej lini w ktorej skonczyl.. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
mr__y Opublikowano 2 Grudnia 2009 Zgłoś Opublikowano 2 Grudnia 2009 Wyświetl znak końca linii - znajdziesz w tabeli ASCII :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...