南郊居士 发表于 2015-4-21 18:50:23

实验九“想多了”版程序

“在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串'welcome to masm!'”,你怎么理解这段话?
反正我的理解是“先显示绿色,然后显示绿底红色,然后再显示白底蓝色,后面的显示覆盖掉前面的显示”,后来我发现我想多了。。。

不管怎么说,贴代码吧。。。
assume cs:code, ds:data

data segment
      db 'welcome to masm!'
      db 2, 24h, 71h
data ends

stack segment stack
      dw 8 dup(0)
stack ends

code segment
start:          mov ax, data
                mov ds, ax
                mov ax, 0b800h
                mov es, ax
               
                ; 初始颜色为黑底绿色
                mov bl, 2
                ; 初始化cx的值
                mov cx, 29

draw:         push cx
               
                xor si, si
                xor di, di
                ; 初始化完毕
               
                mov cx, (2000 - 16) / 2
before:         mov byte ptr es:, 0 ; 抹掉原来的内容
                inc di
                mov es:, bl ; 颜色
                inc di
                loop before
                ; 前面的内容绘制完了
               
                mov cx, 16
line:         mov al,
                mov es:, al
                inc di
                inc si
                mov es:, bl ; 颜色
                inc di
                loop line
                ; 文字绘制完了
               
                mov cx, (2000 - 16) / 2
after:          mov byte ptr es:, 0 ; 抹掉原来的内容
                inc di
                mov es:, bl ; 颜色
                inc di
                loop after
                ; 绘制完毕
               
                ; 简单的延时
                mov dx, 2000
delay:          mov cx, 3000
                loop $
                dec dx
                jnz delay
               
                pop cx
               
                ; 用计数的余数来获取字体信息的位置
                mov ax, cx
                mov bx, 3
                div bl
                mov bl, ah
                xor bh, bh
               
                ; 获取字体信息
                mov al, 10h
                mov bl, al
               
                loop draw
               
                mov ax, 4c00h
                int 21h

code ends

end start


吴先森 发表于 2015-11-12 19:17:14

我复制了代码 为什么运行程序啥都没有

奋斗品格 发表于 2015-11-13 16:50:56

很好的样子,学习一下!

dps521 发表于 2015-11-24 11:50:32

过来 看一看 呵呵。
页: [1]
查看完整版本: 实验九“想多了”版程序