实验分析
code
assume cs:code,ds:data,ss:stack
data segment
str db 'welcome to masm!'
c db 2,24h,71h
data ends
stack segment
db 16 dup (0)
stack ends
code segment
start: mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,16
mov ax,0b86eh
mov es,ax
sub si,si ;指向颜色同时指向行数
mov cx,3
row: sub di,di ;指向字符位置
sub bx,bx ;指向字符位置
mov ah,c[si] ;读颜色
push cx
mov cx,16
col: mov al,str[di] ;读字符,字符串内容的偏移地址,每次增加1
mov es:40h[bx+di],ax ;写字符,缓冲区的偏移地址,每次增加2
inc di
inc bx
loop col
pop cx
mov ax,es ;修改段地址
add ax,0ah
mov es,ax
inc si
loop row
mov ax,4c00h
int 21h
code ends
end start