assume cs:code,ds:data
data segment ;在数据段定义字符串
db 'Welcome to masm!'
data ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax ;使用ds和es寄存器作为段寄存器
mov si,0
mov bx,0
mov bp,07b0h ;由计算出的字符串所在位置给bp赋值
mov cx,16 ;16个字符数据故loop16次
s: mov al, [bx] ;以下采用相对基址变址寻址方式
mov es:[bp+si], al ;经计算得第1行偏移地址应为b87b0h至b87cfh
mov es:[bp+si+0a0h], al ; 第2行偏移地址应为b8850h至b886fh
mov es:[bp+si+140h], al ; 第3行偏移地址应为b88f0h至b890fh
mov al, 00000010b ;分别给三行设置属性字节
mov es:[bp+si+1], al
mov al, 00100100b
mov es:[bp+si+0a0h+1], al
mov al, 01110001b
mov es:[bp+si+140h+1], al
inc bx
add si,2 ;每个字符占2个字节
loop s
mov ah,4ch
int 21h
code ends
end start
运行结果如下