Guest User

Untitled

a guest
Dec 2nd, 2019
132
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
RAW Paste Data