dane segment
zb db 'zmienna bin=$'
zo db 'zmienna osc=$'
d1 dw 0
dane ends
sts segment stack 'stack'
db 512 dup(0)
sts ends
clrscrn macro
mov ah,0
mov al,3
int 10h
endm
ustaw macro x,y
mov bh,0
mov dh,y
mov dl,x
mov ah,2
int 10h
endm
wysw macro txt
mov dx,offset txt
mov ah,9
int 21h
endm
wczytbin macro dana
mov cx,15
wb:
mov ah,8
int 21h
cmp al,'1'
ja wb
cmp al,'0'
jb wb
mov dl,al
mov ah,2
int 21h
mov ah,0
sub al,30h
shl [dana],1
add [dana],ax
loop wb
endm
wco macro da ;wyswietlenie cyfry osemkowo
mov cx,3 ;petla 3 razy
mov ax,0
mov dx,0
wo:
shl dl,1
rcl [da],1
jc jeden
jmp nie
jeden:
add dl,1
nie:
loop wo
add dl,30h
mov ah,2
int 21h
endm
prog segment
assume cs:prog, ds:dane, ss:sts
start:
mov ax, seg dane
mov ds,ax
clrscrn
ustaw 2,10
wysw zb
ustaw 2,12
wczytbin d1
ustaw 2,15
wysw zo
ustaw 2,17
mov cx,5
wpco: ;wyswietlenie 5 cyfr osemkowo
push cx
wco d1
pop cx
loop wpco
mov ah,4ch
int 21h
prog ends
end start