匯編濃縮教材

匯編濃縮教材

ID:47123613

大?。?4.50 KB

頁數(shù):9頁

時間:2019-08-08

匯編濃縮教材_第1頁
匯編濃縮教材_第2頁
匯編濃縮教材_第3頁
匯編濃縮教材_第4頁
匯編濃縮教材_第5頁
資源描述:

《匯編濃縮教材》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、Content:???“哎喲,哥們兒,還搗鼓匯編呢?那東西沒用,兄弟用VB"釣"一個API就夠你忙活個十天半月的,還不一定搞出來。”此君之言倒也不虛,那吾等還有無必要研他一究呢?(廢話,當(dāng)然有啦!要不然你寫這篇文章干嘛。)別急,別急,讓我把這個中原委慢慢道來:一、所有電腦語言寫出的程序運行時在內(nèi)存中都以機器碼方式存儲,機器碼可以被比較準(zhǔn)確的翻譯成匯編語言,這是因為匯編語言兼容性最好,故幾乎所有跟蹤、調(diào)試工具(包括WIN95/98下)都是以匯編示人的,如果閣下對CRACK頗感興趣……;二、匯編直接與硬件打交道,如果你想搞通程序在執(zhí)行時在電腦中的來龍去脈,也就是搞清電腦每個組

2、成部分究竟在干什么、究竟怎么干?一個真正的硬件發(fā)燒友,不懂這些可不行。三、如今玩DOS的多是“高手”,如能像吾一樣混入(我不是高手)“高手”內(nèi)部,不僅可以從“高手”朋友那兒套些黑客級“機密”,還可以自詡“高手”盡情享受強烈的虛榮感--#$%&“醒醒!”  對初學(xué)者而言,匯編的許多命令太復(fù)雜,往往學(xué)習(xí)很長時間也寫不出一個漂漂亮亮的程序,以致妨礙了我們學(xué)習(xí)匯編的興趣,不少人就此放棄。所以我個人看法學(xué)匯編,不一定要寫程序,寫程序確實不是匯編的強項,大家不妨玩玩DEBUG,有時CRACK出一個小軟件比完成一個程序更有成就感(就像學(xué)電腦先玩游戲一樣)。某些高深的指令事實上只對有經(jīng)驗

3、的匯編程序員有用,對我們而言,太過高深了。為了使學(xué)習(xí)匯編語言有個好的開始,你必須要先排除那些華麗復(fù)雜的命令,將注意力集中在最重要的幾個指令上(CMPLOOPMOVJNZ……)。但是想在啰里吧嗦的教科書中完成上述目標(biāo),談何容易,所以本人整理了這篇超濃縮(用WINZIP、WINRAR…依次壓迫,嘿嘿!)教程。大言不慚的說,看通本文,你完全可以“不經(jīng)意”間在前輩或是后生賣弄一下DEBUG,很有成就感的,試試看!那么――這個接下來呢?――Herewego?。ㄩ喿x時看不懂不要緊,下文必有分解)  因為匯編是通過CPU和內(nèi)存跟硬件對話的,所以我們不得不先了解一下CPU和內(nèi)存:(關(guān)于數(shù)

4、的進(jìn)制問題在此不提) ?。茫校帐强梢詧?zhí)行電腦所有算術(shù)╱邏輯運算與基本I/O控制功能的一塊芯片。一種匯編語言只能用于特定的CPU。也就是說,不同的CPU其匯編語言的指令語法亦不相同。個人電腦由1981年推出至今,其CPU發(fā)展過程為:8086→80286→80386→80486→PENTIUM→……,還有AMD、CYRIX等旁支。后面兼容前面CPU的功能,只不過多了些指令(如多能奔騰的MMX指令集)、增大了寄存器(如386的32位EAX)、增多了寄存器(如486的FS)。為確保匯編程序可以適用于各種機型,所以推薦使用8086匯編語言,其兼容性最佳。本文所提均為8086匯編語言

5、。寄存器(Register)是CPU內(nèi)部的元件,所以在寄存器之間的數(shù)據(jù)傳送非??臁S猛荆?.可將寄存器內(nèi)的數(shù)據(jù)執(zhí)行算術(shù)及邏輯運算。2.存于寄存器內(nèi)的地址可用來指向內(nèi)存的某個位置,即尋址。3.可以用來讀寫數(shù)據(jù)到電腦的周邊設(shè)備。8086有8個8位數(shù)據(jù)寄存器,這些8位寄存器可分別組成16位寄存器:AH&AL=AX:累加寄存器,常用于運算;BH&BL=BX:基址寄存器,常用于地址索引;CH&CL=CX:計數(shù)寄存器,常用于計數(shù);DH&DL=DX:數(shù)據(jù)寄存器,常用于數(shù)據(jù)傳遞。為了運用所有的內(nèi)存空間,8086設(shè)定了四個段寄存器,專門用來保存段地址:CS(CodeSegment):代碼段

6、寄存器;DS(DataSegment):數(shù)據(jù)段寄存器;SS(StackSegment):堆棧段寄存器;ES(ExtraSegment):附加段寄存器。當(dāng)一個程序要執(zhí)行時,就要決定程序代碼、數(shù)據(jù)和堆棧各要用到內(nèi)存的哪些位置,通過設(shè)定段寄存器CS,DS,SS來指向這些起始位置。通常是將DS固定,而根據(jù)需要修改CS。所以,程序可以在可尋址空間小于64K的情況下被寫成任意大小。所以,程序和其數(shù)據(jù)組合起來的大小,限制在DS所指的64K內(nèi),這就是COM文件不得大于64K的原因。8086以內(nèi)存做為戰(zhàn)場,用寄存器做為軍事基地,以加速工作。除了前面所提的寄存器外,還有一些特殊功能的寄存器:

7、IP(IntructionPointer):指令指針寄存器,與CS配合使用,可跟蹤程序的執(zhí)行過程;SP(StackPointer):堆棧指針,與SS配合使用,可指向目前的堆棧位置。BP(BasePointer):基址指針寄存器,可用作SS的一個相對基址位置;SI(SourceIndex):源變址寄存器可用來存放相對于DS段之源變址指針;DI(DestinationIndex):目的變址寄存器,可用來存放相對于ES段之目的變址指針。還有一個標(biāo)志寄存器FR(FlagRegister),有九個有意義的標(biāo)志,將在下文用到時詳細(xì)說明。 

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。