assume cs:code
data segment
db 'welcome to masm!'
db 02h,24h,71h 色彩是这值,我一开始也不值,。后来论坛告诉我的。
data ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b864h 我的中间在0B864。我先前试了不要前面加0怎么试怎么错,还是基本不好
mov es,ax
mov bp,10h bp的值设定是色彩的值。每BP加一次,色彩就变一次
mov cx,3 三种色彩,变化三次
s: push cx
mov di,0 每次变化前规0
mov si,0
mov cx,16
s1:mov al,[di] 把ds:[DI]的值给AL,把BP的值给AH
mov ah,ds:[bp]
mov es:[si+20+bx],ax 因为要靠中间所以我加了20H,BX变量设定是相隔多少H,SI是每次AX的值
add si,2 因为是同时两个字节,所以si要加2
add di,1 每次只要一个字节,还有一个字节是色彩为什么这样,我也不知道,书上这样 说的
loop s1
add bx,32 加32。相隔32个字节
add bp,1 bp是色彩的值。,指定下一个色彩
pop cx 恢复CX,到下一个
loop s
mov ax,4c00H
int 21h
code ends
end start |