匯編語(yǔ)言期末復(fù)習(xí)資料_第1頁(yè)
匯編語(yǔ)言期末復(fù)習(xí)資料_第2頁(yè)
匯編語(yǔ)言期末復(fù)習(xí)資料_第3頁(yè)
匯編語(yǔ)言期末復(fù)習(xí)資料_第4頁(yè)
匯編語(yǔ)言期末復(fù)習(xí)資料_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

匯編語(yǔ)言期末復(fù)習(xí)資料1000字一、概述匯編語(yǔ)言是計(jì)算機(jī)體系結(jié)構(gòu)的一種表達(dá)方式,為了讓計(jì)算機(jī)理解我們的指令,我們需要以計(jì)算機(jī)能夠理解的語(yǔ)言將指令翻譯成二進(jìn)制碼。匯編語(yǔ)言就是計(jì)算機(jī)能夠直接理解的語(yǔ)言,它以指令的形式描述了計(jì)算機(jī)的操作。二、編寫(xiě)匯編程序1.基本語(yǔ)法1)指令格式匯編語(yǔ)言分為指令和數(shù)據(jù)兩類(lèi),指令由操作碼和操作數(shù)兩部分組成,操作碼是指令的操作類(lèi)型,操作數(shù)是指令操作的數(shù)據(jù)或地址。指令格式:操作碼操作數(shù)2)數(shù)據(jù)定義數(shù)據(jù)定義指令用于聲明和初始化數(shù)據(jù),共包括5種:DB\tbyte\t1,2,3\t定義一個(gè)字節(jié)類(lèi)型的變量,初始值為1,2,3DW\tword\t1,2,3\t定義一個(gè)字類(lèi)型的變量,初始值為1,2,3DD\tdword\t1,2,3\t定義一個(gè)雙字類(lèi)型的變量,初始值為1,2,3DQ\tqword\t1,2,3\t定義一個(gè)四位字類(lèi)型的變量,初始值為1,2,3DT\ttbyte\t1,2,3\t定義一個(gè)十位字類(lèi)型的變量,初始值為1,2,33)程序框架程序框架包括程序頭部(包括程序名稱(chēng)和數(shù)據(jù)段定義)、代碼段和結(jié)束部分。程序結(jié)束時(shí)應(yīng)該有一個(gè)結(jié)束指令。例如:;程序名稱(chēng)section\t.dataa\tdb\t0\t;數(shù)據(jù)定義section\t.textglobal\tmain\t;定義入口函數(shù)main:\t\t;入口函數(shù)mov\tal,[a]\t;指令mov\tah,4ch\t;指令int\t21h\t;指令section\t.end2.轉(zhuǎn)移指令轉(zhuǎn)移指令用于改變程序執(zhí)行的順序,一般情況下由條件碼(標(biāo)志位)決定是否進(jìn)行轉(zhuǎn)移。1)無(wú)條件轉(zhuǎn)移指令JMP\t\t//直接跳轉(zhuǎn)CALL\t\t//調(diào)用過(guò)程RET\t\t//返回2)有條件轉(zhuǎn)移指令JC,JB,JNAE\t//CF=1JE,JZ\t//ZF=1JNE,JNZ\t//ZF=0JA,JNBE\t//CF=0,ZF=0JAE,JNB\t//CF=0JB,JNAE\t//CF=1JCXZ\t//CX=0JECXZ\t\t//ECX=03.數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令用于在寄存器和存儲(chǔ)器之間傳送數(shù)據(jù)。MOV\t\t//傳送指定數(shù)據(jù)XCHG\t\t//交換兩個(gè)操作數(shù)PUSH\t\t//將指定數(shù)據(jù)壓入堆棧POP\t\t//將堆棧頂部數(shù)據(jù)彈出4.算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令用于實(shí)現(xiàn)加、減、乘、除等運(yùn)算。ADD\t\t//加法SUB\t\t//減法IMUL\t\t//有符號(hào)整數(shù)乘法MUL\t\t//無(wú)符號(hào)整數(shù)乘法IDIV\t\t//有符號(hào)整數(shù)除法DIV\t\t//無(wú)符號(hào)整數(shù)除法5.邏輯運(yùn)算指令邏輯運(yùn)算指令用于實(shí)現(xiàn)按位與、按位或、按位異或等運(yùn)算。AND\t\t//按位與OR\t\t//按位或XOR\t\t//按位異或NOT\t\t//按位非6.比較指令比較指令用于比較兩個(gè)操作數(shù),并設(shè)置標(biāo)志寄存器中的條件碼。這些條件碼可以用于進(jìn)行跳轉(zhuǎn)指令的判斷。CMP\t\t//比較兩個(gè)操作數(shù)TEST\t\t//測(cè)試兩個(gè)操作數(shù)7.循環(huán)指令循環(huán)指令允許在遇到特定條件時(shí)反復(fù)執(zhí)行程序段。LOOP\t\t//循環(huán)LOOPZ,LOOPE\t//循環(huán)直到ZF=1LOOPNZ,LOOPNE\t//循環(huán)直到ZF=08.雜項(xiàng)指令其中包括I/O相關(guān)指令和CPU協(xié)處理指令。IN\t\t//輸入OUT\t\t//輸出HLT\t\t//停機(jī)WAIT\t\t//暫停CPUESC\t\t//轉(zhuǎn)移到協(xié)處理器三、匯編程序的調(diào)試調(diào)試匯編程序可以通過(guò)匯編器和調(diào)試器實(shí)現(xiàn)。1.匯編器匯編器用于將源程序翻譯成機(jī)器碼,產(chǎn)生目標(biāo)文件。2.調(diào)試器調(diào)試器可以對(duì)程序進(jìn)行單步執(zhí)行,查看變量值,跟蹤程序運(yùn)行過(guò)程,以確定程序的錯(cuò)誤和性能瓶頸。常見(jiàn)的調(diào)試器包括:gdb:適用于Linux系統(tǒng),功能非常強(qiáng)大。OllyDbg:適用于Windows平臺(tái),相對(duì)簡(jiǎn)單。IDA:逆向分析工具,能夠從機(jī)器碼中還原出C代碼。四、常見(jiàn)問(wèn)題1.如何實(shí)現(xiàn)循環(huán)?可以使用JMP和LOOP指令實(shí)現(xiàn)循環(huán),LOOP指令會(huì)在ECX自減到0之前一直循環(huán)執(zhí)行。2.如何實(shí)現(xiàn)函數(shù)?函數(shù)主要包括函

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論