循環(huán)與分支程序設計_第1頁
循環(huán)與分支程序設計_第2頁
循環(huán)與分支程序設計_第3頁
循環(huán)與分支程序設計_第4頁
循環(huán)與分支程序設計_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5第五章第五章教學重點教學重點1. 掌握掌握、及其匯編語言程序及其匯編語言程序設計設計2. 問題:問題:(09、AZ、az);計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5 (3 3)分支結構)分支結構 (4 4) 子程序結構子程序結構 程序結構程序結構(5)復合結構:多種程序結構的組合)復合結構:多種程序結構的組合 (1 1) 順序結構順序結構 (2 2) 循環(huán)結構循環(huán)結構計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5 編制匯編語言程序的步驟編制匯編語言

2、程序的步驟(1) 分析題意,確定算法分析題意,確定算法(2) 根據(jù)算法畫出程序框圖根據(jù)算法畫出程序框圖(3) 根據(jù)框圖編寫程序根據(jù)框圖編寫程序(4) 上機調(diào)試程序上機調(diào)試程序計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch55.0 順序程序設計順序程序設計順序程序完全按指令書寫的前后順序程序完全按指令書寫的前后順序執(zhí)行每一條指令,是最基本、順序執(zhí)行每一條指令,是最基本、最常見的程序結構最常見的程序結構一般純粹的順序結構的程序設計一般純粹的順序結構的程序設計較少。較少。計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5data segmen

3、tdata segmentX Xdw 5dw 5Y Ydw 6dw 6Z Zdw 7dw 7W Wdw ?dw ?data endsdata endscode segmentcode segmentmain proc farmain proc far assume cs:code,ds:dataassume cs:code,ds:datastart:start: push dspush ds xor ax,axxor ax,ax push ax push ax mov ax,data mov ax,data mov ds,ax mov ds,ax mov ax,Xmov ax,X add ax

4、,Y add ax,Y add ax,Z add ax,Z mov W,ax mov W,ax ret retmain endpmain endpcode endscode ends end startend startWX+Y+Z計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5;查表法,實現(xiàn)一位;查表法,實現(xiàn)一位1616進制數(shù)轉換為進制數(shù)轉換為ASCIIASCII碼顯示碼顯示data segmentdata segment ASCII db 30h,31h,32h,33h,34h,35hASCII db 30h,31h,32h,33h,34h,35h db 36

5、h,37h,38h,39h db 36h,37h,38h,39h ;0 ;09 9的的ASCIIASCII碼碼 db 41h,42h,43h,44h,45h,46hdb 41h,42h,43h,44h,45h,46h;A;AF F的的ASCIIASCII碼碼 hexhex db 0bh db 0bh ; ;任意設定一個待轉換的一位任意設定一個待轉換的一位1616進制數(shù)進制數(shù)data endsdata endscode segmentcode segmentmain proc farmain proc far 計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5 ass

6、ume cs:code,ds:dataassume cs:code,ds:datastart:start: push ds push ds xor ax,ax xor ax,ax push ax push ax mov ax,data mov ax,data mov ds,ax mov ds,ax ;- ;- mov bx,offset ASCIImov bx,offset ASCII;BX;BX指向指向ASCIIASCII碼表碼表mov al,hexmov al,hex;AL;AL取得一位取得一位1616進制數(shù),正是進制數(shù),正是ASCIIASCII碼表中位移碼表中位移計算機科學與技術系計算機

7、科學與技術系 匯編語言匯編語言2022-3-22ch5 and al,0fh and al,0fh; ;只有低只有低4 4位是有效的,高位是有效的,高4 4位清位清0 0 xlatxlat ; ;換碼:換碼:ALDS:BXALDS:BXALALmov dl,almov dl,al; ;入口參數(shù):入口參數(shù):DLALDLALmov ah,2mov ah,2;02;02號號DOSDOS功能調(diào)用功能調(diào)用int 21hint 21h; ;顯示一個顯示一個ASCIIASCII碼字符碼字符retretmain endpmain endpcode endscode ends end startend star

8、t;查表法,實現(xiàn)一位;查表法,實現(xiàn)一位1616進制數(shù)轉換為進制數(shù)轉換為ASCIIASCII碼顯示碼顯示data segmentdata segment ASCII db 30h,31h,32h,33h,34h,35h ASCII db 30h,31h,32h,33h,34h,35h db 36h,37h,38h,39h db 36h,37h,38h,39h ;0 ;09 9的的ASCIIASCII碼碼 db 41h,42h,43h,44h,45h,46hdb 41h,42h,43h,44h,45h,46h;A;AF F的的ASCIIASCII碼碼 hexhex db 0bh db 0bh ;

9、;任意設定一個待轉換的一位任意設定一個待轉換的一位1616進制數(shù)進制數(shù)data endsdata endscode segmentcode segmentmain proc farmain proc farassume cs:code,ds:dataassume cs:code,ds:datastart:start: push dspush ds xor ax,axxor ax,ax push axpush ax mov ax,datamov ax,data mov ds,axmov ds,ax ;- ;- mov bx,offset ASCIImov bx,offset ASCII;BX;B

10、X指向指向ASCIIASCII碼表碼表mov al,hexmov al,hex;AL;AL取得一位取得一位1616進制數(shù),正是進制數(shù),正是ASCIIASCII碼表中位移碼表中位移and al,0fhand al,0fh; ;只有低只有低4 4位是有效的,高位是有效的,高4 4位清位清0 0 xlatxlat ; ;換碼:換碼:ALDS:BXALDS:BXALALmov dl,almov dl,al; ;入口參數(shù):入口參數(shù):DLALDLALmov ah,2mov ah,2;02;02號號DOSDOS功能調(diào)用功能調(diào)用int 21hint 21h; ;顯示一個顯示一個ASCIIASCII碼字符碼字符

11、retretmain endpmain endpcode endscode ends end startend start計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch55.1 5.1 循環(huán)程序設計循環(huán)程序設計循環(huán)結構一般是循環(huán)結構一般是和和可以實現(xiàn)循環(huán)控可以實現(xiàn)循環(huán)控制制計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5 循環(huán)程序結構形式循環(huán)程序結構形式DO-WHILE 結構結構 DO-UNTIL 結構結構控制條件控制條件初始化初始化循環(huán)體循環(huán)體YN控制條件控制條件初始化初始化循環(huán)體循環(huán)體YN計算機科學與技術系計算機科學與技術系 匯編

12、語言匯編語言2022-3-22ch5: 設置循環(huán)的初始狀態(tài)設置循環(huán)的初始狀態(tài): 循環(huán)的工作部分及修改部分循環(huán)的工作部分及修改部分:計數(shù)控制(:計數(shù)控制(LOOP) 特征值控制特征值控制(LOOPZ/LOOPNZ/ 條件跳轉指令條件跳轉指令) 循環(huán)程序結構說明循環(huán)程序結構說明計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5例:把例:把 BX BX 中的二進制數(shù)以十六進制的形式顯示在屏幕上中的二進制數(shù)以十六進制的形式顯示在屏幕上 如:如:1011 0010 1111 1010 B H BXBX1234計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-

13、22ch5分析:分析:(1)程序結構的確定程序結構的確定 由題意由題意,顯然這可以用循環(huán)結構來完成,每次顯,顯然這可以用循環(huán)結構來完成,每次顯示一個十六進制數(shù)位,因而循環(huán)次數(shù)是已知的,計數(shù)值示一個十六進制數(shù)位,因而循環(huán)次數(shù)是已知的,計數(shù)值為為4。 (2)循環(huán)體的構成(算法確定)循環(huán)體的構成(算法確定) 循環(huán)體應該包括:循環(huán)體應該包括:。 需要了解相關知識需要了解相關知識:字符和其字符和其ASCII碼之間的關系?碼之間的關系? “0”“9” 30H39H, “A”F” 41H5AH如何顯示一個字符?如何顯示一個字符?(a)將顯示字符的將顯示字符的ASCII碼放入碼放入DL寄存器;寄存器;(b)將

14、將AH的內(nèi)的內(nèi)容置為容置為2(功能號);(功能號);(c)執(zhí)行執(zhí)行INT 21H(DOS 功能調(diào)功能調(diào)用)。用)。計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5開開 始始初初 始始 化化 循循 環(huán)環(huán)計計 數(shù)數(shù) 值值B B X X 循循 環(huán)環(huán) 左左 移移一一 個個 數(shù)數(shù) 位位把把 最最 右右 面面 的的 數(shù)數(shù)位位 轉轉 換換 為為 A A S S C C I I I I是是 A A S S C C I I I IA A F F ?加加 上上 7 7顯顯 示示 一一 個個 字字 符符循循 環(huán)環(huán) 計計 數(shù)數(shù) 值值 = = 0 0 ?結結 束束Y YN NN NY Y(

15、3)循環(huán)控制條件分析)循環(huán)控制條件分析因為循環(huán)次數(shù)已知,可以使用因為循環(huán)次數(shù)已知,可以使用實現(xiàn),但是必須注意:實現(xiàn),但是必須注意:。除了可以使用除了可以使用LOOPLOOP指令之外,還指令之外,還可以使用可以使用來實現(xiàn)。來實現(xiàn)。LOOP AGAIN DEC 計數(shù)器計數(shù)器 JNZ AGAIN計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5 mov cx, 4 mov cx, 4 ;初始化;初始化rotate: rotate: mov cl, 4 mov cl, 4 rol bx, cl rol bx, cl mov al, bl mov al, bl and al,

16、 0fh and al, 0fh add al, 30h add al, 30h ; 09 ASCII 30H39H; 09 ASCII 30H39H cmp al, 3ah cmp al, 3ah jl printit jl printit add al, 7h add al, 7h ; AF ASCII 41H46H; AF ASCII 41H46Hprintit: printit: mov dl, almov dl, al mov ah, 2 mov ah, 2 int 21h int 21h loop rotate loop rotate 方法方法1 (LOOP)計算機科學與技術系計算

17、機科學與技術系 匯編語言匯編語言2022-3-22ch5 mov mov , 4 , 4 ;初始化;初始化rotate: mov rotate: mov , 4, 4 rol bx, cl rol bx, cl mov al, bl mov al, bl and al, 0fh and al, 0fh add al, 30h add al, 30h ; 09 ASCII 30H39H; 09 ASCII 30H39H cmp al, 3ah cmp al, 3ah jl printit jl printit add al, 7h add al, 7h ; AF ASCII 41H46H; AF

18、 ASCII 41H46Hprintit: printit: mov dl, almov dl, al mov ah, 2 mov ah, 2 int 21h int 21h 方法方法2 (條件跳轉指令條件跳轉指令)計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5例:將正數(shù)例:將正數(shù) n n 插入一個已整序的正數(shù)字數(shù)組。該數(shù)組的插入一個已整序的正數(shù)字數(shù)組。該數(shù)組的首地址和末地址分別為首地址和末地址分別為ARRAY_HEAD, ARRAY_END。計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5由于數(shù)組已經(jīng)排好序,因此可以將正數(shù)由于數(shù)組

19、已經(jīng)排好序,因此可以將正數(shù)n依次和數(shù)組中的數(shù)進依次和數(shù)組中的數(shù)進行比較,比較有個方向問題,這里假設數(shù)組在存儲單元中按地行比較,比較有個方向問題,這里假設數(shù)組在存儲單元中按地址遞增的方向從小到大依次存放。不妨從大數(shù)開始進行比較,址遞增的方向從小到大依次存放。不妨從大數(shù)開始進行比較,計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5 很顯然,查找位置和空出位置的過程就是循環(huán)比很顯然,查找位置和空出位置的過程就是循環(huán)比較的過程,因此采用循環(huán)結構來實現(xiàn),那么,循環(huán)條較的過程,因此采用循環(huán)結構來實現(xiàn),那么,循環(huán)條件如何確定呢?其中一種比較容易想到循環(huán)條件就是件如何確定呢?其中

20、一種比較容易想到循環(huán)條件就是:數(shù)組長度(或數(shù)組首地址)及數(shù)組長度(或數(shù)組首地址)及K=n,其中,其中K為依次從為依次從數(shù)組中取出的一個數(shù)。數(shù)組中取出的一個數(shù)。 另外,可以充分利用題目中的已知條件即數(shù)組中另外,可以充分利用題目中的已知條件即數(shù)組中的數(shù)均為正數(shù),所以我們可以在數(shù)組的開始的前一個的數(shù)均為正數(shù),所以我們可以在數(shù)組的開始的前一個位置存放一個負數(shù),不妨存放數(shù)位置存放一個負數(shù),不妨存放數(shù)-1,這樣,在循環(huán)控,這樣,在循環(huán)控制時就不需要用數(shù)組長度來進行控制,可以進一步簡制時就不需要用數(shù)組長度來進行控制,可以進一步簡化程序的設計。而且需要注意的是,有可能一次都不化程序的設計。而且需要注意的是,有

21、可能一次都不需要移動數(shù)組中的數(shù)。因此,應選擇需要移動數(shù)組中的數(shù)。因此,應選擇DOWHILE 結結構形式。構形式。計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5開開 始始( (A AR RR RA AY Y_ _H HE EA AD D- -2 2) ) - -1 1初初 始始 化化 變變 址址 寄寄 存存 器器 S SI IK K 0 0N NY Y計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5 x dw x1,x2,x3,x4,x5,x6,x7,x8,x9,x10 x dw x1,x2,x3,x4,x5,x6,x7,x8,x9,

22、x10 y dw y1,y2,y3,y4,y5,y6,y7,y8,y9,y10 y dw y1,y2,y3,y4,y5,y6,y7,y8,y9,y10 z dw z1,z2,z3,z4,z5,z6,z7,z8,z9,z10 z dw z1,z2,z3,z4,z5,z6,z7,z8,z9,z10logic_rule dw 00dch logic_rule dw 00dch ;0000,0000,1101,1100;0000,0000,1101,1100 mov bx, 0mov bx, 0 mov cx, 10 mov cx, 10 mov dx, logic_rule mov dx, logi

23、c_rulenext: mov ax, xbxnext: mov ax, xbx shr dx, 1 shr dx, 1 jc subtract jc subtract add ax, ybx add ax, ybx jmp short result jmp short result ; ; 向前引用向前引用subtract: subtract: sub ax, ybx sub ax, ybxresult: mov zbx, axresult: mov zbx, ax add bx, 2 add bx, 2 loop next loop next 計算機科學與技術系計算機科學與技術系 匯編語言

24、匯編語言2022-3-22ch5例例: 將首地址為將首地址為A的字數(shù)組從小到大排序的字數(shù)組從小到大排序32,85,16,15, 832,85,16,15, 8 (冒泡算法,多重循環(huán))(冒泡算法,多重循環(huán)) 計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5冒泡法冒泡法“冒泡法冒泡法”是一種排序算法,不是最優(yōu)的算法,但它是一種排序算法,不是最優(yōu)的算法,但它易于理解和實現(xiàn)易于理解和實現(xiàn)冒泡法冒泡法;將所有元將所有元素比較完之后,最大的元素排到了最后素比較完之后,最大的元素排到了最后;n n個數(shù)需要個數(shù)需要n-1n-1遍比較,第一遍遍比較,第一遍比較出一個最大(或最小)數(shù)

25、,第二遍對剩下的數(shù)進比較出一個最大(或最?。?shù),第二遍對剩下的數(shù)進行比較,得到一個次最大(或次最小)數(shù)行比較,得到一個次最大(或次最小)數(shù) ,第,第n-1n-1遍比遍比較出最后兩個數(shù)的大小順序,至此整個數(shù)組全部排好較出最后兩個數(shù)的大小順序,至此整個數(shù)組全部排好序。每一遍比較需要比較的次數(shù)為要比較數(shù)減一序。每一遍比較需要比較的次數(shù)為要比較數(shù)減一。如。如n=5,n=5,第一遍比較次數(shù)為第一遍比較次數(shù)為4 4(內(nèi)循環(huán)),第二遍比較次數(shù)(內(nèi)循環(huán)),第二遍比較次數(shù)為為3 3 (內(nèi)循環(huán))(內(nèi)循環(huán)) ,第三遍比較次數(shù)為,第三遍比較次數(shù)為2 2 (內(nèi)循環(huán))(內(nèi)循環(huán)) ,第四遍比較次數(shù)為第四遍比較次數(shù)為1 1

26、(內(nèi)循環(huán))(內(nèi)循環(huán)) 。計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5冒泡法的排序過程序號序號 數(shù)數(shù)比 較 遍 數(shù)1234 1 32 2 85 3 16 4 15 5 8321615885161583285158163285815163285計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5 mov cx, 5 mov cx, 5 ; ;元素個數(shù)元素個數(shù) dec cx dec cx ; ;比較遍數(shù)比較遍數(shù): : mov bx, 0mov bx, 0: : mov ax, Abx mov ax, Abx ; ;相鄰兩數(shù)相鄰兩數(shù) cmp

27、ax, Abx+2 cmp ax, Abx+2 ; ; 比較比較 jle continuejle continue xchg ax, Abx+2 xchg ax, Abx+2 ; ;交換位置交換位置 mov Abx, axmov Abx, axcontinue:continue: add bx, 2 add bx, 2 loop loop loop loop 計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch55.2 分支程序設計分支程序設計分支程序根據(jù)條件是真或假決定執(zhí)行與否分支程序根據(jù)條件是真或假決定執(zhí)行與否判斷的條件是各種指令,如判斷的條件是各種指令,如CMP、

28、TEST等執(zhí)行后形成的狀態(tài)標志等執(zhí)行后形成的狀態(tài)標志計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5 5.2.1 5.2.1 分支程序結構形式分支程序結構形式 case 1 case 2 case n? CASE 結構結構 IF-THEN-ELSE 結構結構?計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5 5.2.2 5.2.2 分支程序設計方法分支程序設計方法程序的分支用條件轉移指令程序的分支用條件轉移指令Jxx和和JMP可以實現(xiàn)分支控制;可以實現(xiàn)分支控制; 常用的控制方法有常用的控制方法有計算機科學與技術系計算機科學與技術系 匯

29、編語言匯編語言2022-3-22ch5例:有數(shù)組例:有數(shù)組 x(x1,x2,x10) x(x1,x2,x10) 和和 y(y1,y2,y10)y(y1,y2,y10), 編程計算編程計算 z(z1,z2,z10)z(z1,z2,z10)z1 = x1 + y1z1 = x1 + y1z2 = x2 + y2z2 = x2 + y2z3 = x3 - y3z3 = x3 - y3z4 = x4 - y4z4 = x4 - y4z5 = x5 - y5z5 = x5 - y5z6 = x6 + y6z6 = x6 + y6z7 = x7 - y7z7 = x7 - y7z8 = x8 - y8z8

30、 = x8 - y8z9 = x9 + y9z9 = x9 + y9z10= x10 + y10z10= x10 + y10 邏輯尺:邏輯尺:0 0 1 1 0 1 1 1 0 00 0 1 1 0 1 1 1 0 01 1 減法減法0 0 加法加法(1) 邏輯尺控制邏輯尺控制計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5 x dw x1,x2,x3,x4,x5,x6,x7,x8,x9,x10 x dw x1,x2,x3,x4,x5,x6,x7,x8,x9,x10 y dw y1,y2,y3,y4,y5,y6,y7,y8,y9,y10 y dw y1,y2,y3

31、,y4,y5,y6,y7,y8,y9,y10 z dw z1,z2,z3,z4,z5,z6,z7,z8,z9,z10 z dw z1,z2,z3,z4,z5,z6,z7,z8,z9,z10logic_rule dw logic_rule dw 00dc00dch ;0000,0000,1101,1100h ;0000,0000,1101,1100 mov bx, 0mov bx, 0 mov cx, 10 mov cx, 10 mov dx, logic_rule mov dx, logic_rulenext: mov ax, xbxnext: mov ax, xbx shr dx, 1 sh

32、r dx, 1 jc subtract jc subtract add ax, ybx add ax, ybx jmp short result jmp short result ; ; 向前引用向前引用subtract: subtract: sub ax, ybx sub ax, ybxresult: mov zbx, axresult: mov zbx, ax add bx, 2 add bx, 2 loop next loop next 計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5(2) 條件控制條件控制data segmentdata segment

33、array dw 12,11,22,33,44,55,66 array dw 12,11,22,33,44,55,66 dw 77,88,99,111,222,333 dw 77,88,99,111,222,333 number dw 55 number dw 55 low_idx dw ? low_idx dw ? high_idx dw ? high_idx dw ?data endsdata ends例:例:折半查找算法折半查找算法. .在數(shù)據(jù)段中,有一個按從小到大順序在數(shù)據(jù)段中,有一個按從小到大順序排列的無符號數(shù)字數(shù)組排列的無符號數(shù)字數(shù)組ARRAYARRAY,數(shù)組中的第一個單元存放,數(shù)

34、組中的第一個單元存放著數(shù)組的長度。在著數(shù)組的長度。在AXAX中有一個無符號數(shù),要求在數(shù)組中查中有一個無符號數(shù),要求在數(shù)組中查找找numbernumber,如果找到,則使,如果找到,則使CF=0CF=0,并在,并在SISI中給出該元素在中給出該元素在數(shù)組中的偏移地址;如未找到,則使數(shù)組中的偏移地址;如未找到,則使CF=1CF=1。計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5 12 12 11 11 22 22 33 33 44 44 55 55 66 66 77 77 88 88 99 99111111222222333333 0 0 1 1 2 2 3 3 4

35、 4 5 5 6 6 7 7 8 8 9 9101011111212(ax)=55(ax)=55(si)=0ah(si)=0ahCf=0Cf=0(ax)=90(ax)=90 (si)=10h(si)=10hCf=1Cf=1折半算法折半算法計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5 lea di, arraylea di, array mov ax, number mov ax, number ; ;要查找數(shù)要查找數(shù) cmp ax, di+2 cmp ax, di+2 ; (ax);

36、 (ax)與第一個元素比較與第一個元素比較 ja chk_lastja chk_last lea si, di+2 lea si, di+2 je exit je exit ; (ax); (ax)第一個元素第一個元素, ,找到退出找到退出 stcstc jmp exit jmp exit ; (ax); (ax); (ax)最后一個元素最后一個元素, ,未找到退出未找到退出算法算法計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5compare:compare: cmp ax, bx+si cmp ax, bx+si je exit je exit ja high

37、er ja higher dec cxdec cx mov high_idx, cx mov high_idx, cx jmp mid jmp midhigher:higher: inc cxinc cx mov low_idx, cx mov low_idx, cx jmp mid jmp midno_match:no_match: stc stcexit:exit: search:search: mov low_idx, 1 mov low_idx, 1 mov bx, di mov bx, di ; ;個數(shù)個數(shù) mov high_idx, bxmov high_idx, bx mov b

38、x, di mov bx, dimid:mid: mov cx, low_idx mov cx, low_idx mov dx, high_idx mov dx, high_idx cmp cx, dx cmp cx, dx ja no_match ja no_match add cx, dxadd cx, dx shr cx, 1 shr cx, 1 mov si, cx mov si, cx shl si, 1 shl si, 1計算機科學與技術系計算機科學與技術系 匯編語言匯編語言2022-3-22ch5(3) 地址跳躍表地址跳躍表(值與地址有對應關系的表)(值與地址有對應關系的表)branch_tablebranch_table dw routine1 dw routine1 dw routine2 dw routine2 dw routine3 dw routine3 dw routine4 dw routine4 dw routine5 dw routine5 dw routine6 dw routine6 dw routine7 dw routine7 dw routine8 dw routine8計算機科學與技術系計算機科

溫馨提示

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

評論

0/150

提交評論