匯編語言源代碼分析
匯編語言源代碼分析
查看源代碼將發(fā)現(xiàn)它由4 4個文件組成,其中:
? 兩個是匯編語言文件,它們的名字帶后綴“ . s”;
? 28個是用“C”語言編寫的,它們的名字帶后綴“ . c”;
? 14個是用“C”語言編寫的,但并不準(zhǔn)備單獨編譯,名字帶后綴“ . h”。
這些文件以及它們的內(nèi)容是由編寫它們的程序設(shè)計人員為使他們自己使用方便而安排的,
并沒有考慮讀者閱讀的便利。在很多方面,文件之間的劃分與本書的討論無關(guān)。
如同在第1章中已提及的,所有這些文件已被組織成五個部分。在組織這些部分時所遵循
的基本點是:盡可能使各部分的長度大致相近;將強相關(guān)的文件分在同一部分中;將弱相關(guān)
的文件分到不同部分中。
4.1 變量分配
P D P 11系統(tǒng)結(jié)構(gòu)支持對變量進行高效存取,其條件是這些變量的絕對地址已知,或者它
們相對于棧指針的地址可在編譯時完全確定。
P D P 11在硬件方面并無對變量說明的多詞法級的支持,在塊結(jié)構(gòu)語言,例如A l g o l或
P a s c a l,則有變量說明的多詞法級支持。由于“ C”在P D P 11上實現(xiàn),所以它只支持兩個詞法
級:全局( g l o b a l )和局部( l o c a l )。
對全局變量進行靜態(tài)分配;對局部變量則在當(dāng)前棧中或在通用寄存器( r 2、r 3和r 4用于此
種方式)中進行動態(tài)分配。
第1組“.h”文件
p a r a m . h,不包含變量說明,但包含很多操作系統(tǒng)常數(shù)和參數(shù)的定義,以及三個簡單結(jié)構(gòu)
的說明。有關(guān)約定是對于定義的常數(shù)只使用大寫字母。
s y s t m . h〔第1 9章〕,主要由說明組成,其中作為副作用定義了“ c a l l o u t”和“ m o u n t”結(jié)
構(gòu)。注意,其中沒有一個變量是顯式地賦予初值的,它們的初值都賦為0。
頭三個數(shù)組的長度是定義在“ p a r a m . h”中的參數(shù)。因此,任一包含“ s y s t m . h”的文件,
必須在包含“s y s t m . h”之前先包含“p a r a m . h”。
s e g . h,包含幾個定義和一個說明,在引用段寄存器時使用這些定義和說明。此文件實際
上可并入“ p a r a m . h”和“s y s t m . h”中。
p r o c . h〔第7章〕,包含重要的“ p r o c”的說明。p r o c是一個結(jié)構(gòu)類型,也是這種結(jié)構(gòu)類型
的一個數(shù)組。p r o c結(jié)構(gòu)的每一個元素的名字都以“ p -”開始,沒有其他變量是這樣命名的。類
似的慣例用于命名其他結(jié)構(gòu)的各元素。
p r o c結(jié)構(gòu)中頭兩個元素“ p s t a t”和“ p f l a g”的各種相關(guān)值都有單獨的名字,它們也在
“p r o c . h”中定義。
u s e r. h〔第7章〕,包含非常重要的“ u s e r”結(jié)構(gòu)的說明,還包含一組與“ u_e r r o r”相關(guān)的
定義值。在任一時刻只有一個“ u s e r”結(jié)構(gòu)的實例是可存取的。該實例以名字“ u”引用,它
非常好我支持^.^
(5) 100%
不好我反對
(0) 0%
下載地址
匯編語言源代碼分析下載
相關(guān)電子資料下載
- 什么是C語言?單片機有什么特點?為什么要用C語言編程? 318
- KEIL軟件的詳細分析 212
- 看完這篇文章,匯編也不難 323
- 匯編語言基礎(chǔ)知識:基本概念 373
- 火遍童年的FC游戲是使用什么語言編寫的 431
- 匯編語言中常見的兩個指令 296
- 匯編語言的產(chǎn)生 匯編語言的組成 458
- 匯編語言之內(nèi)存訪問(寄存器) 398
- 為什么要反匯編?反匯編文件的生成和解讀 1425
- Linux內(nèi)核調(diào)試:指令追蹤大法簡析 547