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

正文內(nèi)容

第三節(jié)80868088匯編語言-資料下載頁

2025-08-01 12:53本頁面
  

【正文】 ROC 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,不保護所有通用寄存器。 過程必須負責保護和恢復其所用 REG的原來數(shù)據(jù)。 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ù)較少的情況。 ⑵利用內(nèi)存緩沖區(qū)傳遞 — 有 直接存儲單元傳遞和地址表傳遞兩種方法,前者用名字區(qū)分參數(shù),后者用下標區(qū)分參數(shù); 適合于參數(shù)個數(shù)較多的情況。 ⑶利用堆棧傳遞 — 注意不能破壞 IP和 /或 CS(它們與參數(shù)均在棧中 ) 64 寄存器傳遞參數(shù)示例 1: 從鍵盤取得一個十進制數(shù)(< 65535,以非數(shù)字結(jié)束 ),在下一行將其以十六進數(shù)形式顯示出來。 MAIN PROC FAR CALL GETDEC ;取得十進制數(shù),以二進制保存到 BX MOV DL, 0DH CALL SHOWCH ;顯示回車 MOV DL, 0AH CALL SHOWCH ;顯示換行 CALL SHOWHEX ;顯示 BX(十六進制形式 ) RET MAIN ENDP SHOWCH PROC NEAR ;輸出字符, DL為入口參數(shù) (ASCII) MOV AH, 2 INT 21H ;輸出 DL中字符 RET SHOWCH ENDP 回下頁 回 74頁 65 GETDEC PROC NEAR ;從鍵盤取十進制數(shù),出口參數(shù) BX MOV BX, 0 NEWCHAR: MOV AH, 1 INT 21H ;讀鍵盤,輸入鍵值 (ASCII)在 AL中 SUB AL, 30H JL EXIT ;小于 0轉(zhuǎn) CMP AL, 9 JG EXIT ;大于 9轉(zhuǎn) CBW ;字節(jié)轉(zhuǎn)換成字 XCHG AX, BX ;以前的值 → AX,準備 10 MOV CX, 10 MUL CX ;將以前的值 10 XCHG AX, BX ; BX為以前的值 10,準備 +AX ADD BX, AX ;加本次輸入數(shù)值 JMP NEWCHAR EXIT: RET GETDEC ENDP 轉(zhuǎn)上頁 回下頁 66 SHOWHEX PROC NEAR ;十六進制形式輸出,入口參數(shù) BX MOV CH, 4 ;循環(huán) 4次 (BX中有 4位 16進制數(shù)) ROTATE: MOV CL, 4 ROL BX, CL ;循環(huán)左移四位,從最高位輸出 MOV AL, BL AND AL, 0FH OR AL, 30H CMP AL, 3AH JL SHOWIT ;是 09 ADD AL, 7 ;是 AF SHOWIT: MOV DL, AL CALL SHOWCH ;顯示 DL中字符 DEC CH JNZ ROTATE RET SHOWHEX ENDP 轉(zhuǎn)上頁 回 74頁 67 寄存器傳遞參數(shù)示例 2: 求數(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ù)組元素之和。 D_SEG SEGMENT ARRAY DB 100 DUP(?) COUNT DW 100 ;數(shù)組元素個數(shù) SUM DW ? D_SEG ENDS …… PROADD PROC PUSH AX ;保存現(xiàn)場 PUSH CX PUSH SI XOR AX, AX LEA SI, ARRAY ;直接使用存儲單元中數(shù)據(jù) MOV CX, COUNT NEXT: ADD AL, [SI] POP SI ADC AH, 0 POP CX INC SI POP AX LOOP NEXT RET MOV SUM, AX PROADD ENDP 70 地址表傳遞參數(shù)示例: 求數(shù)組元素之和。 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ù)組元素之和。 …… ;主程序 LEA BX, ARRAY PUSH BX ;參數(shù)進棧 LEA BX, COUNT PUSH BX LEA BX, SUM PUSH BX CALL FAR PTR PROADD …… PROADD PROC FAR PUSH BP ;保護現(xiàn)場 MOV BP, SP PUSH AX PUSH CX PUSH SI PUSH DI 73 MOV SI, [BP+10] ;數(shù)組首地址送 SI MOV DI, [BP+8] MOV CX, [DI] MOV DI, [BP+6] MOV AX, 0 ADDT: ADD AL, [SI] ADC AH, 0 INC SI LOOP ADDT MOV [DI], AX POP DI POP SI POP CX POP AX POP BP RET 6 ;調(diào)用參數(shù)出棧 PROADD ENDP SP (DI) (SI) (CX) (AX) (原 BP) (IP) (CS) SUM地址 COUNT地址 ARRAY地址 BP BP+6 BP+8 BP+10 74 三、子程序嵌套與遞歸 子程序嵌套例: 課件 P64例。 轉(zhuǎn) 64頁 遞歸程序例: 求階乘。 …… N DB 4 RESULT DW ? …… MOV AL, N CALL FACT ADD1: MOV RESULT, DX …… n≤1 n進棧 T F n←n 1 遞歸調(diào)用 彈出 n F←F*n 遞歸返回 F←1 75 ;入口參數(shù) AL=N ;出口參數(shù) N!=DX FACT PROC CMP
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1