指令系統(tǒng)轉(zhuǎn)移指令.ppt

上傳人:max****ui 文檔編號:14850830 上傳時間:2020-07-31 格式:PPT 頁數(shù):71 大?。?.38MB
收藏 版權(quán)申訴 舉報 下載
指令系統(tǒng)轉(zhuǎn)移指令.ppt_第1頁
第1頁 / 共71頁
指令系統(tǒng)轉(zhuǎn)移指令.ppt_第2頁
第2頁 / 共71頁
指令系統(tǒng)轉(zhuǎn)移指令.ppt_第3頁
第3頁 / 共71頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《指令系統(tǒng)轉(zhuǎn)移指令.ppt》由會員分享,可在線閱讀,更多相關(guān)《指令系統(tǒng)轉(zhuǎn)移指令.ppt(71頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、控制轉(zhuǎn)移類指令,控制轉(zhuǎn)移類指令用于實現(xiàn)分支、循環(huán)、過程等程序結(jié)構(gòu),是僅次于傳送指令的常用指令 重點掌握: JMP/Jcc/LOOP/JCXZ CALL/RET INT n/IRET 常用系統(tǒng)功能調(diào)用,控制轉(zhuǎn)移類指令通過改變IP(和CS)值,實現(xiàn)程序執(zhí)行順序的改變,目標地址的尋址方式,相對尋址方式 指令代碼中提供目的地址相對于當前IP的位移量,轉(zhuǎn)移到的目的地址(轉(zhuǎn)移后的IP值)就是當前IP值加上位移量 直接尋址方式 指令代碼中提供目的邏輯地址,轉(zhuǎn)移后的CS和IP值直接來自指令操作碼后的目的地址操作數(shù) 間接尋址方式 指令代碼中指示寄存器或存儲單元,目的地址從寄存器或存儲單元中間接獲得,用標號表達,

2、用標號表達,用寄存器或存儲器操作數(shù)表達,目標地址的尋址范圍:段內(nèi)尋址,段內(nèi)轉(zhuǎn)移近轉(zhuǎn)移(near) 在當前代碼段64KB范圍內(nèi)轉(zhuǎn)移( 32KB范圍) 不需要更改CS段地址,只要改變IP偏移地址 段內(nèi)轉(zhuǎn)移短轉(zhuǎn)移(short) 轉(zhuǎn)移范圍可以用一個字節(jié)表達,在段內(nèi)128127范圍的轉(zhuǎn)移,目標地址的尋址范圍:段間尋址,段間轉(zhuǎn)移遠轉(zhuǎn)移(far) 從當前代碼段跳轉(zhuǎn)到另一個代碼段,可以在1MB范圍 需要更改CS段地址和IP偏移地址 目標地址必須用一個32位數(shù)表達,叫做32位遠指針,它就是邏輯地址,代碼段,,,代碼段,實際編程時,匯編程序會根據(jù)目標地址的屬性,自動處理成短轉(zhuǎn)移、近轉(zhuǎn)移或遠轉(zhuǎn)移 程序員可用操作符s

3、hort、near ptr 或far ptr 強制成為需要的轉(zhuǎn)移類型,無條件轉(zhuǎn)移指令,只要執(zhí)行無條件轉(zhuǎn)移指令JMP,就使程序轉(zhuǎn)到指定的目標地址,從目標地址處開始執(zhí)行指令 操作數(shù)label是要轉(zhuǎn)移到的目標地址(目的地址、轉(zhuǎn)移地址) JMP指令分成4種類型: 段內(nèi)轉(zhuǎn)移、相對尋址 段內(nèi)轉(zhuǎn)移、間接尋址 段間轉(zhuǎn)移、直接尋址 段間轉(zhuǎn)移、間接尋址,JMP label;程序轉(zhuǎn)向label標號指定的地址,無條件轉(zhuǎn)移指令JMP(jump),JMP label;段內(nèi)轉(zhuǎn)移、相對尋址 ;IPIP位移量 JMP r16/m16;段內(nèi)轉(zhuǎn)移、間接尋址 ;IPr16/m16 JMP far ptr label;段間轉(zhuǎn)移、直接尋

4、址 ;IP偏移地址,CS段地址 JMP far ptr mem;段間轉(zhuǎn)移,間接尋址 ;IPmem,CSmem2,演示,演示,演示,演示,演示,條件轉(zhuǎn)移指令,條件轉(zhuǎn)移指令Jcc根據(jù)指定的條件確定程序是否發(fā)生轉(zhuǎn)移。其通用格式為: Jcc label;條件滿足,發(fā)生轉(zhuǎn)移 ;IPIP8位位移量; ;否則,順序執(zhí)行 label是一個標號、一個8位位移量,表示Jcc指令后的那條指令的偏移地址,到目標指令的偏移地址的地址位移 label只支持短轉(zhuǎn)移的相對尋址方式,Jcc指令的分類,Jcc指令不影響標志,但要利用標志(表2-4) 根據(jù)利用的標志位不同,分成三種情況: 判斷單個標志位狀態(tài) 比較無符號數(shù)高低 比較

5、有符號數(shù)大小,Jcc指令實際雖然只有16條,但卻有30個助記符 采用多個助記符,目的是為了方便記憶和使用,1. 判斷單個標志位狀態(tài), JZ/JE和JNZ/JNE 利用零標志ZF,判斷結(jié)果是否為零(或相等) JS和JNS 利用符號標志SF,判斷結(jié)果是正是負 JO和JNO 利用溢出標志OF,判斷結(jié)果是否產(chǎn)生溢出 JP/JPE和JNP/JPO 利用奇偶標志PF,判斷結(jié)果中“1”的個數(shù)是偶是奇 JC/JB/JNAE和JNC/JNB/JAE 利用進位標志CF,判斷結(jié)果是否進位或借位,例題2,題目:將AX中存放的無符號數(shù)除以2,如果是奇數(shù)則加1后除以2 問題:如何判斷AX中的數(shù)據(jù)是奇數(shù)還是偶數(shù)? 解答:判

6、斷AX最低位是“0”(偶數(shù)),還是“1”(奇數(shù))。可以用位操作類指令 1:用邏輯與指令將除最低位外的其他位變成0,保留最低位不變。判斷這個數(shù)據(jù)是0,AX就是偶數(shù);否則,為奇數(shù) 2:將最低位用移位指令移至進位標志,判斷進位標志是0,AX就是偶數(shù);否則,為奇數(shù) 3:將最低位用移位指令移至最高位(符號位),判斷符號標志是0,AX就是偶數(shù);否則,為奇數(shù),例題2解答1 用JZ指令實現(xiàn),test ax,01h ;測試AX的最低位D0(不用AND指令,以免改變AX) jz even ;標志ZF1,即D00:AX內(nèi)是偶數(shù),程序轉(zhuǎn)移 add ax,1 ;標志ZF0,即D01:AX內(nèi)的奇數(shù),加1 even:shr

7、 ax,1;AXAX2,用右移一位的方法實現(xiàn)除以2。 本例中用RCR指令比SHR指令更好。,例題2解答2 用JNC指令實現(xiàn),mov bx,ax shr bx,1 ;將AX的最低位D0移進CF jnc even ;標志CF0,即D00:AX內(nèi)是偶數(shù),程序轉(zhuǎn)移 add ax,1 ;標志CF1,即D01:AX內(nèi)的奇數(shù),加1 even:shr ax,1;AXAX2,還可用SAR、ROR和RCR指令,例題2解答3 用JNS指令實現(xiàn),mov bx,ax ror bx,1 ;將AX的最低位D0移進最高位(符號位SF) jns even ;標志SF0,即D00:AX內(nèi)是偶數(shù),程序轉(zhuǎn)移 add ax,1 ;標志

8、SF1,即D01:AX內(nèi)的奇數(shù),加1 even:shr ax,1;AXAX2,錯誤!循環(huán)指令不影響SF等標志,例 判斷是否為字母Y,;寄存器AL中是字母Y(含大小寫),則令A(yù)H0,否則令A(yù)H1 cmp al,y;比較AL與小寫字母y je next;相等,轉(zhuǎn)移 cmp al,Y ;不相等, ;繼續(xù)比較AL與大寫字母Y je next;相等,轉(zhuǎn)移 mov ah,-1;不相等,令A(yù)H1 jmp done;無條件轉(zhuǎn)移指令 next:mov ah,0;相等的處理:令A(yù)H0 done:,例 偶校驗,;對DL寄存器中8位數(shù)據(jù)進行偶校驗 ;校驗位存入CF標志 test dl,0ffh ;使CF0,同時設(shè)置P

9、F標志 jpe done ;DL中“1”的個數(shù)為偶數(shù) ;正好CF0,轉(zhuǎn)向done stc ;DL中“1”的個數(shù)為奇數(shù),設(shè)置CF1 done:;完成,2. 比較無符號數(shù)高低,無符號數(shù)的大小用高(Above)、低(Below)表示,需要利用CF確定高低、利用ZF標志確定相等(Equal) 兩數(shù)的高低分成4種關(guān)系,對應(yīng)4條指令 JB(JNAE):目的操作數(shù)(=)源操作數(shù) JBE(JNA):目的操作數(shù)()源操作數(shù),3. 比較有符號數(shù)大小,判斷有符號數(shù)的大(Greater)、?。↙ess),需要組合OF、SF標志、并利用ZF標志確定相等與否 兩數(shù)的大小分成4種關(guān)系,分別對應(yīng)4條指令 JL(JNGE):目

10、的操作數(shù)(=)源操作數(shù) JLE(JNG):目的操作數(shù)()源操作數(shù),例 求較大值 wmax,cmp ax,bx;比較AX和BX jae next;若AXBX,轉(zhuǎn)移 xchg ax,bx;若AXBX,交換 next:mov wmax,ax,如果AX和BX存放的是有符號數(shù), 則條件轉(zhuǎn)移指令應(yīng)采用JGE指令,,例 求較大值(另解),cmp ax,bx;比較AX和BX jae next mov wmax, bx ;若AXBX,wmaxBX jmp done next:mov wmax,ax ;若AXBX,wmaxAX done:,例 求較大值(另解對比),cmp ax,bx;比較AX和BX jbe

11、next mov wmax, ax ;若AXBX,wmaxAX jmp done next:mov wmax,bx ;若AXBX,wmaxBX done:,循環(huán)指令,一段代碼序列多次重復(fù)執(zhí)行就是循環(huán) 8088設(shè)計有針對CX計數(shù)器的計數(shù)循環(huán)指令 LOOP label;循環(huán)指令 ;首先CXCX1;然后判斷;若CX0,轉(zhuǎn)移 JCXZ label;如果CX0,則轉(zhuǎn)移 label操作數(shù)采用相對短尋址方式 還有LOOPZ/LOOPE和LOOPNZ/LOOPNE兩條指令,,LOOPELOOPZ指令 指令格式: LOOPE label 或者 LOOPZ label 執(zhí)行 LOOPELOOPZ 指令,在進行

12、循環(huán)次數(shù)的計數(shù)(即CX (CX)1后,若(CX)0且 ZF1,則轉(zhuǎn)移到目標單元label ,否則順序執(zhí)行,LOOPNELOOPNZ指令 指令格式: LOOPNE label 或者 LOOPNZ label 執(zhí)行LOOPNELOOPNZ指令,在進行循環(huán)次數(shù)的計數(shù)(即CX (CX)-1后,如(CX)0且ZF0,則轉(zhuǎn)移到目標單元label ,否則順序執(zhí)行。,例 數(shù)據(jù)塊傳送(字節(jié)),mov cx,400h ;設(shè)置循環(huán)次數(shù):1K1024400H mov si,offset sbuf ;設(shè)置循環(huán)初值:SI指向數(shù)據(jù)段源緩沖區(qū)開始 mov di,offset dbuf ;DI指向附加段目的緩沖區(qū)開始(附

13、加段) again:mov al,si;循環(huán)體:實現(xiàn)數(shù)據(jù)傳送 mov es:di,al;每次傳送一個字節(jié) inc si;SI和DI指向下一個單元 inc di loop again ;循環(huán)條件判定:循環(huán)次數(shù)減1,不為0轉(zhuǎn)移(循環(huán)),例 數(shù)據(jù)塊傳送(字),mov cx,200h ;設(shè)置循環(huán)次數(shù):1K2200H mov si,offset sbuf ;設(shè)置循環(huán)初值:SI指向數(shù)據(jù)段源緩沖區(qū)開始 mov di,offset dbuf ;DI指向附加段目的緩沖區(qū)開始(附加段) again:mov ax,si;循環(huán)體:實現(xiàn)數(shù)據(jù)傳送 mov es:di,ax;每次傳送一個字 add si,2;指向下一個(字

14、)單元 add di,2 loop again ;循環(huán)條件判定:循環(huán)次數(shù)減1,不為0轉(zhuǎn)移(循環(huán)),例 在存儲器的數(shù)據(jù)段中連續(xù)存放了100個8位帶符號數(shù),數(shù)據(jù)塊的首地址為2000H。試編寫程序統(tǒng)計其中負數(shù)的個數(shù) ,并將個數(shù)存放到字節(jié)單元MINUS中。 分析: 為統(tǒng)計負數(shù)的個數(shù),可先將MINUS清零然后將數(shù)據(jù)塊中的帶符號數(shù)逐個取入AL寄存器并使其影響標志位,再利用JS或JNS條件轉(zhuǎn)移指令進行統(tǒng)計。,MOV MINUS, 0;MINUS單元清零 MOV SI,2000H;將數(shù)據(jù)塊首地址(SI) MOV CX, 100;數(shù)據(jù)塊長度(循環(huán)次數(shù))(CX) AGAIN: MOV AL, SI;取一個數(shù)到AL

15、 OR AL,AL;使數(shù)據(jù)影響標志位而其數(shù)值不變 JNS NO_M;若不為負數(shù),則轉(zhuǎn)移到NO_M INC MINUS;否則為負數(shù),MINUS單元加1 NO_M :INC SI LOOP AGAIN;CX減1,若不為0,則轉(zhuǎn)移到AGAIN HLT ;停止,子程序指令,子程序是完成特定功能的一段程序 當主程序(調(diào)用程序)需要執(zhí)行這個功能時,采用CALL調(diào)用指令轉(zhuǎn)移到該子程序的起始處執(zhí)行 當運行完子程序功能后,采用RET返回指令回到主程序繼續(xù)執(zhí)行,演示,轉(zhuǎn)移指令有去無回 子程序調(diào)用需要返回, 其中利用堆棧保存返回地址,1. 子程序調(diào)用指令CALL,CALL指令分成4種類型(類似JMP) CALL l

16、abel;段內(nèi)調(diào)用、直接尋址 CALL r16/m16;段內(nèi)調(diào)用、間接尋址 CALL far ptr label;段間調(diào)用、直接尋址 CALL far ptr mem;段間調(diào)用、間接尋址 CALL指令需要保存返回地址: 段內(nèi)調(diào)用當前偏移地址IP入棧 (SP)(SP)2,SS:SP(IP) 段間調(diào)用偏移地址IP和段地址CS入棧 (SP)(SP)2,SS:SP(CS) (SP)(SP)2,SS:SP(IP),段內(nèi)調(diào)用 call near ptr subp (1) 保存返回地址 (2) 轉(zhuǎn)子程序 (IP) subp的偏移地址 段間調(diào)用 call far ptr subp (1) 保

17、存返回地址 (2) 轉(zhuǎn)子程序 (CS) subp的段地址 (IP) subp的偏移地址,2. 子程序返回指令RET,根據(jù)段內(nèi)和段間、有無參數(shù),分成4種類型 RET;無參數(shù)段內(nèi)返回 RET i16;有參數(shù)段內(nèi)返回 RET;無參數(shù)段間返回 RET i16;有參數(shù)段間返回 需要彈出CALL指令壓入堆棧的返回地址 段內(nèi)返回出棧偏移地址IP IPSS:SP, SPSP2 段間返回出棧偏移地址IP和段地址CS IPSS:SP,SPSP2 CSSS:SP,SPSP2,例 十六進制轉(zhuǎn)換為ASCII碼的子程序,;子程序:將DL低4位的一位16進制數(shù)轉(zhuǎn)換成ASCII碼 htoascproc and dl,

18、0fh;只取DL的低4位 or dl,30h;DL高4位變成3 cmp dl,39h;是09,還是0Ah0Fh ? jbe htoend;是09,轉(zhuǎn)移 add dl,7;是0Ah0Fh,加上7 htoend:ret;子程序返回 htoascendp,轉(zhuǎn)換原理,;主程序:調(diào)用子程序 mov dl,28h call htoasc,中斷指令和系統(tǒng)功能調(diào)用,中斷(Interrupt)是又一種改變程序執(zhí)行順序的方法 8088CPU支持256個中斷,每個中斷用一個編號(中斷向量號)區(qū)別 中斷指令有3條: INT n IRET INTO 本節(jié)主要掌握類似子程序調(diào)用指令的中斷調(diào)用指令I(lǐng)NT n,進而掌握系

19、統(tǒng)功能調(diào)用,中斷指令,INT n ;中斷調(diào)用指令:產(chǎn)生n號中斷 ;主程序使用,其中n表示中斷向量號 IRET ;中斷返回指令:實現(xiàn)中斷返回 ;中斷服務(wù)程序使用,,標志處理指令: CLC CF0 CMC CFCF STC CF1 CLD DF0 STD DF1 CLI IF0 STI IF1 注意: * 只影響本指令指定的標志,,,,處理機控制指令,其他處理機控制指令: NOP 無操作 (機器碼占一個字節(jié)) HLT 暫停機 (等待一次外中斷,之后繼續(xù)執(zhí)行程序) WAIT 等待 (等待外中斷,之后仍繼續(xù)等待) ESC mem 換碼 ( (mem) 數(shù)據(jù)總線 ) LOCK 封鎖

20、(維持總線的鎖存信號,直到其后的指令執(zhí)行完) 注意: * 不影響條件標志,調(diào)用的一般過程: 功能編號 AH, 置入口參數(shù) 執(zhí)行軟中斷語句INT 21H,,常用的dos系統(tǒng)功能調(diào)用: 1.鍵盤輸入(調(diào)用功能號1) 調(diào)用格式:MOV AH,1 INT 21H 功能:等待從鍵盤輸入一個字符并將輸入字符的 ASCII碼AL,若按CTRL+BREAK退出,,DOS系統(tǒng)功能調(diào)用,2.單字符顯示輸出(調(diào)用功能號2) 調(diào)用格式:MOV DL,a ;待顯示字符(如a)的ASCII碼 DL MOV AH,2 INT 21H,功能:將DL中的字符送屏幕。 例:MOV DL,

21、0DH MOV AH,2 INT 21H MOV DL,0AH INT 21H,顯示回車,顯示換行,,,,,3.顯示字符串(功能調(diào)用號9) 功能:將當前數(shù)據(jù)區(qū)中DS:DX所指向的以$結(jié)尾的字符串送 屏幕顯示。 注:若字符串中包含字符串$,則不能采用本調(diào)用,只能循環(huán) 地使用2號調(diào)用。 例:DATA SEGMENT BUF DB HOW DO YOU DO?$ DATA ENDS : MOV DX,SEG BUF;存放字符串的段地址 MOV DS,DX LEA DX,BUF;存放字符串的首偏移地址 MOV AH,9 INT 21H,輸出字符串HOW DO YOU DO?,

22、,5.鍵盤輸入字符串:(功能調(diào)用號:10(或0AH)) 調(diào)用格式:MOV DX,SEG BUF;存放字符串的段地址 MOV DS,DX LEA DX,BUF;存放字符串的首偏移地址 MOV AH,10 INT 21H 功能:從鍵盤上往DS:DX所指的輸入緩沖區(qū)輸入以回車鍵結(jié)束 的字符串,并送顯示器顯示。 對緩沖區(qū)的要求: BUF DB 80 DB ? DB 80 DUP(0),;第一個字節(jié)存放緩沖區(qū)大小,不能 為0,用戶確定 ;第二個字節(jié)存放實際輸入的字符個數(shù), 系統(tǒng)填入 ;從鍵盤上輸入字符串從第三個字節(jié)存 放(如果超過則多余去掉,響鈴告警),DATA SEGMENT P

23、 DB 100 DB ? DB 100 DUP(?) M DB WHAT IS YOUR NAME?$ DATA ENDS STACK SEGMENT STACK DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,S:MOV AX,DATA MOV DS,AX LEA DX,M MOV AH,9 INT 21H MOV DX,0FFSET P MOV AH,10 INT 21H MOV AH,4CH INT 21H CODE ENDS END S,上機演示 在屏幕上顯示一行提示信息:“WHAT

24、IS YOUR NAME?”,串操作指令 串傳送指令 存入串指令 從串取指令 串比較指令 串掃描指令,1.MOVS 串傳送指令 MOVS DEST, SRC 可以用無操作數(shù)指令代替: MOVSB (字節(jié)) MOVSW (字),例:MOVS ES: BYTE PTR DI, DS: SI 執(zhí)行操作:(1) ((DI)) ((SI)) (2) 字節(jié)操作:(SI)(SI)1, (DI)(DI)1 字操作: (SI)(SI)2, (DI)(DI)2 方向標志DF=0時用 +,DF=1時用 - 。 REP MOVS

25、:將數(shù)據(jù)段中的整串數(shù)據(jù)傳送到附加段中。 源串(數(shù)據(jù)段) 目的串(附加段) 執(zhí)行REP MOVS之前,應(yīng)先做好: (1)源串首地址 SI (2)目的串首地址 DI (3)串長度 CX (4)建立方向標志(CLD使DF=0,STD使DF=1),,,,,,,,(SI),,,,,,,,低地址,高地址,數(shù)據(jù)段,附加段,(SI),,,,,(DI),(DI),DF=0,DF=0,,,,,,,,,,與REP配合工作的 MOVS REP MOVS 執(zhí)行操作:(1) 如(CX)= 0則退出REP,否則轉(zhuǎn)(2) (2) (CX) (CX) -1 (3) 執(zhí)行MOVS (4) 重復(fù)

26、(1) (3),例datarea segment mess1 db personal_computer;源數(shù)據(jù)段 datarea ends extra segment mess2 db 17 dup (?);目的段 extra ends code segment lea si, mess1 ;源數(shù)據(jù)段首地址 lea di, mess2 ;目的數(shù)據(jù)段首地址 mov cx, 17 ;數(shù)據(jù)長度17個字節(jié) cld ;DF=0 rep movsb ;開始傳送字節(jié) code ends,lea si, mess1+16 lea di, mess2+16 mov cx,

27、 17 std ; DF=1 rep movsb,2.CMPS串比較指令 CMPS SRC, DST CMPSB (字節(jié)) CMPSW (字) 執(zhí)行操作: (1) ((SI)) - ((DI)) 根據(jù)比較結(jié)果設(shè)置條件標志位:相等 ZF=1 不等 ZF=0 (2) 字節(jié)操作:(SI)(SI)1, (DI)(DI)1 字操作: (SI)(SI)2, (DI)(DI)2,與REPE/REPZ和REPNE/REPNZ配合工作的CMPS REPE/REPZ (REPNE/REPNZ) CMPS 執(zhí)行操作:(1) 如(

28、CX)=0或ZF=0 (ZF=1)則退出, 否則轉(zhuǎn)(2) (2) (CX)(CX)-1 (3) 執(zhí)行CMPS (4) 重復(fù)(1) (3),例: 比較兩個字符串,找出它們不相匹配的字節(jié)位置 lea si, mess1 lea di, mess2 mov cx, 8 cld repe cmpsb;找到不相匹配的字節(jié)時停止 ;(di)、(si)為不匹配字符位置,SCASB (字節(jié)) SCASW (字) 執(zhí)行操作: 字節(jié)操作:(AL) - ((DI)), (DI)(DI)1 字操作:(AX) - ((DI)), (DI)(DI)2,3.

29、SCAS串掃描指令,與REPE/REPZ和REPNE/REPNZ配合工作的SCAS REPE/REPZ (REPNE/REPNZ) SCAS 執(zhí)行操作:(1) 如(CX)=0或ZF=0 (ZF=1)則退出, 否則轉(zhuǎn)(2) (2) (CX)(CX)-1 (3) 執(zhí)行 SCAS (4) 重復(fù)(1) (3),例:從一個字符串中查找一個指定的字符 mess db COMPUTER lea di, mess mov al, T mov cx, 8 cld repne scasb;不是T則重復(fù),(DI): 相匹配字符的下一個地址 (CX):剩下還未比

30、較的字符個數(shù),4.LODS取串指令 LODSB (字節(jié)) LODSW (字) 執(zhí)行操作: 字節(jié)操作:(AL)((SI)), (SI)(SI)1 字操作: (AX)((SI)), (SI)(SI)2,注意: * LODS指令一般不與REP聯(lián)用,STOSB (字節(jié)) STOSW (字) 執(zhí)行操作: 字節(jié)操作:((DI))(AL), (DI)(DI)1 字操作: ((DI))(AX), (DI)(DI)2 與REP配合工作的STOS REP STOS 執(zhí)行操作:(1) 如(CX)= 0則退出REP,否則轉(zhuǎn)(2) (2) (CX) (CX) -1 (3

31、) 執(zhí)行STOS (4) 重復(fù)(1) (3),5.STOS存串指令,,例:把mess2緩沖區(qū)的5個字節(jié)置為20H lea di, mess2 mov al, 20H mov cx, 5 cld rep stosb;cx=0時停止,教學要求,了解8088/8086微處理器基本結(jié)構(gòu) 掌握8088/8086的寄存器結(jié)構(gòu)、存儲器結(jié)構(gòu)和尋址方式 熟悉匯編語言的語句格式,掌握8088/8086基本指令: 數(shù)據(jù)傳送:MOVXCHGXLAT、PUSHPOP、LEA 加減運算:ADDSUB、ADCSBB、CMP、INCDEC 邏輯運算:ANDORXORNOTTEST、 移位指令:SHLSHRSAR、ROLROR

32、RCLRCR 控制轉(zhuǎn)移:JMPJccLOOP、CALLRET、INT n,總結(jié),本章展開了8088CPU16位指令系統(tǒng)的常用指令 希望大家就如下幾個方面進行一下總結(jié): 操作數(shù)尋址方式和目的地址尋址方式 指令支持的操作數(shù)形式 常用指令的助記符和功能 指令對標志的影響 通過復(fù)習整理,形成指令系統(tǒng)的整體概念,進而掌握常用指令,指令執(zhí)行,指令執(zhí)行演示舉例,設(shè)CS=1000H,DS=1492H MOV AX,0064H ADD AX,0100H MOV 2000H,AX,指令執(zhí)行,目的地址相對尋址方式,,目的地址寄存器段內(nèi)間接尋址方式,,目的地址存儲器段內(nèi)間接尋址方式,,目的地址段間直接尋址方式,,目的

33、地址存儲器段間間接尋址方式,,條件轉(zhuǎn)移指令的含義,JZ/JEJump on Zero/Equal JNZ/JNEJump on Not Zero/Equal JSJump on Sign JNSJump on Not Sign JP/JPEJump on Parity/Parity Even JNP/JPOJump on Not Parity/Parity Odd JOJump on Overflow JNOJump on Not Overflow JC/JB/JNAEJump on Carry/Below/Not Above or Equal JNC/JNB/JAEJump on Not C

34、arry/Not Below/Above or Equal JBE/JNAJump on Below or Equal/Not Above JNBE/JAJump on Not Below or Equal/Above JL/JNGEJump on Less/Not Greater or Equal JNL/JGEJump on Not Less/Greater or Equal JLE/JNGJump on Less or Equal/Not Greater JNLE/JGJump on Not Less or Equal/Greater,,奇偶校驗,奇偶校驗是計算機中最常使用的校驗方法,因

35、為不論用硬件還是用軟件都很容易實現(xiàn) 偶校驗:如果數(shù)據(jù)中“1”的個數(shù)不是偶數(shù),則校驗位是1,使得包括校驗位在內(nèi)的數(shù)據(jù)中“1”的個數(shù)為偶數(shù);否則,校驗位為0 奇校驗:如果數(shù)據(jù)中“1”的個數(shù)不是奇數(shù),則校驗位是1,使得包括校驗位在內(nèi)的數(shù)據(jù)中“1”的個數(shù)為奇數(shù);否則,校驗位為0,,主程序與子程序,CALL label,主程序,,,,,RET,子程序,,回到CALL指令后的指令處返回地址,,十六進制數(shù)轉(zhuǎn)換為ASCII碼的原理,,主程序與中斷服務(wù)程序,,主程序,,,,,IRET,中斷服務(wù)程序,,斷點,,中斷請求,中斷請求可以來自處理器外部的中斷源, 也可以由處理器執(zhí)行指令引起: 例如執(zhí)行INT i8指令。,8088的指令執(zhí)行,,

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!