Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2019
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Progr           segment
  2.                 assume  cs:Progr, ds:dane, ss:stosik
  3.                
  4.         blad1:  mov dx,offset wiad_blad1
  5.                 mov ah,09h
  6.                 int 21h
  7.                 jmp koniec
  8.                
  9.         blad2:  mov dx,offset wiad_blad2
  10.                 mov ah,09h
  11.                 int 21h
  12.                 jmp koniec
  13.                
  14.         blad3:  mov dx,offset wiad_blad3
  15.                 mov ah,09h
  16.                 int 21h
  17.                 jmp koniec
  18.                
  19. start:          mov     ax,dane
  20.                 mov     ds,ax
  21.                 mov     ax,stosik
  22.                 mov     ss,ax
  23.                 mov     sp,offset szczyt
  24.                
  25.                ;Start
  26.                
  27.                 mov dx,offset wiadomosc
  28.                 mov ah,09h
  29.                 int 21h    
  30.                
  31.                 mov dx,offset max
  32.                 mov ah,0Ah            
  33.                 int 21h
  34.                
  35.                 cmp len,0h
  36.                 je blad1 ;jezeli rowne
  37.                
  38.                 xor cx,cx
  39.                 xor bx,bx
  40.                 mov cl,len
  41.                
  42.                 ;tworzenie liczby
  43.                
  44.                
  45.         petla:  xor ax,ax
  46.                 mov al,tekst[bx]
  47.                 sub al,'0'
  48.                 cmp ax,9
  49.                 jg blad2 ;jezeli wieksze
  50.                 cmp ax,0
  51.                 jl blad2 ;jezeli mniejsze
  52.                
  53.                 push ax
  54.                 mov ax,liczba
  55.                 mov dx,10d
  56.                 mul dx
  57.                 mov liczba,ax
  58.                 jc blad3 ;jezeli przeniesienie
  59.                 pop ax
  60.                 add liczba,ax
  61.                 jc blad3
  62.                 inc bx
  63.                 loop petla
  64.                
  65.                 xor bx,bx
  66.                 mov bl,len
  67.                 mov tekst[bx],'$'
  68.                
  69.                ;dec
  70.                
  71.                mov dx,offset wyswietl_d
  72.                mov ah,09h
  73.                int 21h
  74.                mov dx,offset tekst
  75.                int 21h
  76.                
  77.                ;bin
  78.                
  79.                mov dx,offset wyswietl_b
  80.                mov ah,09h
  81.                int 21h
  82.                mov cx,16
  83.                mov ah,02h
  84.                mov dx,liczba
  85.                rol dx,1
  86.                push dx
  87.     petla1:    and dx,0000000000000001b
  88.                add dx,'0'
  89.                int 21h
  90.                pop dx
  91.                rol dx,1
  92.                push dx
  93.                loop petla1
  94.  
  95.                ;hex
  96.                
  97.                mov dx,offset wyswietl_h
  98.                mov ah, 09h
  99.                int 21h
  100.                mov ah,02h
  101.                mov cx,4
  102.                mov bx,liczba
  103.                rol bx,4
  104.                push bx
  105.                
  106.                
  107.     petla2:    and bx,0000000000001111b
  108.                mov dl,hex[bx]
  109.                int 21h
  110.                pop bx
  111.                rol bx,4
  112.                push bx
  113.                loop petla2
  114.                
  115.              
  116.     koniec: mov ah,07
  117.             int 21h
  118.             mov ah,4Ch
  119.             int 21h
  120.            
  121.  
  122.            
  123. Progr           ends
  124.  
  125. dane            segment
  126.  
  127.  
  128. hex db '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','$'
  129.  
  130. max db 6
  131. len db ?
  132. tekst db 6 dup(0)
  133. liczba dw 0
  134.  
  135. wiadomosc db 13,10, 'Witaj w programie konwertujacym. ',13,10,'Podaj liczbe: $'
  136. wyswietl_d db 13,10, 'Liczba dziesietnie: $'
  137. wyswietl_b db 13,10, 'Liczba binarnie: $'
  138. wyswietl_h db 13,10, 'Liczba hexadecymalnie: $'
  139. wiad_blad1 db 13,10, 'Blad! Nie wpisano zadnej wartosci. $'
  140. wiad_blad2 db 13,10, 'Blad! To nie liczba. $'
  141. wiad_blad3 db 13,10, 'Blad! Za duza wartosc. $'
  142.  
  143. dane            ends
  144.  
  145. stosik          segment
  146.                 dw    100h dup(0)
  147. szczyt          Label word
  148. stosik          ends
  149.  
  150. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement