鱼C论坛

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

[汇编作业] 初学汇编分享自己的 实验9 给大家参考!

[复制链接]
发表于 2014-8-18 16:15:43 | 显示全部楼层 |阅读模式

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

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

x
第一段代码

  1. assume cs:code,ds:data

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

  6. code segment
  7. start:mov ax,data
  8.       mov ds,ax
  9.       mov si,0
  10.       mov ax,0b872h
  11.       mov es,ax                             ; es初始化为显示缓冲区段地址
  12.       mov di,0
  13.           mov bx,17                             ;指向数据段中的颜色
  14.           mov cx,17                             ;第一次绿色字符串的循环数
  15.    
  16.    s1:mov al,ds:[si]                        ;把第一个字符W存入AL中
  17.           mov ah,[bx]                           ;把颜色存入AH中
  18.           mov es:[di],ax                        ;放入显示缓冲区地址
  19.           inc si
  20.       add di,2
  21.           loop s1
  22.           
  23.       xor si,si                             ;异或字指令 SI清0
  24.       add di,126                            ;下一行绿底红色的地址
  25.           inc bx
  26.       mov cx,17                             ;第二次绿底红色字符串的循环数
  27.           
  28.    s2:mov al,ds:[si]
  29.           mov ah,[bx]
  30.           mov es:[di],ax
  31.           inc si
  32.       add di,2
  33.           loop s2
  34.           
  35.           xor si,si
  36.       add di,126                            ;下一行白底蓝色的地址
  37.           inc bx
  38.       mov cx,17                             ;第二次白底蓝色字符串的循环数
  39.           
  40.         s:mov al,ds:[si]
  41.           mov ah,[bx]
  42.           mov es:[di],ax
  43.           inc si
  44.       add di,2
  45.           loop s
  46.           
  47.       mov ax,4c00h
  48.       int 21h

  49. code ends
  50. end start
复制代码


第二段优化过的代码
  1. assume cs:code,ds:data

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

  6. code segment
  7. start:mov ax,data
  8.       mov ds,ax
  9.       mov si,0
  10.       mov ax,0b872h
  11.       mov es,ax
  12.       mov di,0
  13.           mov bx,17
  14.           mov cx,3
  15.           
  16.    s0:push cx
  17.       mov cx,17
  18.    s1:mov al,ds:[si]
  19.           mov ah,[bx]
  20.           mov es:[di],ax
  21.           inc si
  22.       add di,2
  23.           loop s1
  24.           
  25.           pop cx
  26.       xor si,si
  27.       add di,126
  28.           inc bx
  29.           loop s0
  30.           
  31.       mov ax,4c00h
  32.       int 21h

  33. code ends
  34. end start
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +4 收起 理由
小靚同学Leon + 5 + 5 + 4 感谢楼主无私奉献!

查看全部评分

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

使用道具 举报

发表于 2014-9-25 22:03:48 | 显示全部楼层
请问:   你这个代码中用到栈了,可是你并没有定义栈段啊,也没有设置SS和SP.为什么也可以正常运行呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-27 09:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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