实验9遇到的问题
本帖最后由 daya48 于 2012-1-7 16:20 编辑运行程序,屏幕没显示,是怎么回事?
assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!'
db 02h,24h,71h
data ends
stack segment
dw 8 dup(0)
stack ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b800h ;显存段地址
mov es,ax
mov ax,stack
mov ss,ax
mov sp,16
mov bp,0 ;字符属性变量
mov cx,3 ;字符显示3行的循环数
s0: push cx
mov si,0 ;字符地址
mov bx,1920 ;行变量
mov di,0 ;列变量
mov cx,16 ;16个字符的循环数
s1: mov al, ;读取数据段第零个字符
mov es:,al ;写入显存第零个字符
mov al,ds: ;读取第一行显示字符的属性
mov es:,al ;向显存写入第一行字符的属性
inc si
add di,2
loop s1
add bx,160
inc bp
pop cx
loop s0
mov ax,4c00h
int 21h
code ends
end start
mov bx,1920 行变量应放在循环外,要不然add bx,160 这句不起作用.还有 mov al,ds: 这个不是第一个字符的属性,应该是16,因为从0开始16个字节0~15
非常感谢啊,按照你说的我改了,果然显示了~谢谢了 小马过河 发表于 2012-1-7 16:36 static/image/common/back.gif
mov bx,1920 行变量应放在循环外,要不然add bx,160 这句不起作用.还有 mov al,ds: 这个不是 ...
谢谢了~你是对了
页:
[1]