条件流程控制

上传人:小** 文档编号:54455139 上传时间:2018-09-13 格式:PPT 页数:28 大小:173.50KB
返回 下载 相关 举报
条件流程控制_第1页
第1页 / 共28页
条件流程控制_第2页
第2页 / 共28页
条件流程控制_第3页
第3页 / 共28页
条件流程控制_第4页
第4页 / 共28页
条件流程控制_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《条件流程控制》由会员分享,可在线阅读,更多相关《条件流程控制(28页珍藏版)》请在金锄头文库上搜索。

1、1,條件處理,2,CPU旗標,1. 結果為零,則設定零值旗標。 2. 運算結果太大或太小,設定進位旗標。 3.符號旗標是目的運算元高位元的複製。 4.運算為無效的結果,設定溢位旗標。 5.當運算元中低位元組裡其值為一的位元為偶數個時,設定同位旗標就。,3,CPU旗標,當運算的結果為零,則設定零值旗標。如: AX=1 時SUB AX,1 ; AX=0; ZF=1,4,CPU旗標,當指令所產生的目的運算元之結果太大或太小時,進位旗標會被設定。如: AX=0FFFFhADD AX, 1 ; AX=10000h; CF=1,5,CPU旗標,符號旗標是目的運算元高位元的複製,若符號旗標被設定表示為負,被

2、清除則為正。如: AX=01MOV AX, 08000h ; AX=08000h; SF=1,6,CPU旗標,當指令產生無效的有號結果,則溢位旗標就會被設定。如: AX=07FFFh ; 0ADD AX,1h ; AX=08000h 0; OF=1,7,CPU旗標,當指令造成目的運算元中低位元組裡其值為一的位元為偶數個時,同位旗標就會被設定。如: AX=0A5A5H, AL=A5h=10100101MOV AX,AX ; PF=1,偶數個1,8,AND指令,AND指令完成兩運算元中,相關對應位元間的AND布林運算(按位元的 ( bitwise ) )並且將結果存放於目的運算元 。,9,AND指

3、令(cont.),按位元的 ( bitwise ):相關對應位元間的運算指令格式:AND 目的運算元,來源運算元,0100 0001 0110 0001 1110 0001,10,將字元轉換成大寫字母,AND指令提供了一個簡單的方法將字母從小寫轉換成大寫。 大寫字母 (A,B,C,Z)ASCII碼(41h,42h.) 小寫字母 (a,b,c,z)ASCII碼(61h,62h.),41h0100 000161h0110 0001AND mask1101 1111 61h and mask0100 0001=41h,11,OR指令,OR指令完成兩個運算元間,每對相對應位元的OR布林運算,並且將結果

4、存放於目的運算元: 指令格式:OR 目的運算元,來源運算元,61h0100 000141h0110 0001OR mask0010 0000 41h OR mask0110 0001=61h,12,XOR指令,XOR指令完成兩運算元間相對應位元的互斥或(exclusive-OR)布林運算並且將結果存放於目的運算元。指令格式:XOR 目的運算元,來源運算元,13,清除或設定個別CPU旗標(and, or),設定清除零旗標and al,0 ;ZF=1or al,1 ;ZF=0設定清除符號旗標or al,80h ;SF=1and al,7Fh ;SF=0,14,清除或設定個別CPU旗標 (設定、運算

5、),設定清除進位旗標stc ;CF=1clc ;CF=0 設定清溢位旗標mov al,7Fh inc al ;OF=1or eax,0 ;OF=0,15,條件跳越,根據運算結果更改程式流程, 提供此功能之指令稱條件跳越指令 一般應用條件跳越指令完成分支流程圖(基本條件結構),16,條件結構,在IA-32指令集中没有高階的邏輯結構,但無論多複雜的結構都能使用比較(comparisons)和跳越(jumps)的組合來完成。,CMP,Jcond,cmp al,0Jz L1 L1:,and al,B0hJnz L2 L2:,17,Jcond指令,當旗標條件為true時條件跳越指令會分支到目的標號(de

6、stination label),若旗標條件為false時則會執行緊接在條件跳越之後的指令。,Jcond destination(是) ; 否,18,Jcond指令(cont.),限制:要求跳越的目的地必須是現行程序內的標號,能以宣告全域標號(其後接:)來免除這個限制 跳越的範圍必須是下一個指令偏移量的-128到+127位元組內。,19,使用CMP指令,最常使用之運算指令為CMP (因為不會更改運算元數值) 如:,CMP AX,5 ; AX=5? JE L1,CMP AX,6 ; AX4? JG L1,20,條件結構,區塊結構IF敘述 IF (複合運算式) WHILE迴圈,21,區塊結構IF敘

7、述,if(運算式)敘述列表1else敘述列表2,If (op1=op2) X=1;Y=2; ,22,區塊結構IF敘述(cont.),範例1 使用Java/C+語法,如果 op1和op2相等則執行兩個指定敘述:,If (op1=op2) X=1;Y=2; ,23,MASM,If (op1=op2) X=1;Y=2; ,MOV eax, op1CMP eax, op2JE L1JMP L2 L1:mov X,1mov Y,2 L2:,24,複合運算式,右圖之運算式除基本之判斷運算外, 也可是多層級之複合運算式, 如: (a1b1)AND (b1c1) (a1b1) OR (b1c1),25,AND

8、邏輯運算子,If(a1b1)AND(b1c1) 第一個運算式第二個運算式,CMP al, blJA L1JMP NEXT L1:,CMP bl, clJA L2JMP NEXT L2:mov X,1 Next:,26,OR邏輯運算子,If(a1b1)OR(b1c1) 第一個運算式第二個運算式,CMP al, blJA L1,CMP bl, clJBE NEXT L1:mov X,1 Next:,(below equal) =JA不成立,27,WHILE迴圈,WHILE 結構在執行一區塊的敘述前會先測試一條件是否成立,只要條件保持成立那麼這些敘述就會重複執行這些敘述,以下的使用C+所寫的迴圈while (val1val2)val1+;val2-; ,28,WHILE迴圈(cont.),while (val1val2) val1+;val2-; ,Mov eax, val1 while:CMP eax,val2JNL endwhileINC eaxDEC val2JMP while endwhile:MOV val1, eax,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号