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

正文內(nèi)容

第三節(jié)80868088匯編語(yǔ)言(留存版)

  

【正文】 X ;將以前的值 10 XCHG AX, BX ; BX為以前的值 10,準(zhǔn)備 +AX ADD BX, AX ;加本次輸入數(shù)值 JMP NEWCHAR EXIT: RET GETDEC ENDP 轉(zhuǎn)上頁(yè) 回下頁(yè) 66 SHOWHEX PROC NEAR ;十六進(jìn)制形式輸出,入口參數(shù) BX MOV CH, 4 ;循環(huán) 4次 (BX中有 4位 16進(jìn)制數(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)上頁(yè) 回 74頁(yè) 67 寄存器傳遞參數(shù)示例 2: 求數(shù)組元素之和。 過(guò)程必須負(fù)責(zé)保護(hù)和恢復(fù)其所用 REG的原來(lái)數(shù)據(jù)。 ASCBUF DB 35H, 38H, 30H, 4DH, 39H, 32H DB 6 DUP(?) …… MOV DI OFFSET ASCBUF MOV CX, 6 MOV BL, 0FFH ;置錯(cuò)誤標(biāo)志 LAB_1: MOV AL, [DI] CMP AL, 3AH JNB ERR ;大于等于 3A則錯(cuò) SUB AL, 30H JC ERR ;小于 30H也錯(cuò) MOV AH, AL ERR: MOV AH, BL MOV [DI+06H], AH INC DI ;修改部分 LOOP LAB1 54 增量計(jì)數(shù)法例: 計(jì)算 S=1+2+3+?+50, 結(jié)果存入 AX中。DATA’ ORG 10H X DB 20H, 30H ORG $+5 Y DB 40H, 50H D_SEG ENDS 20 30 40 50 10H 17H D_SEG的 00H 32 過(guò)程定義偽指令 格式: 過(guò)程名 PROC [類(lèi)型 ] ?? ;過(guò)程體語(yǔ)句 RET 過(guò)程名 ENDP 操作: 定義過(guò)程,供調(diào)用 說(shuō)明: 可用 CALL或 END啟動(dòng)過(guò)程,用 過(guò)程體中 RET結(jié)束過(guò)程調(diào)用; 類(lèi)型有 NEAR和 FAR兩種 (缺省時(shí)為 NEAR),分別表示可以進(jìn)行段內(nèi)和段間調(diào)用。 程序前綴 (PSP)— 用戶程序與命令行間的接口,占 256字節(jié) 程序前綴區(qū) 程序區(qū) EXE文件加載后結(jié)構(gòu) CS IP=? DS、 ES SS SP=? 思考: 文件加載時(shí),如何得到 CS、 SS值? 回上頁(yè) 回 25頁(yè) 回 39頁(yè) 文件頭 裝入模塊 EXE文件結(jié)構(gòu) 格式化區(qū) 重定位表 程序 代碼 重定位表 — 代碼長(zhǎng)度, 各段 偏移地址、長(zhǎng)度等 100H 24 對(duì) DS、 ES賦值 (指定 )示例: D_SEG SEGMENT ;數(shù)據(jù)段 X DW ?, 4000H, 100 DUP(?) D_SEG ENDS E_SEG SEGMENT ;附加段 STRING DB 39。 PTR示例: DATA1 DB 10H, 20H, 30H DATA2 DW 0123H ?? MOV AX, WORD PTR DATA1 ; (AX)←2022H MOV BL, BYTE PTR DATA2 ; (BL)←23H MOV BYTE PTR[SI], 60H ;字節(jié)傳送 SUB WORD PTR[BX], 36H ;字?jǐn)?shù)據(jù)相減 JMP FAR PTR SUB_P1 ;段間直接轉(zhuǎn)移 JMP WORD PTR[BX] ;段內(nèi)間接轉(zhuǎn)移 回下頁(yè) 轉(zhuǎn)轉(zhuǎn)移地址尋址 12 SHORT格式: 指令助記符 SHORT 標(biāo)號(hào) SHORT功能: 轉(zhuǎn)移地址屬性為短,用 8位位移量表示 SHORT說(shuō)明: 指令助記符可為 JMP/Jx/LOOP/CALL等; 可缺省 SHORT,匯編語(yǔ)言根據(jù)標(biāo)號(hào)與 IP的偏移值自動(dòng)選擇SHORT或 NEAR PTR。 數(shù)據(jù)段 堆棧段 附加段 代碼段 END 標(biāo)號(hào) 主模塊 (1個(gè) ) 數(shù)據(jù)段 附加段 代碼段 END 從模塊 (n個(gè) ) 堆棧段 2 匯編語(yǔ)言程序舉例: DATA SEGMENT BUF1 DB 34H BUF2 DB 2AH SUM DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV AL, BUF1 ADD AL, BUF2 MOV SUM, AL MOV AH, 4CH INT 21H CODE ENDS END START 3 二、匯編語(yǔ)言程序開(kāi)發(fā)過(guò)程 源程序 .asm 目標(biāo)程序 .obj 可執(zhí)行程序 .exe 運(yùn)行結(jié)果 編輯 文本編輯器 匯編 連接 link ① DOS下執(zhí)行 ② debug 執(zhí)行 masm 非編譯 可執(zhí)行程序 . 轉(zhuǎn)換 exe2bin 4 三、匯編語(yǔ)言語(yǔ)句格式 匯編語(yǔ)言程序由若干語(yǔ)句組成。 轉(zhuǎn) 5頁(yè) 8 ( 2)數(shù)字表達(dá)式 為常數(shù)、寄存器名、標(biāo)號(hào) /變量與運(yùn)算符的組合。 E_SEG ENDS …… ;連接 (LINK)時(shí), D_SEG段與 E_SEG段是連續(xù)的 轉(zhuǎn) 19頁(yè) 轉(zhuǎn)上頁(yè) 22 ( 2)指定段寄存器偽指令 格式: ASSUME 段寄存器 :段名 {[,段寄存器 :段名 ]} 操作: 明確段和段寄存器的關(guān)系 說(shuō)明: ①代碼段 中 必須至少有一個(gè) ASSUME語(yǔ)句, ASSUME可以出現(xiàn)在源程序中的任何地方; ②對(duì)同一段寄存器重復(fù)指定時(shí)最后一個(gè)有效。 示例: CONST EQU 100*2 ;定義符號(hào)常數(shù) ADDRS EQU [BX+10] ;為地址表達(dá)式定義名字 30 地址計(jì)數(shù)器和對(duì)準(zhǔn)偽指令 ( 1)地址計(jì)數(shù)器 $ 功能: 保存當(dāng)前正在匯編的指令 (或數(shù)據(jù) )的地址 說(shuō)明: $為有效地址 EA(16位 ); 可參加構(gòu)成表達(dá)式。 如是段內(nèi)分支,每個(gè)地址占兩個(gè)單元 (IP的值 ) 如是段間分支,每個(gè)地址占 4個(gè)單元 (CS:IP的值 ) TABLE SUB3 IP IP IP SUB2 SUB1 TABLE IP CS IP CS SUB2 SUB1 段內(nèi)分支 段間分支 47 例 3: 根據(jù) AL中為 1的位 (從低位到高位 )把程序轉(zhuǎn)移到 8個(gè)不同的程序 (段內(nèi) )分支中去 (跳轉(zhuǎn)表其始位置在變量 TABLE中 )。 注意: 過(guò)程屬性選擇與過(guò)程定義和調(diào)用是否在同一段有關(guān)。 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 ;保護(hù)現(xiàn)場(chǎng) (全部 REG) MOV SI, [BX] ;數(shù)組首地址送 SI MOV DI, [BX+2] ;數(shù)組長(zhǎng)度單元地址 MOV CX, [DI] ;數(shù)組長(zhǎng)度送 CX MOV DI, [BX+4] ;存儲(chǔ)和的單元地址送 DI MOV AX, 0 ADDT: ADD AL, [SI] ADC AH, 0 INC SI LOOP ADDT MOV [DI], AX POPA ;恢復(fù)現(xiàn)場(chǎng) (全部 REG) RET PROADD ENDP 72 堆棧傳遞參數(shù)示例: 求數(shù)組元素之和。 ⑵ 若 LOW> HIGH,則查找失敗,置 CF=1,結(jié)束程序; 否則計(jì)算中點(diǎn): MID← (LOW+HIGH)/2; ⑶ 若 K=R[MID],則查找成功,處理并結(jié)束程序; 若 K< R[MID]則轉(zhuǎn)⑷; 若 K> R[MID],則轉(zhuǎn)⑸。 轉(zhuǎn)上頁(yè) 程序前綴區(qū) INT 20H 其它前綴信息 程序區(qū) 程序 信息 EXE文件加載后結(jié)構(gòu) CS IP=? DS、 ES 38 示例: 存儲(chǔ)單元 NUM中為一個(gè) 16位二進(jìn)數(shù), 將 其中 非零 位的個(gè)數(shù)存入 CNT D_S SEGMENT NUM DW ? CNT DB ? D_S ENDS S_S SEGMENT STACK DB 64 DUP(?) S_S ENDS CODE SEGMENT ASSUME CS:CODE,DS:D_S,SS:S_S MAIN PROC FAR PUSH DS ;段地址 MOV AX, 0 PUSH AX ;偏移地址 MOV AX,D_S MOV DS,AX MOV CX,0 MOV AX,NUM LP1: AND AX,AX JZ DONE SAL AX,1 JNC NEXT INC CL NEXT: JMP LP1 DONE: MOV CNT,CL RET ;偏移地址 ;段地址 MAIN ENDP CODE ENDS END MAIN 39 COM文件結(jié)構(gòu)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1