看板 ASM 關於我們 聯絡資訊
以下程式我用 nasm 1.asm -o 1.exe org 0h entry: jmp START ; START: mov ah,02h mov dl,01h int 21h mov ah,4ch int 21h 檢視 1.exe 的 16進位格式 得到 e9 00 00 b4 02 b2 01 cd 21 b4 4c cd 21 我找了相關的 exe檔相關格式來看 http://www.itee.uq.edu.au/~cristina/students/david/honoursThesis96/bff.htm 都說第1個byte, 跟第2byte 應該是 0x4d, 0x5a (MZ格式) 那為何 nasm compiler 出來的跟 exe 格式不同呢 有沒有人有研究這個部分,可以說一下看法 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.70.34
zha0:nasm 只可以產生 binary 如果你要生 .exe 可以抓 alink 在去 08/14 13:45
zha0:link , 不然就是你要自己加 EXE Header 進去 . 08/14 13:46
softcloud:那請問為什麼這樣的檔案可以直接執行呢? 08/14 15:10
zha0:DOS 下可以執行的檔案有三種 *.COM-> *.EXE-> *.BAT 08/15 00:32
softcloud:謝謝z大, 我知道檔名的關係,只是好奇說非正式的exe檔 08/15 10:31
softcloud:格式也能照常執行,那exe的 header主要提供誰做辨識 08/15 10:32
zha0:OS 執行檔的 Loader . 08/15 15:29