鱼C论坛

 找回密码
 立即注册
查看: 3098|回复: 1

[技术交流] 我的实验10的第一题!

[复制链接]
发表于 2011-7-4 21:49:33 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 linha0 于 2011-7-4 21:52 编辑
  1. assume cs:code,ds:data

  2. data segment
  3. db 'welcome to masm!',0                        ;共16个ASCII码字符,16个字节
  4. data ends

  5. rgb segment

  6. db 00000010b;0、黑底绿字
  7. db 01000010b;1、红底绿字
  8. db 01110001b;2、白底蓝字
  9. db 00100100b;3、绿底红字
  10. db 11000010b;4、红底闪烁绿字
  11. db 01001010b;5、红底高亮绿字
  12. db 00000111b;6、黑底白字

  13. db 32 dup (0)    ;存放CX,用于多重循环
  14. rgb ends

  15. code segment
  16. start:
  17.                 mov ax,data
  18.                 mov ds,ax
  19.                 mov ax,rgb
  20.                 mov ss,ax
  21.                 mov sp,30h
  22.                 mov ax,0b800h                                ;显示缓冲区的段地址
  23.                 mov es,ax
  24.                 ;以上初始化各段
  25.                
  26.                 ;测试1
  27.                 mov bp,4                                 ;设置字体颜色编号
  28.                 mov dh,0                                 ;设置行号(共25行)
  29.                 mov dl,0                                  ;设置列号(共80列)
  30.                
  31.                 call show_str
  32.                
  33.                 ;测试2
  34.                 mov bp,6                                ;设置字体颜色编号
  35.                 mov dh,6                                ;设置行号(共25行)
  36.                 mov dl,30                               ;设置列号(共80列)
  37.                
  38.                 call show_str
  39.                
  40.                 mov ax,4c00h
  41.                 int 21h
  42.                
  43. show_str:
  44.                 mov al,0a0h
  45.                 mul dh                                   ;计算行数的实际地址
  46.                 mov di,ax
  47.                
  48.                 mov al,2h
  49.                 mul dl                                    ;计算列数的实际偏移地址
  50.                 add di,ax
  51.                
  52.                 mov ah,[bp]                          ;取色
  53.                
  54.                 mov bx,0
  55.                 mov si,0
  56.                 mov ch,0
  57.         s:      mov cl,[si]
  58.                 jcxz ok
  59.                 mov al,cl                               ;取字
  60.                 mov es:[di][bx],ax                ;显示字符.
  61.                
  62.                 inc si
  63.                 add bx,2
  64.                 jmp short s
  65.                
  66.         ok:        ret
  67. code ends
  68. end start
复制代码
与书本不的题目要求略有不同。预先把一些颜色的二进制值存储在段中。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-7-1 22:44:52 | 显示全部楼层
看看老帖,学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-25 23:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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