指令系統(tǒng)3課件_第1頁(yè)
指令系統(tǒng)3課件_第2頁(yè)
指令系統(tǒng)3課件_第3頁(yè)
指令系統(tǒng)3課件_第4頁(yè)
指令系統(tǒng)3課件_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

五、程序控制指令轉(zhuǎn)移指令循環(huán)控制11.轉(zhuǎn)移指令無(wú)條件轉(zhuǎn)移指令

無(wú)條件轉(zhuǎn)移到目標(biāo)地址,執(zhí)行新的指令有條件轉(zhuǎn)移指令

在具備一定條件的情況下轉(zhuǎn)移到目標(biāo)地址2轉(zhuǎn)移指令的轉(zhuǎn)移原理通過(guò)修改代碼段寄存器CS及指令指針I(yè)P的內(nèi)容,使程序改變順序執(zhí)行的模式,轉(zhuǎn)到新的目標(biāo)地址執(zhí)行。3無(wú)條件轉(zhuǎn)移指令段內(nèi)轉(zhuǎn)移——目標(biāo)地址與JMP指令在同一代碼段轉(zhuǎn)移方式:直接轉(zhuǎn)移——指令中直接給出轉(zhuǎn)移的目標(biāo)地址間接轉(zhuǎn)移——由指令中的寄存器或存儲(chǔ)器間接給出轉(zhuǎn)移目標(biāo)地址5無(wú)條件段內(nèi)轉(zhuǎn)移直接轉(zhuǎn)移:JMPLable轉(zhuǎn)移目標(biāo)地址:

段基地址不變;偏移地址=當(dāng)前IP+位移量JMPLabel┇┇┇代碼段位移量近地址標(biāo)號(hào)6無(wú)條件段內(nèi)轉(zhuǎn)移間接轉(zhuǎn)移:JMPBXJMPWORDPTR[BX]JMP┇┇┇代碼段數(shù)據(jù)段BX=1200┇XXHXXHIP指令碼7無(wú)條件段間轉(zhuǎn)移直接轉(zhuǎn)移:JMPFARLable遠(yuǎn)地址標(biāo)號(hào)JMPLabel┇┇┇代碼段1代碼段2XXHXXHXXHXXHIPCS8條件轉(zhuǎn)移指令在滿足一定的條件下,程序轉(zhuǎn)移到目標(biāo)地址繼續(xù)執(zhí)行;在條件轉(zhuǎn)移指令之前,應(yīng)有一條為條件轉(zhuǎn)移指令的執(zhí)行形成條件的指令(如對(duì)標(biāo)志位產(chǎn)生影響的指令);條件轉(zhuǎn)移指令均為段內(nèi)短轉(zhuǎn)移,即轉(zhuǎn)移范圍為:-128------+127p20610條件轉(zhuǎn)移指令舉例例1:在內(nèi)存的數(shù)據(jù)段中存放了100個(gè)8位帶符號(hào)數(shù),其首地址為TABLE,試統(tǒng)計(jì)其中正數(shù)、負(fù)數(shù)和零的個(gè)數(shù),并分別將個(gè)數(shù)存如PLUS、MINUS和ZERO三個(gè)單元中。112.循環(huán)控制指令控制程序在以當(dāng)前IP為中心的-128~+127范圍內(nèi)循環(huán)執(zhí)行;循環(huán)次數(shù)由CX寄存器指定。

循環(huán)指令無(wú)條件循環(huán)指令LOOP條件循環(huán)指令LOOPZ(E)LOOPNZ(E)對(duì)標(biāo)志位不產(chǎn)生影響13無(wú)條件循環(huán)指令格式:LOOPLable循環(huán)條件:CX≠0LOOP指令的操作相當(dāng)于:DECCXJNZLable14條件循環(huán)指令格式:LOOPZLableLOOPELable循環(huán)條件:CX≠0ZF=1格式:LOOPNZLableLOOPNELable循環(huán)條件:CX≠0ZF=015一、匯編語(yǔ)言及匯編程序計(jì)算機(jī)語(yǔ)言:機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向機(jī)器的語(yǔ)言機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言17匯編語(yǔ)言及匯編程序匯編語(yǔ)言源程序

用助記符編寫的程序源程序的編譯程序匯編程序匯編語(yǔ)言源程序機(jī)器語(yǔ)言目標(biāo)程序18匯編語(yǔ)言程序設(shè)計(jì)與執(zhí)行過(guò)程輸入?yún)R編語(yǔ)言源程序源文件.ASM匯編(編譯)目標(biāo)文件.OBJ鏈接可執(zhí)行文件.EXE調(diào)試最終程序19匯編語(yǔ)言的語(yǔ)句格式指示性語(yǔ)句:

CPU不執(zhí)行的指令,不生成目標(biāo)代碼;由匯編程序執(zhí)行,用于分配內(nèi)存空間、定義變量、指示程序開始和結(jié)束等。指令格式:[名字]偽指令助記符操作數(shù)[,操作數(shù),…][;注釋]變量的符號(hào)地址其后不加冒號(hào)指示性語(yǔ)句中至少有一個(gè)操作數(shù)21操作數(shù)常量——數(shù)值或字符、字符串寄存器存儲(chǔ)器單元變量或標(biāo)號(hào)表達(dá)式——可包括各種運(yùn)算符22變量代表內(nèi)存中的數(shù)據(jù)區(qū),程序中視為存儲(chǔ)器操作數(shù)變量的屬性:

段值——變量所在段的段地址

偏移量——變量單元地址與段首地址之間的位移量。類型——字節(jié)型、字型和雙字型23數(shù)據(jù)定義偽指令用于定義數(shù)據(jù)區(qū)中變量的類型格式:

[變量名]偽指令助記符操作數(shù),[…][;注釋]25數(shù)據(jù)定義偽指令偽指令助記符DB定義的變量為字節(jié)型DW定義的變量為字類型(雙字節(jié))DD定義的變量為雙字型(4字節(jié))DQ定義的變量為4字型(8字節(jié))DT定義的變量為10字節(jié)型26重復(fù)操作符為一個(gè)數(shù)據(jù)區(qū)的各單元設(shè)置相同的初值格式:

[變量名]偽指令助記符nDUP(初值,…)例:BW20DUP(0)DB3DUP(22H,11H,?)隨機(jī)數(shù)29符號(hào)定義偽指令格式:符號(hào)名EQU 表達(dá)式操作:用符號(hào)名取代后邊的表達(dá)式,不可重新定義例: CONSTANT EQU 100VAREQU30H+99HEQU說(shuō)明的表達(dá)式不占用內(nèi)存空間30段定義偽指令說(shuō)明邏輯段的起始和結(jié)束;說(shuō)明不同程序模塊中同類邏輯段之間的聯(lián)系形態(tài)31段定義偽指令段名SEGMENT[定位類型][組合類型][’類別’] ┇段名ENDS說(shuō)明邏輯段的起點(diǎn)說(shuō)明不同模塊中同名段的組和連接方式32段定義偽指令例DATASEGMENTMEM1DB11H,22HMEM2DW1234HDATAENDS33設(shè)定段寄存器偽指令說(shuō)明所定義邏輯段的性質(zhì)格式ASSUME段寄存器名:段名[,段寄存器名:段名,…]34結(jié)束偽指令表示源程序結(jié)束格式:END[標(biāo)號(hào)]35一個(gè)完整源程序結(jié)構(gòu)例DSEGSEGMENTDATA1DB1,2,DATA2DW1234HDSEGENDSESEGSEGMENTDB20DUP(?)ESEGENDSSSEGSEGMENTDB200DUP(?)SSEGENDS36一個(gè)完整源程序結(jié)構(gòu)例CSEGSEGMENTASSUMECS:CSEG,DS:DSEG,ES:ESEG,SS:SSEGSTART:MOVAX,DSEGMOVDS,AXMOVAX,ESEGMOVES,AXMOVAX,SSEGMOVSS,AX┇CSEGENDSENDSTART源程序代碼37四、DOS功能模塊用INT21H軟中斷指令,可調(diào)用包含多個(gè)子功能的功能包;各子功能采用功能號(hào)來(lái)區(qū)分;功能包括:設(shè)備管理、目錄管理、文件管

理等。38DOS功能模塊調(diào)用格式調(diào)用格式:MOVAH,功能號(hào)<置相應(yīng)參數(shù)>INT21H39常用子功能從鍵盤輸入單字符并顯示;從鍵盤輸入字符串并顯示;在屏幕上顯示單字符;在屏幕上顯示字符串。40從鍵盤輸入單字符并顯示調(diào)用方法:MOVAH,01INT21H輸入的字符在AL中41單字符輸入例GET_KEY:

MOV AH,1 INT 21H

CMP AL,’Y’ JZ YES CMP AL,’N’ JZ NO JNZ GET_KEY

YES:┇ NO:┇交互式應(yīng)答程序42單字符顯示輸出AH功能號(hào)O2HDL待輸出字符INT21H43單字符顯示輸出例MOV AH,02MOV DL,41HINT 21H 執(zhí)行結(jié)果:屏幕顯示字符‘A’44字符串輸出顯示AH功能號(hào)O9HDS:DX待輸出字符串的偏移地址INT21H45字符串輸出顯示例DATA SEGMENTMESS1DB‘InputString:’0DH,0AH,’$’DATAENDSCODESEGMENT ┇MOV AH,09MOV DX,OFFSETMESS1INT 21H┇被顯示的字符串必須以‘$’結(jié)束46

匯編語(yǔ)言的一個(gè)實(shí)例DATA SEGMENTBLOCK DB 43H,0ABH,…PDATA DB 20 DUP(?)NDATA DB 20 DUP(?)DATA ENDSCODE SEGMENT

ASSUMECS:CODE,DS:DATA

47

JMP AGAINMINUS:XCHG BX,DI STOSB XCHG BX,DIAGAIN:LOOP GOON

CODE ENDS

ENDSTARTSTART:MOVAX,DATA MOVDS,AX MOVES,AX LEASI,BLOCK LEADI,PDATA LEABX,NDATA CLD MOVCX,20

GOON:LODSB;(AL)[SI]TESTAL,80H JNZMINUS

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論