|
发表于 2011-11-7 18:52:02
|
显示全部楼层
本帖最后由 蛇足之王 于 2011-11-7 18:55 编辑
1.data段的数据定义有误,写入显示缓冲区的数据应该是要显示的字符所对应的ASCII码
2.要显示的一个字符占两个字节,其中高位是颜色信息,低位是ASCII码,如果要用mov es:[di],ax这样的语句,那么应该是ah存储颜色信息,al存储ASCII码,而不是用ax存储整个数据
改成下面这样应该没问题了
assume cs:code,ds:data
data segment
db '1','2','3','4','5','6','7' ;这里改成定义字符型数据
data ends
code segment
start:
mov ax,data
mov ds,ax
mov bx,0
mov ax,0b800H
mov es,ax
mov di,0
mov cx,7
s:
mov al,ds:[bx]
mov es:[di],al ;这里只传输低位的ASCII码信息,不改动高位的颜色信息
add di,2
inc bx
loop s
mov ax,4c00H
int 21H
code ends
end start |
|