问几个简单的问题II(这次问点汇编和静态链接庫的问题)(50分)

  • 主题发起人 主题发起人 HORNEY
  • 开始时间 开始时间
H

HORNEY

Unregistered / Unconfirmed
GUEST, unregistred user!
1。汇编的每条指令编译后是否长度都是一致?抑或同类指令长度一致?OS是怎样判断指
; ;令的类别?
2。汇编据介绍是一种面向CPU的语言,但是WINDOWS的PE格式指出,一个PE格式的EXE文
; ;件可以在运行在不同CPU的WIN上通用,那这EXE指令难道不是面向CPU,而是面向操
; ;作系统吗?
3。LIB文件(静态链接庫)我理解是对DLL的一种映射文件,里面似乎保存着各API函数的
; ;入口点,那么这些信息是怎样得到的呢,是否可以依据PE格式读出?读出的入口点是
; ;否就为程序运行时DLL的入口指针?
 
你的问题问的相当深入,一点也不简单啊。

1。如果是CISC,就基本上不一致,RISC基本上一致。
指令类别跟OS有何关系?这是汇编程序处理的。

2。PE的EXE只能在同一类的CPU上运行,如x86的Intel,Cyrix,AMD等
,而不能在别的类型运行如MIPS,ALPHA,要重新编译。

3。LIB有两种,一种是标准的静态库,直接保存了执行代码,
一种是DLL的导入库import library,保存了装入DLL (LoadLibrary)和建立映射
的代码(GetProcess).在DLL的PE文件中,有对所有其导出函数
export的描述,包括入口.这个值还要重定位过,根据DLL装入的地址
 
问题4:据说WINNT4是一种符合POSIX规范的OS,那么那些符合POSIX的API都放哪儿啦?
 
WINNT4 的确完全支持 POSIX 1.1的,
它是有个子系统,类似于支持16位Windows的WOW,支持OS/2的子系统。
不过只支持Console状态,因为POSIX没有图形用户界面部分。
具体的可以看MSDN.
 
那如何确知PE文件装入时之地址?
 
大伙也帮忙提前一下。。。
 
问题二:
所谓PE格式可以运行在不同的CPU系统上,仅指的PE文件的结构(文件头、段结构、
输入输出表等等)在不通的系统上可以通用。但与其中的内容,也就是程序代码无
关。PE格式跨平台的好处主要在于编译器在生成多种平台的PE文件时不需要为各
个平台生成不同的文件格式。实际上PE格式基本上就是COFF格式加一个DOS小程序
(stub)而成的。
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部