鱼C论坛

 找回密码
 立即注册
查看: 3438|回复: 2

[技术交流] 汇编 实验九 程序优化,两次循环

[复制链接]
发表于 2011-8-14 23:43:56 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 javanetwork 于 2011-8-15 00:24 编辑


  1. ;编程题
  2. ;在B8000H~BFFFFH共32KB的内存地址空间,为80*25彩色字符模式的显式缓冲区
  3. ;分成8页,每页4KB 差不多4000字节
  4. ;25行,每行80个字符,每个字符占2个字节
  5. ;其中低位字节存放Ascii码,高位字节存放字符的颜色属性
  6. ;颜色属性的格式: 从高到低 BL   R G B  I   R G  B
  7. ;              闪烁  背景  高亮 前景
  8. ;向这个地址写入数据,写入的内容将显示在显示器上
  9. ;根据以上资料,在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串'Welcome to masm!'
  10. assume cs:mycode
  11. mydat segment
  12.      db 'Welcome to masm!'
  13.       dw 0720H,07C0H,0860H;显示三个字符串的起始地址,160*11行+80-16=720H
  14.       db 10001010B;闪烁绿色高亮黑底  
  15.       db 00101100B;非闪烁红色高亮绿底   
  16.       db 01110001B;非闪烁蓝色非高亮白底
  17. mydat ends
  18. mystack segment
  19.       db 16 dup(0)
  20. mystack ends
  21. mycode segment
  22. start:
  23.       mov ax,mydat
  24.       mov ds,ax;数据段
  25.       mov ax,0B800H
  26.       mov es,ax;显存段地址
  27.       mov ax,mystack  
  28.       mov ss,ax
  29.       mov sp,10H;以上初始化栈   
  30.    
  31.       mov di,10H;显存偏移地址索引
  32.       mov si,16H;颜色索引

  33.       mov cx,3;循环输出三个字符串
  34. threestr:
  35.       push cx;保存循环计数
  36.      push di

  37.       mov ax,ds:[di];根据索引取得数据段中的显存偏移地址  
  38.       mov di,ax;得到显存偏移地址
  39.       mov bx,0;字符串索引
  40.       mov cx,16;16个字符循环16次  
  41. cir:
  42.       mov al,ds:[bx]
  43.       mov es:[di],al;di为显存偏移地址,将字符写入
  44.       mov al,ds:[si]
  45.       mov es:[di+1],al;写入颜色属性
  46.       add di,2;一次循环写入2个字节
  47.       inc bx;一次循环读取1个字符
  48.       loop cir
  49.      pop di
  50.       add di,2
  51.       inc si
  52.       pop cx
  53.       loop threestr
  54.       mov ax,4c00h
  55.       int 21H
  56. mycode ends
  57. end start
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-7-2 22:47:52 | 显示全部楼层
看帖就要回帖支持下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-2 23:06:20 | 显示全部楼层
看看老帖,支持下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-4 14:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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