assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends
; row=11(start from 0)
; length=16
; left=(80-16)/2*2=64(start from 0)
; mode1 green 00000010B
; mode2 green/red 00100100B
; mode3 white/blue 01110001B
code segment
start: mov ax,0b800h
mov ds,ax
mov ax,data
mov es,ax
mov bx,11*160
mov si,64
mov di,0
mov ah,00000010B
mov dl,00100100B
mov dh,01110001B
mov cx,16
s:mov al,es:[0][di]
mov ds:[bx][si],al ;line 11(character)
mov ds:[bx+160][si],al ;line 12
mov ds:[bx+320][si],al ;line 13
inc si
mov ds:[bx][si],ah ;line 11(display option)
mov ds:[bx+160][si],dl ;line 12
mov ds:[bx+320][si],dh ;line 13
inc si
inc di
loop s
mov ax,4c00h
int 21h
code ends
end start |