Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2019
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Progr           segment
  2.                 assume  cs:Progr, ds:data, ss:stos
  3.                 blad1:
  4.                 mov dx,offset error1
  5.                 mov ah,09h
  6.                 int 21h
  7.                 jmp end
  8.  
  9.                 blad2:
  10.                 mov dx,offset error2
  11.                 mov ah,09h
  12.                 int 21h
  13.                 jmp end
  14.  
  15.                 blad3:
  16.                 mov dx,offset error3
  17.                 mov ah,09h
  18.                 int 21h
  19.                 jmp end
  20.  
  21. start:          mov     ax,data
  22.                 mov     ds,ax
  23.                 mov     ax,stos
  24.                 mov     ss,ax
  25.                 mov     sp,offset szczyt
  26.  
  27.                 mov dx,offset start_m
  28.                 mov ah,09h
  29.                 int 21h
  30.  
  31.                 mov dx,offset signs
  32.                 mov ah,0Ah
  33.                 int 21h
  34.  
  35.                 cmp n_char,0h
  36.                 je blad1
  37.  
  38.                 xor bx,bx
  39.                 xor cx,cx
  40.                 mov cl,n_char
  41.  
  42.                 tworzenie:
  43.                 xor ax,ax
  44.                 mov al,digit[bx]
  45.                 sub al,'0'
  46.                 cmp ax,9
  47.                 jg blad2
  48.                 cmp ax,0
  49.                 jl blad2
  50.  
  51.                 push ax
  52.                 mov ax,number
  53.                 mov dx,10d
  54.                 mul dx
  55.                 mov number,ax
  56.                 jc blad3
  57.                 pop ax
  58.                 add number,ax
  59.                 jc blad3
  60.                 inc bx
  61.                 loop tworzenie
  62.  
  63.                 xor bx,bx
  64.                 mov bl,n_char
  65.                 mov digit[bx],'$'
  66.  
  67.                mov dx,offset dec
  68.                mov ah,09h
  69.                int 21h
  70.                mov dx,offset digit
  71.                int 21h
  72.  
  73.                mov dx,offset bin
  74.                mov ah,09h
  75.                int 21h
  76.                mov cx,16
  77.                mov ah,02h
  78.                mov dx,number
  79.                rol dx,1
  80.                push dx
  81.  
  82.                loop_bin:
  83.                and dx,0000000000000001b
  84.                add dx,'0'
  85.                int 21h
  86.                pop dx
  87.                rol dx,1
  88.                push dx
  89.                loop loop_bin
  90.  
  91.                mov dx,offset hex_m
  92.                mov ah, 09h
  93.                int 21h
  94.                mov ah,02h
  95.                mov cx,4
  96.                mov bx,number
  97.                rol bx,4
  98.                push bx
  99.  
  100.                loop_hex:
  101.                and bx,0000000000001111b
  102.                mov dl,hex[bx]
  103.                int 21h
  104.                pop bx
  105.                rol bx,4
  106.                push bx
  107.                loop loop_hex
  108.  
  109.                 end:
  110.                 mov dx, offset end_m
  111.                 mov ah, 09h
  112.                 int 21h
  113.                 mov ah,07
  114.                 int 21h
  115.                 mov ah,4Ch
  116.                 int 21h
  117.  
  118. Progr           ends
  119.  
  120. data            segment
  121.  
  122. signs db 6
  123. n_char db ?
  124. digit db 6 dup(0)
  125. number dw 0
  126. hex db '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','$'
  127.  
  128. start_m db 13,10, 'Podaj liczbe binarna : $'
  129. dec db 13,10, 'Liczba dziesietnie : $'
  130. bin db 13,10, 'Liczba binarnie : $'
  131. hex_m db 13,10, 'Liczba hexadecymalnie : $'
  132. error1 db 13,10, 'Nie podales wartosci $'
  133. error2 db 13,10, 'Podales zla wartosc $'
  134. error3 db 13,10, 'Wpisana wartosc jest za duza 0-65535 $'
  135. end_m db 13,10, 'Wcisnij przycisk zeby zakonczyc program: $'
  136.  
  137. data            ends
  138.  
  139. stos          segment
  140.  
  141.                 szczyt Label Word
  142.                 dw 100h dup(0)
  143. stos          ends
  144.  
  145. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement