assume cs:code
data segment
db 'Welcome to masm!',0
data ends
code segment
start:mov dh,8H ;(dh)=行号
mov dl,3H ;(dl)=列号
mov cl,2H ;(cl)=属性值
mov ax,data
mov ds,ax
mov si,0H
call show_str
mov ax,4c00H
int 21H
show_str:push es
push bp
mov bp,0H
sub dh ;字符串输出的段地址用乘法得出,所以行号减1
mov ax,0H
mov al,0A0H ;每行160个字节,所以乘数是0A0H
mul dh ;计算出要显示的字符串的行的段地址
mov es,ax
sub dl
mov al,2H
mul dl ;计算第一个字符串显示位置的偏移地址
mov bp,ax
s:mov ch,0H
mov ch,ds:[si]
mov bl,0H
mov bl,cl
mov cl,0H
jcxz s0
mov cl,bl
mov es:[bp+si],ch
inc si
mov es:[bp+si],cl
inc bp
jmp s
s0:mov si,0H
mov bl,0H
pop bp
pop es
ret
code ends
end start
这是我写的代码,但是在编译时,总是提示20和25行少了逗号,求指导 |