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

正文內(nèi)容

第三節(jié)80868088匯編語言(文件)

2025-08-19 12:53 上一頁面

下一頁面
 

【正文】 …… 55 條件控制法例 1: 求從 STRN地址開始的以 ‘ $?為結束標志的字符串長度 (長度不超過 100),并存于 LENG單元。若找到, CF=0, SI為該元素在數(shù)組中的偏移地址;否則, CF=1。 回下頁 57 START: MOV AX, K ;取得 K內(nèi)容 MOV LOW_NDX, 1 ;給 LOW(16位 )賦初值 MOV BX, ES:[DI] MOV HIGH_NDX, BX ;給 HIGH(16位 )賦初值 MOV BX, DI ; BX為數(shù)組基址 MOV SI, 2 CMP AX, ES:[BX+SI] ;與第一個數(shù)比較 JA CHK_LAST ; K>第一個數(shù)時轉 JE EXIT ;相等 (第一個數(shù) ),結束 JMP FAIL ;<第一個數(shù),失敗 CHK_LAST: MOV SI, HIGH_NDX ;取數(shù)組長度 SHL SI, 1 ;長度 *2(16位數(shù)據(jù)) CMP AX, ES:[BX+SI] ;與最后的數(shù)比較 JB SEARCH ; K<最后一個數(shù)時轉 JE EXIT ;相等 (最后一個數(shù) ),結束 JMP FAIL ;>最后一個數(shù),失敗 轉上頁 回下頁 58 SEARCH: MOV CX, LOW_NDX MOV DX, HIGH_NDX CMP CX, DX JA FAIL ; LOW> HIGH,失敗 ADD CX, DX SHR CX, 1 ;折半 (LOW+HIGH)/2 MOV SI, CX SHL SI, 1 ; *2 (16位數(shù)據(jù) ) COMPARE: CMP AX, ES:[BX+SI] ;與中間數(shù)比較 JZ EXIT ;相等,找到 JA HIGHER ;大于中間數(shù),轉 MOV HIGH_NDX, CX DEC HIGH_NDX ;調整查找區(qū)間到前半部分 JMP SEARCH HIGHER: MOV LOW_NDX, CX INC LOW_NDX ;調整查找區(qū)間到后半部分 JMP SEARCH FAIL: STC EXIT: …… 轉上頁 59 多重循環(huán)程序設計 例: 對首地址為 A的 N字數(shù)組中的數(shù)從大到小排序。 注意: 過程屬性選擇與過程定義和調用是否在同一段有關。 MOV AL, DL AND AL, 0FH OR AL, 30H MOV [BX], AL POP DX ;恢復現(xiàn)場 POP CX ;注意次序與 POP AX ;保護時相反 RET SUBPRO ENDP 63 二、參數(shù)傳遞方法 參數(shù)傳遞方法一般有三種: ⑴利用寄存器傳遞 — 將入口參數(shù)和出口參數(shù)放在約定的寄存器中; 適用于參數(shù)個數(shù)較少的情況。 D_SEG SEGMENT ARRAY DB 10,20,30,5,60 COUNT EQU $ARRAY ;數(shù)組元素個數(shù) D_SEG ENDS S_SEG SEGMENT PARA STACK DW 100 DUP(?) S_SEG ENDS C_SEG SEGMENT ASSUME CS:C_SEG, DS:D_SEG, SS:S_SEG START: MOV AX, D_SEG MOV DS, AX LEA SI, ARRAY ;參數(shù)準備 MOV CX, COUNT CALL SUM1 ;求和 …… 68 ;子 程 序: SUM1 ;入口參數(shù): SI=數(shù)組首址, CX=數(shù)組長度 ;出口參數(shù): AX=數(shù)組和 ;使用寄存器: AX, CX, SI SUM1 PROC NEAR XOR AX, AX CMP CX,0 JZ EXIT AGAIN: ADD AL, [SI] ADC AH,0 INC SI LOOP AGAIN EXIT: RET SUM1 ENDP 69 直接存儲單元傳遞參數(shù)示例: 求數(shù)組元素之和。 轉 64頁 遞歸程序例: 求階乘。 D_SEG SEGMENT ARRAY DB 100 DUP(?) COUNT DW 100 SUM DW ? TABLE DW 3 DUP(?) ;地址表 D_SEG ENDS …… MOV TABLE, OFFSET ARRAY MOV TABLE+2, OFFSET COUNT MOV TALBE+4, OFFSET SUM ;靠約定指明參數(shù)次序 LEA BX, TABLE CALL PROADD …… ARRAY首址 COUNT地址 SUM地址 TABLE+0 +2 +4 71 ;子 程 序: PROADD ;入口參數(shù): BX=地址表首址 PROADD PROC PUSHA ;保護現(xiàn)場 (全部 REG) MOV SI, [BX] ;數(shù)組首地址送 SI MOV DI, [BX+2] ;數(shù)組長度單元地址 MOV CX, [DI] ;數(shù)組長度送 CX MOV DI, [BX+4] ;存儲和的單元地址送 DI MOV AX, 0 ADDT: ADD AL, [SI] ADC AH, 0 INC SI LOOP ADDT MOV [DI], AX POPA ;恢復現(xiàn)場 (全部 REG) RET PROADD ENDP 72 堆棧傳遞參數(shù)示例: 求數(shù)組元素之和。 ⑶利用堆棧傳遞 — 注意不能破壞 IP和 /或 CS(它們與參數(shù)均在棧中 ) 64 寄存器傳遞參數(shù)示例 1: 從鍵盤取得一個十進制數(shù)(< 65535,以非數(shù)字結束 ),在下一行將其以十六進數(shù)形式顯示出來。 62 例: 定義一個過程,將 AL中的壓縮 BCD碼轉為 ASCII碼,再存入 BX尋址的連續(xù)的兩個內(nèi)存單元中 SUBPRO PROC NEAR PUSH AX ;保護現(xiàn)場 PUSH CX PUSH DX MOV DL, AL MOV CL, 4 SHR AL, CL OR AL, 30H MOV [BX], AL INC BX 寄存器數(shù)據(jù)的保護與恢復 CALL僅保護 IP和 CS,不保護所有通用寄存器。 60 第五節(jié) 子程序 (過程 )設計 轉 32頁 一、子程序 (過程 )設計方法 通過子程序能實現(xiàn)模塊化、減少存儲空間等特點。 ⑵ 若 LOW> HIGH,則查找失敗,置 CF=1,結束程序; 否則計算中點: MID← (LOW+HIGH)/2; ⑶ 若 K=R[MID],則查找成功,處理并結束程序; 若 K< R[MID]則轉⑷; 若 K> R[MID],則轉⑸。 …… LEA BX, STRN MOV DI, 0FFFFH MOV AL, ?$? LP: INC DI CMP AL, [BX+DI] JNZ LP MOV LENG, DI 56 例 2: 附加段中有一 升序排列 的 16位無符號數(shù)數(shù)組,其首地址在 DI中, 數(shù)組頭兩個單元存放數(shù)組長度 。 DATA SEGMENT S1 DB ‘ABCD??XYZ’ DATA ENDS ESTRA SEGMENT S2 DB 26 DUP(?) ESTRA ENDS …… MOV AX, DATA MOV DS, AX ;數(shù)據(jù)段基址 → DS MOV AX, ESTRA MOV ES, AX ;附加段基址 → ES 回下頁 51 方法 1— 用寄存器間接尋址方法 MOV SI, OFFSET S1 ;初始化 MOV DI, OFFSET S2 MOV CX, 26 LOP1: MOV AL, [SI] ;工作部分 MOV ES:[DI], AL INC SI ;修改部分 INC DI LOOP LOP1 ;修改和控制部分 方法 2— 用寄存器相對尋址方法 MOV SI, 0 ;初始化 MOV DI, 0 MOV CX, 26 LOP1: MOV AL, S1[SI] ;工作部分 MOV ES:S2[DI], AL INC SI ;修改部分 INC DI LOOP LOP1 ;修改和控制部分 轉上頁 回下頁 52 方法 3— 用基址變址尋址方法 MOV BX, OFFSET S1 ;初始化 MOV BP, OFFSET S2 MOV SI, 0 MOV DI, 0 MOV CX, 26 LOP1: MOV AL, [BX+SI] ;工作部分 MOV ES:[BP+DI], AL INC SI ;修改部分 INC DI LOOP LOP1 ;修改和控制部分 方法 4— 用串處理命令方法 LEA SI, S1 ;或 MOV OFFSET S1 LEA DI, S2 MOV CX, 26
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1