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

正文內容

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