回 帖 发 新 帖 刷新版面

主题:为什么这个最简单的Hello world程序有500多字节呀??

明明没有堆栈段,怎么可能这么大呢??

.model tiny

.data
  msg DB 'Hello World!',10,13,'$'
.code
     
start:
    MOV AX,_data    ;默认段名_data
    MOV DS,AX    ;初始化DS段寄存器     
    MOV DX,4    ;此时4相当于offset msg
    MOV AH,09h
    INT 21h        ;9号系统功能调用,显示字符串
    MOV AH,01h
    INT 21h        ;键盘输入并回显                                      
    MOV   AH,4CH    ;返回DOS
    INT   21h
END   start

编译后提示:
LINK : warning L4021: no stack segment

Start  Stop   Length Name                   Class
00000H 00013H 00014H _TEXT                  CODE
00014H 00022H 0000FH _DATA                  DATA

Origin   Group
0001:0   DGROUP

Program entry point at 0000:0000

Segments              2
Groups                1
Bytes in symbol table  32784

最后一句是不是说编译出来的EXE头文件有32784位(即400多字节)?
难道编译出来的EXE的547字节里就有400多字节是别的什么的??

回复列表 (共2个回复)

沙发

没人知道吗???

板凳

stack 段是不占文件大小的

因为你编译的是  exe 文件,exe 文件中有许多的定位信息

我来回复

您尚未登录,请登录后再回复。点此登录或注册