鱼C论坛

 找回密码
 立即注册
查看: 2976|回复: 5

王爽【汇编语言】第9章实验9 有点不懂请教大家

[复制链接]
发表于 2011-12-3 18:57:23 | 显示全部楼层 |阅读模式

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

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

x
我检查了很多遍代码  可是感觉不知道错哪  在屏幕上就一次显示出3个'welcome to masm!'    后来打开就没出现过  请教下是为什么?


assume cs:codesg

data segment
   db 'welcome to masm!'
data ends

codesg segment

     start:  mov ax,0b800h
              mov ds,ax        ;使ds对准显存缓冲区段
          mov ax,data      
              mov es,ax        ;使es对准data段
                         
          mov bx,640h       ;640h表示在显示缓冲区的第10行的偏移
          sub si,si         ;si清零
          sub di,di         ;di清零
          mov ah,02h        ;将绿色字体的偏移放入ax的高8位
          mov cx,16         ;cx=16表示loop循环16次   
s0:           mov al,es:[si]       ;data段中的字符放入ax的低8位
          mov [bx+64+di],ax     ;64表示第64列  di表示相对[bx+64]的偏移  从0开始增加直到15
               inc si                     ;si每次加1 以便取出data中的数据
          add di,2                ;di每次加2 以便将AX中的数据每次以2字节写入显存缓冲区
          loop s0
                         
        add bx,0a0H       ;bx加上a0h表示向下一行下数据
        sub si,si
        sub di,di        
        mov ah,24h        ;将绿底红色的字体属性放入ax的高八位
        mov cx,16            
s1:        mov al,es:[si]
                mov [bx+64+di],ax
        inc si
        add di,2
        loop s1
                         
        add bx,0a0H
         sub si,si
        sub di,di        
        mov ah,71h        ;将白底蓝色的字体属性放入ax的高八位
        mov cx,16            
s2:        mov al,es:[si]
                mov [bx+64+di],ax
        inc si
        add di,2
        loop s2
                         
codesg ends
end start
                         
                         
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-3 20:22:51 | 显示全部楼层
楼主最好在codesg ends上面加上mov ax, 4c00h,int 21h,其他就没有什么错误了。还有要看在屏幕上显示的东西时最好用emu8086,别用系统自带的cmd。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-3 20:35:39 | 显示全部楼层
少个中断指令,还有楼主最好把要复制的数据放在ds段,配合movsb指令
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-3 22:17:31 | 显示全部楼层

谢谢  这个确实忘写了  还是太粗心啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-3 22:18:56 | 显示全部楼层
api 发表于 2011-12-3 20:35
少个中断指令,还有楼主最好把要复制的数据放在ds段,配合movsb指令

额  多些提醒  不过中断什么的还没学。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-3 22:35:12 | 显示全部楼层
本帖最后由 zzmatrix 于 2011-12-3 22:35 编辑

因为系统的cmd不是纯dos系统,如果你坚持用cmd的话,建议你按alt+enter把它全屏化了运行。试试。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-10 22:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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