请问大虾:常常听说“在程序的堆栈区......”不知道是exe文件中的区域,还是进程中的区域。
我想知道程序在内存中的布局的模式,请问要看那个方面的书呢? 问题点数:100、回复次数:7Top
1 楼hswxf(黄山一刀)回复于 2003-11-02 20:57:06 得分 10
组成原理、汇编语言、微原与接口,编译原理、操作系统等Top
2 楼bluedreammer(瀟瀟鳥)回复于 2003-11-03 09:26:42 得分 10
自己編個程序用debug或者別的工具觀察就理解了Top
3 楼nonocast(如果没有如果)回复于 2003-11-03 09:37:52 得分 20
推荐
IBM PC汇编语言设计(第五版)
老外写的
很不错Top
4 楼lqh0523(排骨君)回复于 2003-11-03 09:55:17 得分 20
汇编程序主要有:数据段,堆栈段,代码段等组成,可以看到各个段一般都会有XXsegment开始,以XX结束,学汇编需要把计算机组成原理和接口技术以及操作系统看以下,Top
5 楼eduyu(杜宇)回复于 2003-11-04 02:42:18 得分 0
谢谢
hswxf(黄山一刀) 、bluedreammer(瀟瀟鳥)、nonocast(如果没有如果) 、 (lqh0523(排骨君)
bluedreammer(瀟瀟鳥) 有点离谱,我要是会,干吗还问这么基础的问题。
我是说,程序在内存的布局是由什么决定的?是PE格式?还是loader程序,还是操作系统呢?Top
6 楼bluedreammer(瀟瀟鳥)回复于 2003-11-04 08:38:58 得分 30
我覺得這樣最直觀,編個諸如hello world的小程序就可以了阿,要不別人說的終歸不好理解.
.model small
.stack 64
.data
mes db 'hello world','$'
.code
start:
mov ax,@data
mov ds,ax
lea dx,mes
mov ah,09h
int 21h
mov ax,4c00h
int 21h
end start
;--------------------
然後編譯成.exe文件,debug xxx.exe觀察各個段寄存器(ds,ss,cs)的值畫在紙上,這樣你就明白了阿.Top
7 楼hswxf(黄山一刀)回复于 2003-11-04 21:20:59 得分 10
楼主:
是你问的有点离谱“我想知道程序在内存中的布局的模式,请问要看那个方面的书呢?”
书我说了前面的里面有
“我想知道程序在内存中的布局的模式”与“程序在内存的布局是由什么决定的?是PE格式?还是loader程序,还是操作系统呢?”是完全不同的二个问题
“程序在内存中的布局”是由依你的操作系统对内存的管理方法定的,而你的“程序在内存中的布局”是什么系统下的。程序有许多种你说的那种纯二进制的还是你说的在WINDOWS中的EXE文件中的所谓PE格式等,你这些不说一下子能说清吗?
只好清你看看书了
再是#¥%……%¥……¥……%
太多了,还是多看一下书吧
Top




