| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 502 人关注过本帖
标题:[讨论]关于END,PROC伪操作的用法(新手犯难了)
收藏  订阅  推荐  打印 
notiger
Rank: 1
等级:新手上路
帖子:29
积分:392
注册:2005-5-29
[讨论]关于END,PROC伪操作的用法(新手犯难了)

很明显,END [label]后面的标号就是程序的入口地址,程序只有找到入口才能运行.因此平时我都是按正确的方法写的.
可是有时看到这种程序,
.model small
.code
.
.
.
end
就结束了.也就是说,程序能找到入口,怎么回事啊,不明白.

还有关于过程,就是main proc far的问题与main proc near 作为主程序
中的far,near的问题,我知道写.com程序可以用near.
具体有啥说法吗?
搜索更多相关主题的帖子: END  PROC  用法  犯难  
2006-5-18 01:05
公子吕
Rank: 2
等级:注册会员
帖子:79
积分:890
注册:2006-5-4

.model small
.code
...
end
这种简写模式是可以的,汇编器能够知道入口点。但若是这样:
data segment
data ends
code segment
assume cs:code,ds:data
...
code ends
end
这时汇编器就找不到入口点,就会出错。

far 和 near 问题书上说的都很详细吧,far是段间调用,自然保存断点的时候要将段地址和偏移要同时保存, 而near 在同一个段里面,只要保存偏移地址就可以了。


2006-5-18 11:20
公子吕
Rank: 2
等级:注册会员
帖子:79
积分:890
注册:2006-5-4

另外补充一下,386的平摊模式(flat)每个任务4G内存没有分段,就只需要near了。
2006-5-18 11:22
notiger
Rank: 1
等级:新手上路
帖子:29
积分:392
注册:2005-5-29

[QUOTE]还有关于过程,就是main proc far的问题与main proc near 作为主程序
中的far,near的问题,我知道写.com程序可以用near.
[/QUOTE]
谢谢楼主.
不过经过本来的实验,MASM500,与MASM
510版本对程序的入口点没有检测,不能不说是个遗憾.
到6.0版本就可以检查出来了.
near 与 far 的调要的方法我能懂.
只是为什么程序一般都用far 类型,而且那么必须.

------------------ 不能输在起跑线上
2006-5-18 12:32
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.055616 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved