Advertisement
Guest User

Untitled

a guest
May 21st, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. ; "LAB3"
  2.  
  3. dane SEGMENT
  4. Buf_1 db 4 dup(0)
  5. Lbin dw 0
  6. Buf_2 db 128 dup(0)
  7.  
  8. tekst db 13,10,"$"
  9. dane ENDS
  10.  
  11. rozkazy SEGMENT 'CODE' use16
  12. ASSUME cs:rozkazy, ds:dane
  13. wystartuj:
  14. mov ax, SEG dane
  15. mov ds, ax
  16. mov es, ax
  17. mov si, 0
  18. mov cx, 4 ;liczba obiegow petli
  19.  
  20. ptl1:;wczytanie liczby do AX
  21. mov ah, 1
  22. int 21H ;z klawiatury do AL
  23. cmp al, 13
  24. je nacis_enter
  25. sub al, 30H ;zamiana ascii-> wartosc cyfry
  26. mov bl, al ; przechowywanie kolejnej cyfry
  27. mov bh, 0
  28. mov ax, 6 ; system szostkowy
  29. mul si ;mnozenie, iloczny wpisany do DX AX
  30. add ax, bx ;dodanie aktualnie wczytanej cyfry
  31. mov si, ax ;
  32.  
  33. loop ptl1
  34.  
  35.  
  36. mov dx, offset tekst
  37. mov ah, 09H
  38. int 21H
  39.  
  40.  
  41. nacis_enter:
  42.  
  43. mov [Lbin], si ;przepisanie wyniku konwersji do LBIN
  44.  
  45. mov ax, [Lbin]
  46.  
  47. mov cx, 4
  48. mov bx, 5 ; system piatkowy
  49. mov si, 3
  50.  
  51. p1:
  52. mov dx,0
  53. div bx
  54. add dx, 30H
  55. mov Buf_2[si], dl
  56. dec si
  57.  
  58. loop p1
  59. ;usuwanie zer nieznaczacych z lewej
  60. mov cx, 4
  61. mov si, 0
  62.  
  63. p2:
  64. cmp byte PTR Buf_2[si],30H ; sprawdzenie cyfry 0
  65. jne druk
  66. mov byte PTR Buf_2[si], 20H ; kod spacji w miejsce zera
  67. inc si
  68. loop p2
  69.  
  70. druk:
  71. mov cx, 4
  72. mov si, 0
  73.  
  74. p3:
  75. mov dl, Buf_2[si]
  76. mov ah, 2
  77. int 21H
  78. inc si
  79.  
  80. loop p3
  81.  
  82. mov al,0
  83. mov ah, 4CH
  84. int 21H
  85.  
  86.  
  87. rozkazy ENDS
  88.  
  89. moj_stos SEGMENT stack
  90. dw 128 dup(?)
  91. moj_stos ENDS
  92.  
  93. END wystartuj
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement