Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;Zadanie
  2. ;Napisac program w asemblerze, ktory przeksztalci liczbe binarna
  3. ;znajdujaca sie w rejestrze AL na 3-cyfrowa liczbe dziesietna.
  4. ;Pierwsza instrukcja programu powinna wpisywac do rejestru AL
  5. ;dowolna liczbe, np. MOV AL, 234
  6. ;
  7. ;Zamiana na postac dziesietna realizowana jest przez kolejne
  8. ;dzielenia przez 10 - reszty z tych dzielen stanowia poszukiwane
  9. ;cyfry dziesietne. Przyklad:
  10. ; 234 / 10 = 23 reszta 4
  11. ; 23 / 10 = 2 reszta 3
  12. ; 2 / 10 = 0 reszta 2
  13. ;Powyzsze dzielenia wykonywane sa na liczbach binarnych za pomoca
  14. ;instrukcji DIV.
  15. ;
  16. ;Wskazowka: do wykonania programu wystarczy znajomosc instrukcji:
  17. ;mov, div, add, prosze nie uzywac petli.
  18.  
  19. dane segment
  20. ;tu nalezy umiescic dane dla programu
  21. dane ends
  22.  
  23. kod segment
  24. assume cs:kod, ds: dane
  25.  
  26. start:
  27. mov ax, seg dane ;zaladowanie rejestru segmentowego ds
  28. mov ds,ax
  29.  
  30.  
  31.  
  32. ;tu powinna sie znalezc tresc programu (rozwiazanie):
  33.  
  34.  
  35.  
  36. mov ax, 234 ; liczba do konwersji
  37. mov dl, 10 ; bedziemy dzielic przez 10
  38.  
  39. div dl
  40.  
  41.         add ah, 30H ; zamieniamy liczbe jednocyfrowa w rejestrze ax na jej kod ASCII
  42.         mov dl, ah      ; w dl umieszczam znak do wyswietlenia  
  43.         mov ah, 2       ; wybieram funkcje systemowa numer 2, dzieki ktorej wyswietle znak w dl
  44.         int 21H     ; wykonuje funkcje systemowa
  45.  
  46. mov ah, 0
  47. div dl
  48.  
  49.         add ah, 30H ; zamieniamy liczbe jednocyfrowa w rejestrze ax na jej kod ASCII
  50.         mov dl, ah      ; w dl umieszczam znak do wyswietlenia  
  51.         mov ah, 2       ; wybieram funkcje systemowa numer 2, dzieki ktorej wyswietle znak w dl
  52.         int 21H     ; wykonuje funkcje systemowa
  53.        
  54. ;zakonczenie wykonywania programu nastepuje po nacisnieciu dowolnego klawisza
  55. mov ah, 1
  56. int 21H
  57.  
  58. ;te dwie linijki uruchamiaja procedure zakonczenia programu
  59. mov ax, 4C00H
  60. int 21H
  61.  
  62. kod ends
  63.  
  64. end start
  65.  
  66. ;Należy przesłać plik *.asm.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement