九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

第4章分支程序設計

  • 資源ID:239603964       資源大?。?span id="24d9guoke414" class="font-tahoma">588KB        全文頁數(shù):34頁
  • 資源格式: PPT        下載積分:10積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

第4章分支程序設計

第4章 分支程序設計第4章 分支程序設計4.1 條件標志位的設置規(guī)則4.2 轉移指令4.2.1 無條件轉移指令4.2.2 條件轉移指令4.3 分支結構程序設計 控制轉移類指令通過改變控制轉移類指令通過改變IP(和和CS)值,實現(xiàn)程序執(zhí)行順序的改變值,實現(xiàn)程序執(zhí)行順序的改變第4章 分支程序設計4.1 條件標志位的設置規(guī)則決定轉移的標志位(1)進位標志CF當無符號數(shù)運算結果的最高有效位有進位(加法)或借位(減法)時,進位標志置1;否則置0(2)零標志ZF若運算結果為0,則ZF=1;否則ZF=0(3)符號標志SF運算結果最高位為1,則SF=1;否則SF=0(4)溢出標志 OF 若無符號數(shù)運算的結果有溢出,則OF1;否則 OF0(5)奇偶標志 PF當運算結果中“1”的個數(shù)為零或偶數(shù)時,PF=1;否則PF=0第4章 分支程序設計4.1 條件標志位的設置規(guī)則MOV指令不影響標志位;加減指令影響上述所有標志,但增1和減1指令不影響CF;乘除指令只影響CF和OF設AX=78C4H,BX=9F35H.通過示例觀察每條指令執(zhí)行后對標志位的影響CFSFOFZFPFADD AX,BX1000ADD AH,AL0110ADD AH,BL0100SUB AX,BXSUB BX,BXSUB AH,BH第4章 分支程序設計4.2.1 無條件轉移指令(OPD+2)CS注意注意:實實際際編編程程時時,匯匯編編程程序序會會根根據(jù)據(jù)目目標標地地址址的的距距離離,自自動動處處理理成成短短轉轉移移、近近轉轉移移或遠轉移或遠轉移 程序員可用操作符程序員可用操作符short、near ptr 或或far ptr 強制強制返回首頁返回首頁JMP FAR PTR JMP FAR PTR 標號標號JMP NEAR PTR JMP NEAR PTR 標號標號JMP DWORD PTR OPDJMP DWORD PTR OPDJMP WORD PTR OPDJMP WORD PTR OPD第4章 分支程序設計例 請寫出下列轉移指令的尋址方式,并求出執(zhí)行該轉移指令后,IP寄存器、CS寄存器的內容是什么?TABLE是字變量,變量的值是100H;PROG是近標號,表示偏移地址200H,ECX的內容02D3 7650H,段屬性值為38E0H。當前IP的內容是1000H,CS的內容是38ACH,DS的內容是28E0H,BX的內容是10H,DI的內容是20H。JMP PROG JMP WORD PTR BX JMP DWORD PTR TABLEBX JMP ECX JMP FAR PTR PROG JMP BXDI 段間間接尋址執(zhí)行該指令后(IP)=(DS)*10H+(BX)+位移量)的低字=(28F10H)低字,(CS)=(DS)*10H+(BX)+位移量)的高字=(28F10H)高字 段間間接尋址,執(zhí)行該指令后(IP)=(ECX)低字=7650H,(CS)=(ECX)高字=02D3H 段間直接尋址,執(zhí)行該指令后(IP)=(PROG)偏移屬性=0200H,(CS)=(PROG)段屬性=38E0H 段內間接尋址,執(zhí)行該指令后(IP)=(DS)*10H+(BX)+(DI)=(28E00H+10H+20H)=(28E30H)段內直接程序存儲器尋址執(zhí)行該指令后(IP)=(PROG)偏移屬性=0200H 段內間接程序存儲器尋址執(zhí)行該指令后(IP)=(DS)*10H+(BX)=(28E00H+10H)=(28E10H)第4章 分支程序設計JMP指令:段內直接轉移第4章 分支程序設計JMP指令:段內寄存器間接轉移第4章 分支程序設計JMP指令:段間直接轉移第4章 分支程序設計JMP指令:段間間接轉移第4章 分支程序設計4.2.2 條件轉移指令1簡單條件轉移指令2無符號數(shù)條件轉移指令3.有符號數(shù)條件轉移指令 格式格式:Jcc:Jcc 短標號短標號功能功能:指定的條件指定的條件cccc如果成立,程序轉移到由短標號指定的如果成立,程序轉移到由短標號指定的目標地址去執(zhí)行指令;條件不成立,則程序將順序執(zhí)行轉移目標地址去執(zhí)行指令;條件不成立,則程序將順序執(zhí)行轉移指令的下一條指令指令的下一條指令返回首頁返回首頁條件標志位的設置規(guī)則條件標志位的設置規(guī)則第4章 分支程序設計1簡單條件轉移指令例題例題4.1例題例題4.2例題例題4.3例題例題4.4例題例題4.5第4章 分支程序設計2無符號數(shù)條件轉移指令【例】比較無符號數(shù)大小,將較大的數(shù)存放AX寄存器CMPAX,BX ;(AX)(BX)JNB NEXT ;若AX=BX,轉移到NEXTXCHGAX,BX ;若AX=BXAX=BX,轉移到,轉移到NEXTNEXTXCHGXCHGAXAX,BXBX;若;若AXBXAXBX,交換,交換NEXTNEXT:第4章 分支程序設計4.2 分支結構程序設計4.2.1 匯編語言程序設計的一般步驟4.2.2 流程圖4.2.3 分支程序設計返回首頁返回首頁第4章 分支程序設計4.2.1 匯編語言程序設計的一般步驟匯編語言程序設計一般有以下幾個步驟:1分析問題,確定算法2繪制流程圖3根據(jù)流程圖編制程序5調試程序返回本節(jié)返回本節(jié)第4章 分支程序設計4.2.2 流程圖1流程圖的概念流程圖是由特定的幾何圖形、指向線、文字說明來表示數(shù)據(jù)處理的步驟,形象描述邏輯控制結構以及數(shù)據(jù)流程的示意圖。流程圖具有簡潔、明了、直觀的特點。2流程圖符號表示流程圖符號表示(1)起止框:表示程序的開始和結束。)起止框:表示程序的開始和結束。起止框起止框(2)判斷框)判斷框(3)處理框)處理框(4)調用框)調用框(5)指向線)指向線(6)連接框)連接框 返回本節(jié)返回本節(jié)第4章 分支程序設計4.2.3 分支程序設計一、用條件轉移指令實現(xiàn)程序分支二、多路分支練習分支程序根據(jù)條件是真或假決定執(zhí)行不同的程序段分支程序根據(jù)條件是真或假決定執(zhí)行不同的程序段判斷的條件是各種指令,如判斷的條件是各種指令,如CMP、TEST等執(zhí)行后等執(zhí)行后形成的狀態(tài)標志形成的狀態(tài)標志通過轉移指令可以實現(xiàn)分支控制通過轉移指令可以實現(xiàn)分支控制返回本節(jié)返回本節(jié)第4章 分支程序設計一、用條件轉移指令實現(xiàn)程序分支1、單分支 例例4.64.6計算計算AXAX的絕對值的絕對值法法1:cmp ax,01:cmp ax,0 jns nonnegjns nonneg;分支條件:分支條件:AX0AX0 neg ax ;neg ax ;條件不滿足,求補條件不滿足,求補nonneg:nonneg:mov result,axmov result,ax;條件滿足條件滿足 BadAx0?Ax求補n法法2:cmp ax,0 jl yesneg;分支條件:分支條件:AX0 jmp nonnegyesneg:neg ax ;條件不滿足,求補條件不滿足,求補nonneg:mov result,ax;條件滿足條件滿足第4章 分支程序設計【例4.7】無符號數(shù)除以2 將AX中存放的無符號數(shù)除以2,如果是奇數(shù),則加1后除以2 test ax,01htest ax,01h;測試測試AXAX最低位最低位jz evenjz even;最低位為最低位為0 0:AXAX為偶數(shù)為偶數(shù)add ax,1add ax,1;最低位為最低位為1 1:AXAX為奇數(shù),需要加為奇數(shù),需要加1 1even:even:rcr ax,1rcr ax,1;AXAX;AXAX2 2注意:如果采用注意:如果采用SHRSHR指令,則不能處理指令,則不能處理AXAXFFFFHFFFFH的特殊情況的特殊情況第4章 分支程序設計2、雙分支第4章 分支程序設計例、比較兩個字符串是否相等,等則顯示YES,不等時顯示NODATA SEGMENTS1 DB 1234GR9L1EQU$-S1S2 DB 1234GF5L2EQU$-S2RES1 DB YES,$RES2 DB NO,$DATA ENDSCODESEGMENTASSUME DS:DATA,CS:CODE START:MOVAX,DATAMOV DS,AXMOV CX,L1CMP CX,L2JNZ RESULTNST:CLDLEA SI,S1LEA DI,S2REPZ CMPSBJNZ RESULTNLEA DX,RES1JMP DISPRESULTN:LEA DX,RES2DISP:MOV AH,9INT 21HMOV CX,4C00HINT 21HCODE ENDS END START第4章 分支程序設計【練習】試編一程序,求三個帶符號字數(shù)據(jù)中的最大值,并將最大值存入MAX字單元中。設三個帶符號數(shù)分別在三個字變量X、Y、Z中存儲。STACSEGMENT STACK DB 200 DUP(0)STACK ENDSDATASEGMENTX DW 00ABHY DW 5Z DW 200MAXDW?DATAENDSCODE SEGMENTASSUME DS:DATA,SS:STACK,CS:CODE START:MOVAX,DATA MOVDS,AX MOVAX,X CMPAX,Y;XY?JG LL MOVAX,Y;YZ?LL:CMPAX,Z JG EXIT MOVAX,ZEXIT:MOVMAX,AX MOVAX,4C00H INT 21HCODE ENDS ENDSTART返回返回第4章 分支程序設計二、多分支程序設計1)由多個雙分支構成多分支2)地址法表實現(xiàn)多分支3)轉移法表實現(xiàn)多分支4)邏輯分解法實現(xiàn)多分支返回返回第4章 分支程序設計1)由多個雙分支構成多分支 1X0Y=0X=0 -1X設輸入數(shù)據(jù)為X、輸出數(shù)據(jù)Y,且皆為字節(jié)變量。DATASEGMENTX DB -10Y DB?DATAENDSSTACK SEGMENT STACK DB 200 DUP(0)STACK ENDSCODE SEGMENTASSUME DS:DATA,SS:STACK,CS:CODESTART:MOVAX,DATA MOVDS,AX CMPX,0;與;與0進行比較進行比較 JSA2JNSA1;X0轉轉A1MOVY,0 JMPEXITA1:MOV Y,1 JMPEXITA2:MOVY,-1EXIT:MOVAX,4C00H INT21H CODE ENDS ENDSTART返回本節(jié)返回本節(jié)Y=1Y=-1Y=0X0第4章 分支程序設計2)地址法表實現(xiàn)多分支將各分支程序段的入口地址依次存入數(shù)據(jù)段的一個表中,形成地址表。取各分支程序段的編號作為各分支入口地址的表地址的位移量。某程序段入口地址的表地址為:表地址=編號*2+入口地址首地址例如:從低到高逐位檢查一個字節(jié)數(shù)據(jù),找出第一個非例如:從低到高逐位檢查一個字節(jié)數(shù)據(jù),找出第一個非0位的位的數(shù),并顯示其位置數(shù),并顯示其位置DATASEGMENTNUMDB78HADDR DwAD0,AD1,AD2,AD3,AD4,AD5,AD6,AD7 DATAENDS右移1位顯示?=0?顯示相應位數(shù)CF=0?取數(shù)第4章 分支程序設計CODE SEGMENTASSUME DS:DATA,CS:CODE START:MOVAX,DATAMOVDS,AXMOV AL,NUMMOVDL,?CMP AL,0JZEXIT MOV BX,0AGAIN:SHRAL,1JCNEXTINCBXJMPAGAINNEXT:SHLBX,1JMPADDRBXAD0:MOVDL,30HJMPEXITAD1:MOVDL,31HJMPEXITAD2:MOVDL,32HJMPEXIT AD3:MOVDL,33HJMPEXITAD4:MOVDL,34HJMPEXITAD5:MOVDL,35HJMPEXITAD6:MOVDL,36HJMPEXITAD7:MOVDL,37HEXIT:MOV AH,2INT 21HMOVAX,4C00HINT21HCODE ENDSEND START返回本節(jié)返回本節(jié)右移1位顯示?=0?顯示相應位數(shù)CF=0?取數(shù)第4章 分支程序設計3)轉移法表實現(xiàn)多分支【例4.9】設某程序有8路分支,試根據(jù)給定的N值(18),將程序的執(zhí)行轉移到其中的一路分支。多個條件對應各自的分支語句體,哪個條件成立就轉入相應分多個條件對應各自的分支語句體,哪個條件成立就轉入相應分支體執(zhí)行。多分支可以化解為雙分支或單分支結構的組合支體執(zhí)行。多分支可以化解為雙分支或單分支結構的組合DATASEGMENT TAB DW P1,P2,P3,P4,P5,P6,P7,P8 N DB 5DATAENDSSTACK SEGMENT DB 200 DUP(0)STACK ENDSCODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE START:MOVAX,DATAMOVDS,AX MOVAL,NDELALADDAL,ALMOVBL,ALMOVBH,0JMPTABBXP1:JMPEXITP2:JMPEXITP2:JMPEXITP3:JMPEXIT P8:EXIT:MOVAX,4C00H INT21HCODEENDS ENDSTART返回本節(jié)返回本節(jié)無條件轉移指令的轉移地址采用的是變址尋址。若轉移地址用寄存器間無條件轉移指令的轉移地址采用的是變址尋址。若轉移地址用寄存器間接尋址或基址加變址尋址則應如何修改程序接尋址或基址加變址尋址則應如何修改程序?MOVAL,NDELALADDAL,ALMOVBL,ALMOVBH,0JMPTABBXP1:JMPEXITP2:JMPEXITLEA BX,TABMOV AH,0ADD BX,AXJMP BX第4章 分支程序設計4)邏輯分解法實現(xiàn)多分支按照條件的先后,依次分解成一串雙分支結構,然后按雙分支的方法進行程序設計例如:根據(jù)例如:根據(jù)NUM中的內容執(zhí)行不同的操作中的內容執(zhí)行不同的操作AL=0顯示1顯示0AL=1顯示2AL=2顯示3AL=3DATASEGMENTNUM DB 2DATAENDSCODE SEGMENTASSUME DS:DATA,CS:CODE START:MOVAX,DATAMOVDS,AXMOV AL,NUMCMP AL,0JZNEXT0CMPAL,1JZNEXT1CMPAL,2JZNEXT2CMPAL,3JZNEXT3NEXT0:MOVDL,30HJMPEXITNEXT1:MOVDL,31HJMPEXITNEXT2:MOVDL,32HJMPEXITNEXT3:MOVDL,33HJMPEXITEXIT:MOV AH,2INT 21HMOVAX,4C00HINT21HCODE ENDSEND START返回本節(jié)返回本節(jié)第4章 分支程序設計練習1、用分支結構實現(xiàn)將AL中的最高位內容顯示出來2、若已定義整數(shù)變量A、B,編程實現(xiàn)如下功能1)若兩數(shù)一奇一偶,將奇數(shù)存入A,偶數(shù)存入B2)若兩數(shù)均是奇數(shù),則兩數(shù)均加1后存入原變量單元3)若兩數(shù)均是偶數(shù),則兩變量均不變TEST AL,80HJZ NT1MOV DL,31HJMP DISPNTI:MOV DL,30HDISP:MOV AH,2INT 21H返回返回

注意事項

本文(第4章分支程序設計)為本站會員(仙***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

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

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


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