实验 10 终于完成与大家分享,欢迎高手指正
assume cs:dmdsjd segment
db 'Welcome to masm!',0
sjd ends
dmd segment
cxks :
mov dh,8
mov dl,3
mov cl,2
mov ax,sjd
mov ds,ax
mov si,0
call show
mov ax,4c00h
int 21h
show: mov ax,0 ;将AX值0
mov al,160 ;将AL值160,每行160字节
mul dh ;AL 乘以8,AX=第8行的起始偏移
mov dh,0 ;将DH值0
add dx,dx;DX=第三列的起始位置,一列2字节
push dx;压栈DX
mov dl,16 ;将DL值16
div dl ;将AX中的数据除以16,段地址要乘16,这里先除
add ax,0b800h ;将显存地址与ax内容相加送入AX
mov es,ax;将段地址送入附加段
mov di,0;
mov bx,0
mov dl,cl ;将处cl字符属性绿色字符送给Di
pop bp;将列偏移量出栈送给bp
siii: mov cl,ds: ;取数据
mov ch,0
jcxz sccc;CX=0则跳转
mov es:,cl
mov es:,dl;内容加入显存地址
inc bx
add di,2
jmp siii ;继续执行
sccc: ret
dmd ends
end cxks 第37行备注写错了
mov dl,cl ;将处cl字符属性绿色字符送给Di (是DL不是 DI)
页:
[1]