assume cs:code ds:data
data segment
db 'welcome to masm!'
db 02h,24h,71h
data ends ;数据段,包含字符和色属性
code segment
start:mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax ;段地址
mov di,7c8h
mov si,0
mov bp,16 ;累加寄存器
s:
mov ch,0
mov cl,ds[si]
sub cx,20h ;测试当前字符是否为空格,20h为空格的ASCII码
jcxz s1 ;是的话则跳转
mov cl,ds[si]
mov ch,ds[bp]
mov es:[di],cx
inc si
add di,2 ;不为空格则把字符和色属性写入显示缓存,并递增偏移地址
sub cx,7121h
jcxz short s2 ;这两条指令为判断是否为最后一个字符,是的话就跳到结束,
jmp short s
s1:inc bp
add si,1
add di,2
jmp short s
s2:mov ax,4c00h
int 21h
code ends
end start
code ends
end start |