QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 783|回复: 2

求教汇编问题!

[复制链接]
发表于 2005-12-29 20:21:51 | 显示全部楼层 |阅读模式
1.为什么汇编程序开始的时候都有这么一段,如下:
     push     ds
        sub       ax, ax;(或者mov    ax, 0h)
        push     ax
          `
          `
          `
         ret
         end

我今天写了一段程序,如果有上面这一段,但是程序后面没有ret指令,程序能用masm编译通过,也可以连接,但执行的时候就不停的循环,然后就死机了(不过是虚拟机,嘿嘿!)。我觉得即使没有ret指令,由于没有其他指令了,照样不应该继续执行指令了,可是为什么还陷入了死循环?

谁能告诉我是为什么???

2.还是这个程序,我省略了
       push     ds
           sub       ax, ax
           push     ax
这一部分,但没有省略ret指令,程序能通过编译连接,能执行,没有陷入死循环,可是我只看见光标在程序的结果后面闪啊闪啊,唉!死循环到没有,不过还是死机了。

请告诉我这又是为什么?

3.同样是这个程序,我把
       push    ds
          sub        ax, ax
          push      ax

          和
       ret
这两部分我都省略了,这下是和第一种情况一样,陷入死循环,然后死机!

希望高手指点一二!!!
谢了!
 楼主| 发表于 2005-12-29 20:32:07 | 显示全部楼层
还有一个问题,就是程序不加
   main     proc  far
  
      和
  
   ret
这两条指令,程序同样陷入死循环,然后死机!
回复

使用道具 举报

发表于 2006-1-2 18:20:34 | 显示全部楼层
没ret? 你的指令指针寄存器就会一直的++++++++……CPU就把你跟在你程序后面的东西一直运行呀运行的,后果不堪设想亚 :)
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-3 00:27 , Processed in 0.041288 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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