超級(jí)濃縮匯編教程

超級(jí)濃縮匯編教程

ID:14281598

大小:72.00 KB

頁數(shù):30頁

時(shí)間:2018-07-27

超級(jí)濃縮匯編教程_第1頁
超級(jí)濃縮匯編教程_第2頁
超級(jí)濃縮匯編教程_第3頁
超級(jí)濃縮匯編教程_第4頁
超級(jí)濃縮匯編教程_第5頁
資源描述:

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

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

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

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

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

5、以推薦使用8086匯編語言,其兼容性最佳。本文所提均為8086匯編語言。寄存器(Register)是CPU內(nèi)部的元件,所以在寄存器之間的數(shù)據(jù)傳送非常快。用途:1.可將寄存器內(nèi)的數(shù)據(jù)執(zhí)行算術(shù)及邏輯運(yùn)算。2.存于寄存器內(nèi)的地址可用來指向內(nèi)存的某個(gè)位置,即尋址。3.可以用來讀寫數(shù)據(jù)到電腦的周邊設(shè)備。8086有8個(gè)8位數(shù)據(jù)寄存器,這些8位寄存器可分別組成16位寄存器:AH&AL=AX:累加寄存器,常用于運(yùn)算;BH&BL=BX:基址寄存器,常用于地址索引;CH&CL=CX:計(jì)數(shù)寄存器,常用于計(jì)數(shù);DH&DL=DX:數(shù)據(jù)寄存器,常用于數(shù)據(jù)傳遞。為了運(yùn)用所有的內(nèi)存空間

6、,8086設(shè)定了四個(gè)段寄存器,專門用來保存段地址:CS(CodeSegment):代碼段寄存器;DS(DataSegment):數(shù)據(jù)段寄存器;SS(StackSegment):堆棧段寄存器;ES(ExtraSegment):附加段寄存器。當(dāng)一個(gè)程序要執(zhí)行時(shí),就要決定程序代碼、數(shù)據(jù)和堆棧各要用到內(nèi)存的哪些位置,通過設(shè)定段寄存器CS,DS,SS來指向這些起始位置。通常是將DS固定,而根據(jù)需要修改CS。所以,程序可以在可尋址空間小于64K的情況下被寫成任意大小。所以,程序和其數(shù)據(jù)組合起來的大小,限制在DS所指的64K內(nèi),這就是COM文件不得大于64K的原因。8

7、086以內(nèi)存做為戰(zhàn)場,用寄存器做為軍事基地,以加速工作。除了前面所提的寄存器外,還有一些特殊功能的寄存器:IP(IntructionPointer):指令指針寄存器,與CS配合使用,可跟蹤程序的執(zhí)行過程;SP(StackPointer):堆棧指針,與SS配合使用,可指向目前的堆棧位置。BP(BasePointer):基址指針寄存器,可用作SS的一個(gè)相對(duì)基址位置;SI(SourceIndex):源變址寄存器可用來存放相對(duì)于DS段之源變址指針;DI(DestinationIndex):目的變址寄存器,可用來存放相對(duì)于ES段之目的變址指針。還有一個(gè)標(biāo)志寄存器F

8、R(FlagRegister),有九個(gè)有意義的標(biāo)志,將在下文用到時(shí)詳細(xì)說明?! ?/p>

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

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

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