搞掂了,测试过,要从第四行(160Bytes * 4 = 480Bytes)开始写入才能显示。不知道为什么,估计是翻页的问题吧。
在Vista下,只能通过debug查看,直接运行exe没反应。
DATAS SEGMENT
;此处输入数据段代码
db 'Welcome to masm!'
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
mov ax,0B800H
mov es,ax
mov cx,16
mov bx,0H
mov si,0
s:
mov al,ds:[si]
mov ah,02h
;total 80 chars
;char 16
;middle char start at =80 - 16 / 2 = 64 / 2 = 32
;total rows 25
;rows 3
;middle row 25 - 3 / 2 = start at 11 row 11 * 160Bytes = 1760
mov es:[bx + 1760 + 64],ax
mov ah,00100100b
mov es:[bx + 1760 + 64 + 160],ax
mov ah,00010001b
mov es:[bx + 1760 + 64 + 160 + 160],ax
inc si
add bx,2
loop s
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START |