Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .model small
- .stack
- .data
- message db "010100000111001001101111011001110111001001100001011011010110100101110011011101000110000100100000010100000100100001010000", "$"
- .code
- main proc
- mov ax, seg message
- mov ds, ax
- lea di, message
- mov si, di ; si i di maja teraz adres naszego tekstu
- next:
- mov cx, 8 ; loop na 8
- xor bx, bx ; w bx liczymy
- bits:
- mov al, [si] ; czochraj znak
- inc si ; przesun wskaznik
- cmp al, '$' ; jak koniec
- je fin ; to idz to fin
- cmp al, '0' ; jak zero
- je is_zero ; nie dodawaj
- inc bl
- is_zero:
- rol bl,1 ; mnozymy razy 2
- loop bits ; idziemy do bits, jak cx cos ma i zmniejszamy cx
- ror bl,1 ; dzielymy przez 2
- mov [di], bl ; wrzucamy znaczek do pamieci
- inc di ; zwiekszamy wskaznik celu
- jmp next ; i na poczatek
- fin:
- mov ax, '$' ; przygotowujemy znacznik konca stringa
- mov [di], ax ; czochramy go do pamieci
- mov ax,seg message ; parametry dla funkcji 9 przerwania 21h
- mov ds,ax
- mov ah,09
- lea dx,message
- int 21h ; dos wypisuje nam string
- mov ax,4c00h ; wracamy
- int 21h ; do systemu operacyjnego
- main endp
- end main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement