马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
assume cs:dmd
sjd 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:[bx] ;取数据
mov ch,0
jcxz sccc ;CX=0则跳转
mov es:[di+bp],cl
mov es:[di+1+bp],dl ;内容加入显存地址
inc bx
add di,2
jmp siii ;继续执行
sccc: ret
dmd ends
end cxks
|