鱼C论坛

 找回密码
 立即注册
查看: 2506|回复: 3

[汇编作业] 实验九“想多了”版程序

[复制链接]
发表于 2015-4-21 18:50:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
“在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串'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:[di], 0 ; 抹掉原来的内容
                inc di
                mov es:[di], bl ; 颜色
                inc di
                loop before
                ; 前面的内容绘制完了
                
                mov cx, 16
line:           mov al, [si]
                mov es:[di], al
                inc di
                inc si
                mov es:[di], bl ; 颜色
                inc di
                loop line
                ; 文字绘制完了
                
                mov cx, (2000 - 16) / 2
after:          mov byte ptr es:[di], 0 ; 抹掉原来的内容
                inc di
                mov es:[di], 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[bx]
                mov bl, al
                
                loop draw
                
                mov ax, 4c00h
                int 21h

code ends

end start

最终效果

最终效果



评分

参与人数 2荣誉 +9 鱼币 +9 贡献 +5 收起 理由
ufo9876 + 1 + 1 热爱鱼C^_^
小甲鱼 + 8 + 8 + 5 多想想,肯定就有多收获!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-12 19:17:14 | 显示全部楼层
我复制了代码 为什么运行程序啥都没有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-13 16:50:56 | 显示全部楼层
很好的样子,学习一下!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-24 11:50:32 | 显示全部楼层
过来 看一看 呵呵。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 01:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表