freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基本結(jié)構(gòu)程序設(shè)計方法(編輯修改稿)

2025-02-03 04:05 本頁面
 

【文章內(nèi)容簡介】 pn code endsn end star 28【例 】試編寫一程序,要求比較兩個字符串 STR1和 STR所含字符是否相同,若相同則顯示 ‘MATCH! ’,若不相同則顯示 ‘NO MATCH! ’。 (程序略 )其流程圖如圖 。 29?圖 程序流程圖30【例 】試編一個程序?qū)⒆謫卧?BUF中所含 1的個數(shù)存入 COUNT單元中。 要測出 BUF字單元所含 1的個數(shù),首先將 BUF中的數(shù)送給寄存器 AX,然后將 AX寄存器邏輯左移一次,如果 CF=1,則表明 AX中的最高位為 1,則計數(shù)器 CL計數(shù) 1次,如果 CF=0,表明 AX最高位為0,這樣依次將最高位移入 CF中去測試。移位之后,判斷 AX的值是否為 0,如果為 0則結(jié)束循環(huán),不為 0,則繼續(xù)循環(huán)。 其流程圖如圖 。2.條件控制 3132程序如下:STACK SEGMENT STACK DB 200 DUP( 0)STACK EDNSDATA SEGMENTBUF DW 0011110010101011BCOUNTDB ?DATA ENDSCODE SEGMENT ASSUME DS: DATA, CS: CODE, SS:STACK 33START: MOV AX, DATAMOV DS, AXMOV AX, BUFMOV CL, 0;計數(shù)器為 0LOPA: AND AX, AX。使 CF位為 0JE EXIT ;( AX) =0,結(jié)束循環(huán)SHL AX, 1; AX 左移一位JNC LOPAINC CL ;產(chǎn)生進位,( CL) +1→CLJMP LOPAEXIT: MOV COUNT, CLMOV AH, 4CHINT 21HCODE ENDSEND START 34多重循環(huán)程序設(shè)計【例 】在以 BUF為首址的字存儲區(qū)中存放有 N個有符號數(shù),現(xiàn)需將它們按大到小的順序排列在 BUF存儲區(qū)中,試編寫其程序。我們采用 冒泡排序 算法從第一個數(shù)開始依次對相鄰兩個數(shù)進行比較,如次序?qū)?,則不交換兩數(shù)位置;如次序不對則使這兩個數(shù)交換位置??梢钥闯?, 第一遍需比較( N1)次 ,此時, 最小的數(shù)已經(jīng)放到了最后 ; 第二遍比較只需考慮剩下的( N1)個數(shù),即只需比較( N2)次 ;第三遍只需比較( N3)次, …… 整個排序過程最多需 ( N1)遍 。如下面的 4個數(shù)即是采用冒泡排序比較的例子。 35數(shù) 10 8 16 90 32第一遍 10 16 90 32 8第二遍 16 90 32 10 8第三遍 90 32 16 10 8程序流程圖如圖 。3637程序如下:DATA SEGMENT BUF DW 3, 4, 6, 7, 9, 2, 0, 8, 9, 10, 20 N=($ BUF) /2DATA ENDSSTACK SEGNMENT STACK DB 200 DUP( 0)STACK ENDSCODE SEGMENT ASSUME CS: CODE, DS: DATA, SS:STACK 38START: MOV AX, DATAMOV DS, AXMOV CX, NDEC CX;設(shè)計數(shù)器 CX內(nèi)循環(huán)39LOOP1: MOV DX, CX;設(shè)計數(shù)器 DX外循環(huán) MOV BX, 0LOOP2: MOV AX, BUF[BX]CMP AX, BUF[BX+2]JGE L。=,不變,否則交換XCHG AX, BUF[BX+2]MOV BUF[BX], AXL: ADD BX, 2DEC CXJNE LOOP2;相當(dāng)于 LOOP LOOP2MOV CX, DX;LOOP LOOP1 40MOVAH, 4CHINT 21HCODE ENDSEND START程序運行后, BUF區(qū)中的內(nèi)容如下:20, 9, 7, 6, 3, 2, 0, 4, 8, 9, 10若要對 N個無符號數(shù)按由小到大的順序排列,只需將指令 “JGE L”改為 “JLE L”即可。 41子程序設(shè)計 子程序的概念 子程序的定義 子程序設(shè)計方法 子程序應(yīng)用舉例 子程序的嵌套與遞歸調(diào)用42子程序的概念在程序設(shè)計中,我們會發(fā)現(xiàn)一些多次 無規(guī)律重復(fù)的程序段 或 語句序列 。解決此類問題一個行之有效的方法就是將它們設(shè)計成可供反復(fù)調(diào)用的 獨立的子程序 結(jié)構(gòu),以便在需要時調(diào)用。在匯編語言中,子程序又稱 過程 。調(diào)用子程序的程序稱為主調(diào)程序或主程序。 43子程序的定義 子程序的定義是由過程定義偽指令 PROC和 ENDP來完成的。其格式如下:過程名 PROC [NEAR/FAR] ┆過程名 ENDP 其中 PROC表示 過程定義開始 , ENDP表示過程定義結(jié)束 。過程名是過程入口地址的符號表示。 一般過程名同標(biāo)號一樣,具有三種屬性,即段屬性、偏移地址屬性以及類型屬性。 44子程序設(shè)計方法1.信息的保護與恢復(fù)2.主程序與子程序參數(shù)傳遞方式451.信息的保護與恢復(fù)例如:若子程序 PROG中改變了寄存器 AX, BX, CX, DX的值,則可采用如下方法保護和恢復(fù)現(xiàn)場。PROG PROCPUSH AXPUSH BX PUSH CX ;保護現(xiàn)場PUSH DX┆ 46┆ POPDXPOPCXPOPBX ;恢復(fù)現(xiàn)場POPAXRET;返回斷點處PROC ENDP472.主程序與子程序參數(shù)傳遞方式(( 1)寄存器法)寄存器法(( 2)約定單元法)約定單元法(( 3)堆棧法)堆棧法48子程序應(yīng)用舉例【例 】將一個給定的二進制數(shù)按位轉(zhuǎn)換成相應(yīng)的 ASCII碼字符串,送到指定的存儲單元并顯示。如二進制數(shù) 10010011轉(zhuǎn)換成字符串為 ‘10010011’。要求將轉(zhuǎn)換過程寫成子程序,且子程序應(yīng)具有較好的通用性,而必須能實現(xiàn)對 8倍和 16倍二進制數(shù)的轉(zhuǎn)換。49入口參數(shù) :DX存放待轉(zhuǎn)換的二進制數(shù)CX存放待轉(zhuǎn)換數(shù)的位數(shù)( 8位或 16位)DI存放 ASCII碼首地址出口參數(shù) :轉(zhuǎn)換后的字符串存放在以 DI作指針的字節(jié)存貯區(qū)中程序如下:DATA SEGMENTNUM8 DB 93HNUM16 DW 0ABCDHASCBUF DB 20 DUP( 0)DATA ENDS 50CODE SEGMENT ASSUME DS: DATA, CS: CODE, SS: STACKSTART: MOV AX, DATAMOV DS, AXMOV DX, 0MOV DL, NUM8 ;轉(zhuǎn)換二進制數(shù)送 DXMOV CX, 8 ;置位數(shù) 8LEA DI, ASCBUF ;字符串首址 →DICALL BTASC ;調(diào)用子程序 BTASCMOV BYTE PTR [DI], 0DHMOV BYTE PTR [DI+1], 0AH51 MOV BYTE PTR [DI+2], ‘$’LEA DX, ASCBUFMOV AH, 9INT 21HMOV DX, NUM16MO
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1