鱼C论坛

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

自己写的实验9高手看下有什么问题不

[复制链接]
发表于 2012-6-4 18:45:37 | 显示全部楼层 |阅读模式

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

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

x
assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!'
db 02h,24h,71h
data ends
stack segment
  dw 8  dup  (0)
stack ends
  
code segment
   start: mov ax,data
          mov ds,ax
                  mov si,0    ;初始化源段地址  
                  
                  mov ax,stack
                  mov ss,ax
                  mov sp,10h   ;初始化栈,SP指向栈底
                  
                  mov ax,0b872h     
                  mov es,ax
                  mov di,0     ;初始化目地段地址
                  mov bx,0     ;bx用来索引颜色
                  
                 mov cx,3   ;设置外层循环3次,因为有3个字符串
        s:   push cx    ;cx压栈,因为有多个循环
             push si    ;si压栈,要si始终指向一个字符串
                 
         mov cx,10h   ;有16个字符,设置10H次循环
        s1:  
              mov dl,ds:[si]   
         mov es:[di],dl    ;传送字符
                 mov dl,ds:10h[bx]
         mov es:1[di],dl  ;传送颜色
         inc si      
                 add di,2     
                 loop s1
                 
                 pop si  ;栈中弹出一个值,给si,还原到最初值
             pop cx   ;  同上
                 inc bx    ; 使bx指向下一个字符串的属性颜色
                 add di,100h  ;di 指向下一个字符串的偏移
                 loop s
                 mov ax,4c00h
                 int 21h
        code ends
        end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-5 21:54:52 | 显示全部楼层
建议把在push si 后增加push同时di pop si前增加pop di,而且add di,100h改成add di,0a0h
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-5 21:57:06 | 显示全部楼层
不好意思,写错了,建议在push si 后增加pushdi,,同时pop si前增加pop di,,而且add di,100h改成add di,0a0h
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-6-6 19:03:14 | 显示全部楼层
谢谢  。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-20 07:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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