Advertisement
Guest User

Untitled

a guest
Nov 28th, 2015
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.24 KB | None | 0 0
  1. .model small
  2. .stack 512
  3.  
  4. .data
  5. napisa db "Podaj liczbe decymalnie.", 0Dh, 0Ah, '$'
  6. wynik db "Jej wartosc w sytemie hex to: $"
  7. liczba1 dw 0
  8. liczba2 dw 0
  9. .code
  10. .startup
  11. mov ax, @data
  12. mov ds, ax
  13.  
  14. main proc
  15.  
  16. call newline
  17. mov dx, offset napisa ;wypisz napis1
  18. mov ah, 09h
  19. int 21h
  20.  
  21. call pobierzLiczbe ; pobierz liczbe
  22. mov [liczba1], ax
  23. ;wstaw znak nowej linii
  24. call NEWLINE
  25.  
  26. call KONWERTUJ
  27.  
  28. mov ah, 4ch
  29. mov al, 0
  30. int 21h
  31. main endp
  32.  
  33. ;procedura pobierania liczby
  34. pobierzLiczbe proc
  35.  
  36. starting:
  37. call NEWLINE
  38. mov cx, 5 ;ilosc iteracji petli
  39. xor bx, bx ;wyzerowanie bx
  40.  
  41. WCZYTAJ:
  42. mov ah, 0
  43. int 16h
  44.  
  45. cmp al, 13 ;czy jest enterem
  46. je Ent
  47.  
  48. cmp al, '0'
  49. jb WCZYTAJ
  50.  
  51. cmp al, '9'
  52. jbe dobraLiczba
  53. jmp WCZYTAJ
  54.  
  55. dobraLiczba:
  56. mov dl, al ;wypisz liczbe
  57. mov ah, 2
  58. int 21h
  59. sub al, '0'
  60. xor ah, ah
  61.  
  62. przypisz:
  63. push ax
  64. mov ax, bx
  65. mov bx, 10
  66. mul bx
  67. pop bx
  68. jc starting
  69.  
  70. add ax, bx
  71. jc starting
  72.  
  73. mov bx, ax
  74.  
  75. jmp loopend
  76.  
  77. Ent:
  78. mov cx, 1 ;zeby skonczyc petle
  79.  
  80. loopend:
  81. loop Wczytaj
  82. mov ax, bx
  83. ret
  84. pobierzLiczbe endp
  85.  
  86. ;procedura wstawiania nowej linii
  87. NEWLINE proc
  88.  
  89. push dx
  90. push ax
  91.  
  92. mov dx,13
  93. mov ah,2
  94. int 21h
  95. mov dx,10
  96. mov ah,2
  97. int 21h
  98.  
  99. pop ax
  100. pop dx
  101. ret
  102. NEWLINE endp
  103. spr proc
  104. cmp ax,9
  105. ja literka ;jesli literka ziom
  106. jbe liczba
  107. literka:
  108. add al,55
  109. jmp koniectego
  110. liczba:
  111. add al,48
  112.  
  113.  
  114. koniectego:
  115. mov ah,0eh
  116. int 10h
  117. ret
  118. spr endp
  119. ;konwertowanie
  120. KONWERTUJ proc
  121.  
  122. push ax
  123. mov dx, offset wynik
  124. mov ah, 09h
  125. int 21h
  126. pop ax
  127. ; ax - mamy liczbe
  128. mov cl,12
  129. push ax
  130. shr ax,cl
  131. call spr
  132.  
  133. pop ax
  134. push ax
  135. mov cl,4
  136. shl ax,cl
  137. mov cl,12
  138. shr ax,cl
  139. call spr
  140.  
  141. pop ax
  142. push ax
  143. mov cl,8
  144. shl ax,cl
  145. mov cl,12
  146. shr ax,cl
  147. call spr
  148.  
  149. pop ax
  150.  
  151. mov cl,12
  152. shl ax,cl
  153. mov cl,12
  154. shr ax,cl
  155. call spr
  156.  
  157. mov ah,10h
  158. int 16h
  159.  
  160.  
  161. ret
  162. KONWERTUJ endp
  163. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement