WFU

[ 精選文章 ]

自行車 入門 Escape 3 , Snap 21 , Revel

最近周末想運動 , 平日想通勤 , 想買台自行車 , 把自己找的資料跟大家分享 , 如果你是玩家級的 就不用看了 這是給跟我一樣的新新新手 參考的 騎車半年後的補充: 如果你有把握你是真的有時間有興趣會一直騎,建議還是存點錢買好一點的彎把公路車, 或是可以考慮買2手的自...

2016年1月4日 星期一

PSP of COM and EXE

COM檔的PSP(僅供參考)
0000Hdw OCD20HINT 20H
0002Hdw 可用記憶體最大節位址
0004Hdb 
0005Hdb 5 dup(?)用於完成DOS INT 21H的功能呼叫﹐此時CL = AH (OOH - 23H)
000AHdd  INT 22H 中斷的進入位址
000EHdd  INT 23H 中斷的進入位址
0012Hdd  INT 24H 中斷的進入位址
0016Hdw 父程式 PSP 位址
0018Hdb 20 dup(?)檔案頭銜表 (FHF)﹐決定該行程可以同時開20個檔案
002CHdw 環境變數區的節位址
002EHdd 堆疊指標紀錄區
0032Hdw 檔案頭銜表的大小﹐預設值為20
0034Hdd 檔案頭銜表的起始位址﹐預設為DS0018H
0038Hdd 
003CHdb 
003DHdw 
003FHdb 
0040Hdw 所對應的DOS版本
0042Hdw 14 dup(?)
0050Hdb 3 dup(?)INT 21H retf
0053Hdw 
0055Hdb 7 dup(?)FCB控制塊的擴充部分
005CHdb 16 dup(?)第一個FCB的控制塊
006CHdb 16 dup(?)第二個FCB的控制塊
007CHdd ?
0080Hdb 80h dup(?)磁碟資料傳送區(DTA)
EXE檔的PSP(僅供參考)
0000Hdw ?'MZ'表示是EXE檔﹐如果沒有DOS就認為是COM
0002Hdw ?EXE檔案長度除以512的餘數
0004Hdw ?EXE檔案長度除以512的商數
0006Hdw ?
重定位表的數目\cell 0008Hdw ?檔頭的para
000AHdw ?程式所需最少記憶體
000CHdw ?程式所需最多記憶體
000EHdw ?初始化SS值﹐(相對於起始節位址)
0010Hdw ?SP
0012Hdw ?Checksum
0014Hdw ?IP
0016Hdw ?初始化CS值﹐(相對於起始節位址)
0018Hdw ?重定位表起始值﹐(相對於檔頭)
COM檔被載入的時候﹐DSES都會指向PSP﹐而 PSP的大小是100H bytes﹐所以 IP會指向 0100H

沒有留言:

張貼留言