Advertisement
Guest User

Untitled

a guest
Sep 28th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model small
  2. .stack
  3. .data
  4. message db "010100000111001001101111011001110111001001100001011011010110100101110011011101000110000100100000010100000100100001010000", "$"
  5. .code
  6.  
  7. main proc
  8.    mov   ax, seg message
  9.    mov   ds, ax
  10.    lea   di, message     
  11.    mov   si, di ; si i di maja teraz adres naszego tekstu
  12. next:
  13.    mov   cx, 8 ; loop na 8
  14.    xor   bx, bx ; w bx liczymy
  15. bits:
  16.    mov   al, [si] ; czochraj znak
  17.    inc   si ; przesun wskaznik
  18.    cmp   al, '$' ; jak koniec
  19.    je    fin ; to idz to fin
  20.    cmp   al, '0' ; jak zero
  21.    je    is_zero ; nie dodawaj
  22.    inc   bl
  23. is_zero:
  24.    rol   bl,1 ; mnozymy razy 2
  25.    loop  bits ; idziemy do bits, jak cx cos ma i zmniejszamy cx
  26.    ror   bl,1 ; dzielymy przez 2
  27.    mov   [di], bl ; wrzucamy znaczek do pamieci
  28.    inc   di ; zwiekszamy wskaznik celu
  29.    jmp   next ; i na poczatek
  30. fin:
  31.    mov   ax, '$' ; przygotowujemy znacznik konca stringa
  32.    mov   [di], ax ; czochramy go do pamieci
  33.    
  34.    mov   ax,seg message ; parametry dla funkcji 9 przerwania 21h
  35.    mov   ds,ax
  36.    mov   ah,09
  37.    lea   dx,message
  38.    int   21h ; dos wypisuje nam string
  39.  
  40.    mov   ax,4c00h ; wracamy
  41.    int   21h ; do systemu operacyjnego
  42. main   endp
  43. end main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement