.286 .model small .code org 100h start: mov ax, 12h int 10h mov cx, 0fh gg: mov ax, 100 mov bx, cx call putpixel inc ax inc bx call putpixel loop gg mov ah, 08h int 21h mov ax, 03 int 10h mov ax, 4ch int 21h putpixel proc near pusha push es mov di, cx push 0a000h pop es push bx mov cl, 6 shl bx, cl pop dx shl dx, 4 add bx, dx push ax shr ax, 3 add bx, ax pop ax and ax, 7 mov cl, 7 sub cl, al mov ax, 1 shl ax, cl mov m1, al mov offs, bx xor cx, cx puts: mov dx, 3ceh mov ax, 5 out dx, ax mov dx, 3c4h mov ax, 100h shl ax, cl add ax, 2 out dx, ax mov si, offs mov al, es:[si] mov bx, 1 shl bx, cl test di, bx jz nwrt or al, m1 jmp myout nwrt: mov bl, m1 not bl and al, bl myout: mov es:[si], al mov dx, 3c4h mov ax, 0F02h out dx, ax inc cl cmp cl, 4 jnz puts pop es popa ret m1 db ? offs dw ? endp end start