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

正文內(nèi)容

工學(xué)指令系統(tǒng)ppt課件-資料下載頁

2024-12-08 04:10本頁面
  

【正文】 3. 串存取指令 ( 1) LODS:從串取指令 串取指令有 3種格式: ① LODS src (字節(jié)) (AL)?((DS):(SI)),(SI)?(SI)177。 1 (字) (AX)?((DS):(SI)),(SI)?(SI)177。 2 ② LODSB (字節(jié)) (AL)?((DS):(SI)),(SI)?(SI)177。 1 ③ LODSW (字) (AX)?((DS):(SI)),(SI)?(SI)177。 2 功能: 將由 SI 指定的數(shù)據(jù)段中某單元內(nèi)容 ? AL 或 AX 中, DF=0: SI ← SI +1 或 +2; DF=1: SI ← SI –1 或 2。 第 3章 80X86/Pentium指令系統(tǒng) LODS應(yīng)用注意: ① 指令允許用段超越前綴來指定非數(shù)據(jù)段的存儲區(qū)。 ② 該指令不影響標(biāo)志位。 ③ 一般說來, 每用一次,累加器的內(nèi)容就改變一次。若重復(fù) 使用, AL中只能保持最后一個元素。 ④ 有時緩沖區(qū)中的一串字符需要多次取出測試時可用本指令。 實(shí)際上是目標(biāo)串固定為累加器的串傳送指令 第 3章 80X86/Pentium指令系統(tǒng) ( 2) STOS:存入串指令 功能: 將 AL 或 AX ?((ES):(DI)), DI177。 1(177。 2)? DI。 用途 : 與 REP聯(lián)用, CX ← 緩沖區(qū)長度。用來建立一串相同值。 存入串指令有 3種格式: ① STOS dest ; (字節(jié)) ((ES):(DI)) ?(AL),(DI)?(DI)177。 1 (字) ((ES):(DI)) ? (AX) , (DI) ?(DI) 177。 2 ② STOSB (字節(jié)) ; ((ES):(DI)) ? (AL) , (DI) ?(DI) 177。 1 ③ STOSW (字) ; ((ES):(DI)) ? (AX) , (DI) ?(DI) 177。 2 例: 內(nèi)存中有一個首地址為 BLOCK,補(bǔ)碼表示的有符號數(shù)的數(shù)據(jù)塊。 要求將正、負(fù)數(shù)分開,分別存于兩個緩沖區(qū) : 存放正數(shù)的緩沖區(qū)首址為 PLUS_DATA; 存放負(fù)數(shù)的緩沖區(qū)首址為 MINUS_DATA。 設(shè): 源數(shù)據(jù)塊用 SI尋址。 正數(shù)的目標(biāo)區(qū)用 DI尋址,負(fù)數(shù)的目標(biāo)區(qū)用 BX尋址。 循環(huán)次數(shù) ? CX。 實(shí)際上是源串固定為累加器的串傳送指令 傳送過程: ① 用 LODS指令把源數(shù)據(jù)取入 AL中; ② 檢查其符號確定正負(fù):若為正用 STOS指令送至正數(shù)緩沖區(qū); 若是負(fù)數(shù),把 DI 與 BX 交換,仍使用 STOS傳送。 ③ 傳送 完后再 將 DI 與 BX 交換,恢復(fù)原值。 第 3章 80X86/Pentium指令系統(tǒng) 程序見下頁 3. 串比較指令 CMPS OPRD1, OPRD2 功能: 將 DS:SI指定的源串中的元素與 ES:DI指定的目標(biāo)串中的相 應(yīng)元素相減,但兩個存儲單元中的內(nèi)容不變,而是用標(biāo)志 位的變化表示比較結(jié)果。同時根據(jù)方向標(biāo)志 DF自動修改源 和目標(biāo)串指針 SI、 DI。 OPRD OPRD2分別為源串和目標(biāo)串的符號地址。 串比較指令 有 3種格式: ① CMPS src, dest ; ((DS):(SI))- ((ES):(DI)),結(jié)果不存。 ② CMPSB (字節(jié)); (SI) ?(SI)177。 1, (DI)←(DI) 177。 1 ③ CMPSW (字) ; (SI) ?(SI)177。 2, (DI) ?(DI)177。 2 START: MOV SI, OFFSET BLOCK MOV DI, OFFSET PLUS_DATA 。 正數(shù)緩沖區(qū) MOV BX, OFFSET MINUS_DATA ; 負(fù)數(shù)緩沖區(qū) MOV CX, COUNT CLD GOON: LODSB TEST AL, 80H JNZ MINS ; 若負(fù)數(shù)轉(zhuǎn) MINS STOSB ; 正數(shù) ,[DI]←AL , DI←DI+1 JMP AGAIN MINS: XCHG BX, DI STOSB ; 負(fù)數(shù) ,[DI]←AL, DI←DI+1 XCHG BX, DI AGAIN: DEC CX JNZ GOON HLT 第 3章 80X86/Pentium指令系統(tǒng) 4. 串掃描指令(搜索指令) SCAS OPRD 功能: 將累加器( AL或 AX)中的內(nèi)容(關(guān)鍵字)與 ES:DI指定的 目標(biāo)串元素(字節(jié)或字)進(jìn)行比較(減法操作),用標(biāo) 志位反映比較的結(jié)果,而不改變累加器和目標(biāo)串的內(nèi)容, 達(dá)到字符串搜索的目的。同時自動修改指針 DI。 OPRD是目標(biāo)串的符號地址。 第 3章 80X86/Pentium指令系統(tǒng) 串 掃描 指令 有 3種格式: ① SCAS dest ; ② SCASB( 字節(jié) ) ; ( AL)- ((ES):(DI)), DI? DI177。 1 ③ SCASW(字) ; ( AX)- ((ES):(DI)), DI? DI177。 2 串掃描指令常用來從一個字符串中找一個指定字符。 實(shí)際上是源串固定為累加器的串比較指令 二、重復(fù)前綴 REP/REPE/REPZ/REPNE/REPNZ —— 控制后面緊隨的串操作指令是否重復(fù) 分兩種情況來討論: ( 1) 與 REP相配合工作的 MOVS、 STOS、 LODS指令 REP 重復(fù)串操作直到 CX = 0為止 ( 2)與 REPE/REPZ和 REPNE/REPNZ聯(lián)合工作的 CMPS和 SCAS指令 REPE/REPZ 當(dāng) 相等 /為零 時重復(fù)串操作 REPNE/REPNZ 當(dāng) 不相等 /不為零 時重復(fù)串操作 1. 與 REP相配合工作的 MOVS、 STOS、 LODS指令 格式: REP MOVS/STOS/LODS 執(zhí)行過程 : (1) 若 CX= 0,則結(jié)束 REP,執(zhí)行 REP 的下一條指令; (2) 若 CX ≠0 , CX?CX–1; (3) 執(zhí)行 REP后的串操作指令; (4) 重復(fù) (1)~( 3); ( C X) =0?Y(CX) (CX)1執(zhí)行下一條指令執(zhí)行R E P 后的串指令N第 3章 80X86/Pentium指令系統(tǒng) 例: 在附加段 STORE開始存 5個空格 MOV AL, 20H ; AL ? ‘_’ MOV CX, 5 MOV DI, OFFSET STORE CLD REP STOSB 。((ES):(DI))? AL, DI? DI+1 REPE/REPZ和 REPNE/REPNZ聯(lián)合工作的 CMPS和 SCAS指令 格式: REPE/REPZ CMPS / SCAS REPNE/REPNZ CMPS / SCAS 第 3章 80X86/Pentium指令系統(tǒng) 對 REPE/REPZ CMPS / SCAS ( 1) 若 CX = 0(串結(jié)束) 或 ZF= 0(某次比較結(jié)果兩個操作數(shù)不等),則結(jié)束 REPZ,執(zhí)行 REPZ的下一條指令;否則: ( 2) CX?CX–1; ( 3)執(zhí)行 REPZ后面的串操作指令; ( 4)重復(fù) (1)~( 3)。 …… 20H 20H 20H 20H 20H …… . STORE 當(dāng)串未結(jié)束且串相等, 則繼續(xù)比較。 例 利用 CMPS指令對 STRING1和 STRING2兩個字符串進(jìn) 行比較。相同 : RESULT ← 00H,不同 : RESULT ← - 1。 第 3章 80X86/Pentium指令系統(tǒng) LEA SI, STRING1 LEA DI, STRING2 MOV CX, COUNT CLD REPZ CMPSB ; CX ≠0且 兩個操作數(shù)相等,重復(fù)。 JNZ UNMAT ;若串不等,在 RESUL ← 0FFH MOV AL, 0 ;若串相等,在 RESULT ← 00H JMP OUTPT UNMAT: MOV AL, 0FFH OUTPT: MOV RESULT, AL HLT 注意: ◆ CX –1 操作不影響標(biāo)志 ◆ ZF 標(biāo)志由串操作決定 ◆ 當(dāng) CX = 0 或 ZF=0 時退出循環(huán) 第 3章 80X86/Pentium指令系統(tǒng) 對 REPNE/REPNZ CMPS / SCAS ( 1) 若 CX = 0(串結(jié)束) 或 ZF= 1(某次比較結(jié)果兩個操作數(shù)相等),則結(jié)束 REPNZ,執(zhí)行 REPNZ的下一條指令;否則: ( 2) CX ? CX–1; ( 3)執(zhí)行 REPNZ后面的串操作指令; ( 4)重復(fù) (1)~( 3)。 當(dāng)串未結(jié)束且串不相等, 則繼續(xù)比較。 例: 要搜索的關(guān)鍵字放在 (AL)或 (AX)中,搜索某一數(shù)據(jù)塊或字 符串中有無關(guān)鍵字。若有,把搜索次數(shù)記下來,且記錄關(guān)鍵字 地址;若搜索次數(shù)為 0,表示沒有要搜索的關(guān)鍵字。 注:使用 REPNE SCASB 程序退出 REPNE SCASB指令有兩種情況: ①檢索到與 AL相同的字節(jié)( ZF= 1); ②未檢索到,但搜索已完畢 ( CX= 0)。 所以用 ZF判斷: ZF=0,未找到; ZF=1,找到。 注意: ◆ CX1 操作不影響標(biāo)志 ◆ ZF 標(biāo)志由串操作決定 ◆ 當(dāng) CX = 0 或 ZF =1 時退出循環(huán) 程序: LEA DI, BLOCK ; 設(shè)置數(shù)據(jù)塊地址指針 MOV CX, COUNT ; 設(shè)置數(shù)據(jù)塊長度 MOV AL, CHAR ; 關(guān)鍵字送入 AL或 AX CLD REPNE SCASB ; CX≠0 且 ZF=0,繼續(xù) SCASB JZ FOUND MOV DI, 0 JMP DONE FOUND: DEC DI MOV POINTR, DI ; POINTR← 關(guān)鍵字地址 LEA BX, BLOCK SUB DI, BX INC DI ; 把搜索次數(shù)記下來, DONE: HLT 第 3章 80X86/Pentium指令系統(tǒng) 選 例: 一個數(shù)據(jù)塊由大小寫英文字母、數(shù)字、其他符號組成, 用 CR( ASCII碼 0DH) 結(jié)束。 數(shù)據(jù)塊首地址為 BLOCK1, 將其傳送到 BLOCK2為首地址的內(nèi)存區(qū),并將英文中小寫 英文字母 (az)轉(zhuǎn)換成大寫英文字母 (AZ),其余不變。 第 3章 80X86/Pentium指令系統(tǒng) 分析: 大小寫英文字母中相應(yīng) ASCII碼的關(guān)系: ‘ a’’z’相應(yīng) ASCII碼: 61H7AH; ‘ A’’Z’相應(yīng) ASCII碼: 41H5AH; 小寫英文字母轉(zhuǎn)換成大寫英文字母只要
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1