Advertisement
Guest User

Untitled

a guest
May 20th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. dane SEGMENT ;segment danych
  2. Buf_1 db 4 dup(0)
  3. LBin dw 0
  4. Buf_2 db 128 dup(0)
  5. dane ENDS
  6.  
  7. rozkazy SEGMENT 'CODE' use16 ;segment zawierający rozkazy programu
  8. ASSUME cs:rozkazy, ds:dane
  9. wystartuj:
  10. mov ax, SEG dane
  11. mov ds, ax
  12. ; wczytywanie liczby do AX, zakonczenie wczytywania po Enter
  13. mov si, 0 ;poczatkowa wartosc wyniku konwersji w SI
  14. p1: mov ah, 1 ;wczytanie znaku w kodzie ASCII
  15. int 21H ;z klawiatury do AL
  16. cmp al, 13
  17. je nacis_enter ;skok gdy nacisnieto klawisz Enter
  18. sub al, 30H ;zamiana kodu ASCII na wartosc cyfry
  19. mov bl, al ;przechowanie kolejnej cyfry w AL
  20. mov bh, 0 ;zerowanie rejestru BH
  21. mov ax, 8 ;mnoznik
  22. mul si ;mnozenie dotychczas uzyskanego wyniku przez
  23. ;8 iloczyn zostaje wpisany do rejestrów DX:AX
  24. add ax, bx ;dodanie aktualnie wczytanej cyfry
  25. mov si, ax ;przesłanie wyniku obliczenia do rejestru SI
  26. jmp p1 ;
  27.  
  28. nacis_enter:
  29. mov ax, si ;przepisanie wyniku konwersji do rejestru AX
  30. mov LBin, ax
  31. mov cx, 0 ;licznik cyfr
  32. mov bx, 9 ;dzielnik 9
  33. p2: mov dx, 0 ;zerowanie starszej czesci dzielnej
  34. div bx ;dzielenie przez 9 – iloraz w AX, reszta w DX
  35. add dx, 30H ;zamiana reszty na kod ASCII
  36. push dx ;zapisanie cyfry na stosie
  37. inc cx ;inkrementacja licznika cyfr
  38. cmp ax, 0 ;porównanie uzyskanego ilorazu
  39. jnz p2 ;skok gdy iloraz jest rózny od zera
  40. p3: pop dx ;pobranie kodu ASCII kolejnej cyfry
  41. mov ah, 2
  42. int 21H ;wyswietlenie cyfry na ekranie
  43. loop p3 ; sterowanie petla wyswietlania
  44. mov al, 0
  45. mov ah, 4CH
  46. int 21H
  47.  
  48. rozkazy ENDS
  49.  
  50. nasz_stos SEGMENT stack ;segment stosu
  51. dw 128 dup (?)
  52. nasz_stos ENDS
  53.  
  54. END wystartuj ;wykonanie programu zacznie się od rozkazu
  55. ;opatrzonego etykietą wystartuj
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement