要求将welecome to masm!显示到屏幕中间。分别用绿色,绿底红色,白底蓝色
下面是我做的,大家分析看看有什么不对的地方:
assume cs:codesg,ds:datasg
datasg segment
db 'welcome to masm!'
datasg ends
codesg segment
begin:mov ax,datasg
mov ds,ax
mov si,0
mov di,0
mov cx,10H
mov ax,0B800H
mov es,ax
s:mov dl,ds:[si] ;把welcome to masm!字串逐一传入dx低地址中,dx高地址中进行字符属性定义
mov dh,02H ;绿色字
mov es:40H[di+0640H],dx ;40H是把welcome to masm显示到中间列,0640H表示第11行。
mov dh,24H ;绿底红字
mov es:40H[di+06E0H],dx ;第n行首地址为=(n-1)*A0H,(n为16进制)
mov dh,71H ;白底蓝字
mov es:40H[di+0780H],dx ;第13行首地址为(D-1)*A0H=780H
inc si
add di,2
loop s
mov ah,1
int 21h
mov ax,4c00h
int 21h
codesg ends
end begin |