鱼C论坛

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

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

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

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

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

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

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

  2. data segment
  3.         db 'welcome to masm!'
  4.         db 2, 24h, 71h
  5. data ends

  6. stack segment stack
  7.         dw 8 dup(0)
  8. stack ends

  9. code segment
  10. start:          mov ax, data
  11.                 mov ds, ax
  12.                 mov ax, 0b800h
  13.                 mov es, ax
  14.                
  15.                 ; 初始颜色为黑底绿色
  16.                 mov bl, 2
  17.                 ; 初始化cx的值
  18.                 mov cx, 29

  19. draw:           push cx
  20.                
  21.                 xor si, si
  22.                 xor di, di
  23.                 ; 初始化完毕
  24.                
  25.                 mov cx, (2000 - 16) / 2
  26. before:         mov byte ptr es:[di], 0 ; 抹掉原来的内容
  27.                 inc di
  28.                 mov es:[di], bl ; 颜色
  29.                 inc di
  30.                 loop before
  31.                 ; 前面的内容绘制完了
  32.                
  33.                 mov cx, 16
  34. line:           mov al, [si]
  35.                 mov es:[di], al
  36.                 inc di
  37.                 inc si
  38.                 mov es:[di], bl ; 颜色
  39.                 inc di
  40.                 loop line
  41.                 ; 文字绘制完了
  42.                
  43.                 mov cx, (2000 - 16) / 2
  44. after:          mov byte ptr es:[di], 0 ; 抹掉原来的内容
  45.                 inc di
  46.                 mov es:[di], bl ; 颜色
  47.                 inc di
  48.                 loop after
  49.                 ; 绘制完毕
  50.                
  51.                 ; 简单的延时
  52.                 mov dx, 2000
  53. delay:          mov cx, 3000
  54.                 loop $
  55.                 dec dx
  56.                 jnz delay
  57.                
  58.                 pop cx
  59.                
  60.                 ; 用计数的余数来获取字体信息的位置
  61.                 mov ax, cx
  62.                 mov bx, 3
  63.                 div bl
  64.                 mov bl, ah
  65.                 xor bh, bh
  66.                
  67.                 ; 获取字体信息
  68.                 mov al, 10h[bx]
  69.                 mov bl, al
  70.                
  71.                 loop draw
  72.                
  73.                 mov ax, 4c00h
  74.                 int 21h

  75. code ends

  76. end start
复制代码

最终效果

最终效果



评分

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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-11-12 19:17:14 | 显示全部楼层
我复制了代码 为什么运行程序啥都没有
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-13 16:50:56 | 显示全部楼层
很好的样子,学习一下!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-24 11:50:32 | 显示全部楼层
过来 看一看 呵呵。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-8 03:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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