鱼C论坛

 找回密码
 立即注册
查看: 2561|回复: 7

[汇编作业] 实验9存在的问题

[复制链接]
发表于 2014-7-6 22:22:09 | 显示全部楼层 |阅读模式

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

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

x
以下是我的程序
assume cs:code ,ds:data ,ss:stack

data  segment

db 'Welcome to Masm !' ;17个字符

db 02h ,24h ,71h ;黑底绿字、绿底红字、白底蓝字

data ends
stack  segment
dw 9 dup (0) ;
stack  ends
code segment
start:  mov ax ,data
     
        mov ds ,ax
        mov ax ,stack
        mov ss , ax
        mov sp , 12h
     
        mov cx ,3  ;用于控制3行的大循环
        mov  ax ,0b872h  ;屏幕中间即第12行的段地址
        mov bx ,0 ;用于索引颜色属性
  s2:   push ax
        push cx
        push bx
        mov  es ,ax
        mov  si ,0 ;用于索引代码段偏移地址
        mov  di ,0 ;用于索引目的段偏移地址
        mov cx ,11h
  s1:   mov  al ,ds:[si]
        mov  es:[di] ,al
  
        mov  al ,ds:11h[bx]
      
        mov  es:[di+1] ,al
        inc si
        add di ,2
        loop s1
        pop bx
        inc bx
   
        pop cx
        pop ax
     
        add ax ,0ah
        loop s2
        jmp $      如果去掉此句,运行exe文件时就会一闪而过,可是小甲鱼的程序没有此句为什么在运行时没一闪而过?
      mov ax ,4c00H
      int 21H
code   ends
end     start

为什么无法在屏幕上显示出:绿字、绿底红字、白底蓝字的三行"Welcom to Masm !"?

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

使用道具 举报

头像被屏蔽
发表于 2014-7-7 00:07:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-7 12:42:26 | 显示全部楼层
policewj 发表于 2014-7-7 00:07
一个循环就可以解决。没细看,17个字符 mov cx ,11h好像不太够。
stack  segment
dw 9 dup (0) ;

'Welcome to Masm !' 是17个字符不加属性的话也就是17个字节,自然要循环17次才能取完。十进制的17对应16进制的11H。
dw 9 dup (0) ;开辟18个字节的栈空间。起初SP是指向栈底的下一个字节单元的。18个字节的空间其偏移地址是0~11h,栈底11h的下一个单元不就是12h吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-7 22:41:59 | 显示全部楼层
直接运行EXE 文件,在屏幕左上角上只出现一个闪烁的点,然后就什么都没有了,直至手动关闭!但用debug调试却可以出现想要的结果:
QQ图片20140707224028.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2014-7-8 07:05:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-7-8 08:28:17 | 显示全部楼层
风神翼龙 发表于 2014-7-7 22:41
直接运行EXE 文件,在屏幕左上角上只出现一个闪烁的点,然后就什么都没有了,直至手动关闭!但用debug调试 ...

不必纠结于这个问题 在XP下去掉JMP $这句完美运行....应该是(编绎器或win7以上操作系统)的问题   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-29 14:47:09 | 显示全部楼层
你这push  ax 怎么还可以把 ax跟es 挂钩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-30 13:05:15 | 显示全部楼层

就是来顶 支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 23:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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