assume cs:code
data segment
db 'welcome to masm!'
db 00000010b,00100100b,01110001b
data ends
code segment
start:mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov ax,0
mov dp,16
mov di,0
mov cx,12 :计算屏幕中间的位置,12*160
s:add ax,160
loop s
add ax,64 :同上,加64
mov bx,ax
mov cx,3
s1:mov si,0
mov dx,cx
mov cx,16
s0:mov al,[di]
mov es:[bx+si],al :将字母输入内存
mov al,[dp]
mov es:[bx+si+1],al :将颜色输入内存
add si,2
inc di
loop s0
add bx,160
inc dp
mov cx,dx
loop s1
mov ax,4c00h
int 21h
code ends
end start
最终调试时只能显示wloet am,有一半的字母没显示,-d b800:7b0
B800:07B0 20 07 20 07 20 07 20 07-20 07 20 07 20 07 20 07 . . . . . . . .
B800:07C0 77 65 6C 63 6F 6D 65 20-74 6F 20 6D 61 73 6D 21 welcome to masm!
B800:07D0 02 07 20 07 20 07 20 07-20 07 20 07 20 07 20 07 .. . . . . . . .
B800:07E0 20 07 20 07 20 07 20 07-20 07 20 07 20 07 20 07 . . . . . . . .
D命令查看倒是能看到全部字母,实在想不通还哪不对了 |