Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Zadanie
- ;Napisac program w asemblerze, ktory przeksztalci liczbe binarna
- ;znajdujaca sie w rejestrze AL na 3-cyfrowa liczbe dziesietna.
- ;Pierwsza instrukcja programu powinna wpisywac do rejestru AL
- ;dowolna liczbe, np. MOV AL, 234
- ;
- ;Zamiana na postac dziesietna realizowana jest przez kolejne
- ;dzielenia przez 10 - reszty z tych dzielen stanowia poszukiwane
- ;cyfry dziesietne. Przyklad:
- ; 234 / 10 = 23 reszta 4
- ; 23 / 10 = 2 reszta 3
- ; 2 / 10 = 0 reszta 2
- ;Powyzsze dzielenia wykonywane sa na liczbach binarnych za pomoca
- ;instrukcji DIV.
- ;
- ;Wskazowka: do wykonania programu wystarczy znajomosc instrukcji:
- ;mov, div, add, prosze nie uzywac petli.
- dane segment
- ;tu nalezy umiescic dane dla programu
- dane ends
- kod segment
- assume cs:kod, ds: dane
- start:
- mov ax, seg dane ;zaladowanie rejestru segmentowego ds
- mov ds,ax
- ;tu powinna sie znalezc tresc programu (rozwiazanie):
- mov ax, 234 ; liczba do konwersji
- mov dl, 10 ; bedziemy dzielic przez 10
- div dl
- add ah, 30H ; zamieniamy liczbe jednocyfrowa w rejestrze ax na jej kod ASCII
- mov dl, ah ; w dl umieszczam znak do wyswietlenia
- mov ah, 2 ; wybieram funkcje systemowa numer 2, dzieki ktorej wyswietle znak w dl
- int 21H ; wykonuje funkcje systemowa
- mov ah, 0
- div dl
- add ah, 30H ; zamieniamy liczbe jednocyfrowa w rejestrze ax na jej kod ASCII
- mov dl, ah ; w dl umieszczam znak do wyswietlenia
- mov ah, 2 ; wybieram funkcje systemowa numer 2, dzieki ktorej wyswietle znak w dl
- int 21H ; wykonuje funkcje systemowa
- ;zakonczenie wykonywania programu nastepuje po nacisnieciu dowolnego klawisza
- mov ah, 1
- int 21H
- ;te dwie linijki uruchamiaja procedure zakonczenia programu
- mov ax, 4C00H
- int 21H
- kod ends
- end start
- ;Należy przesłać plik *.asm.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement