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

正文內(nèi)容

第3章80x86指令系統(tǒng)及匯編語(yǔ)言-wenkub

2022-10-09 16:17:08 本頁(yè)面
 

【正文】 在存貯器的兩個(gè)相鄰單元中 。 這種將操作數(shù)的地址隱含在指令操作碼中的尋址方式稱為隱含尋址 。 即操作數(shù)的地址是由基址 、 變址方式得到的地址再加上由指令指明的 8位或 16位的相對(duì)偏移地址而得到的 。 這時(shí) , 操作數(shù)的地址應(yīng)該是段寄存器內(nèi)容加上基址寄存器內(nèi)容 (BX或 BP內(nèi)容 ), 再加上變址寄存器內(nèi)容 (SI或 DI內(nèi)容 )而得到的 。 在一般情況下 , 若用 SI、 DI或 BX進(jìn)行相對(duì)尋址時(shí) ,以數(shù)據(jù)段寄存器 DS作為地址基準(zhǔn) , 而用 BP尋址時(shí) , 則以堆棧段寄存器作為地址基準(zhǔn) 。 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 例: MOV AX,[ SI] 其過(guò)程如圖 (a)所示 。 寄存器可以是 16位寄存器,也可以是 8位寄存器。 例: MOV AX, DS: 其過(guò)程如圖 。 1. 立即尋址 立即尋址方式所提供的操作數(shù)直接包含在指令中 。它緊跟在操作碼的后面 , 與操作碼一起放在代碼段區(qū)域中 。指令中的 16位段內(nèi)偏移地址的低字節(jié)在前,高字節(jié)在后。 圖 寄存器尋址 AX DS第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 在寄存器間接尋址方式中 , 操作數(shù)存放在存貯器中 , 操作數(shù)的 16位段內(nèi)偏移地址放在 SI、 DI、 BP、 BX這 4個(gè)寄存器中之一 。 例: MOV AX,[ BP] 其過(guò)程如圖 (b)所示。 例: MOV AX, DISP[ SI] 其過(guò)程如圖 。 同理 , 若用 BX作為基地址 , 則操作數(shù)應(yīng)放在數(shù)據(jù)段 DS區(qū)域中;若用 BP作為基地址 , 則操作數(shù)應(yīng)放在堆棧段 SS區(qū)域中 。 例: MOV AX, DISP[ BX] [ S1] 其過(guò)程如圖 。 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 1. 段內(nèi)相對(duì)尋址 在段內(nèi)相對(duì)尋址方式中 , 指令應(yīng)指明一個(gè) 8位或 16位的相對(duì)地址位移量 DISP(有正負(fù)符號(hào) , 用補(bǔ)碼表示 )。 存放偏移地址的寄存器和存貯器的地址將按指令碼中規(guī)定的尋址方式給出 。 例: JMP FARPTRADD1 在執(zhí)行這條段間直接尋址指令時(shí) , 指令操作碼后的第二個(gè)字將賦予代碼段寄存器 CS, 第一個(gè)字將賦予指令指針寄存器 IP。 用這種尋址方式可計(jì)算出存放轉(zhuǎn)移地址的存貯單元的首地址 , 與此相鄰的 4個(gè)單元中 , 前兩個(gè)單元存放 16位的段內(nèi)偏移地址 , 而后兩單元存放的是 16位的段地址 , 如圖 。邏輯運(yùn)算和移位指令 輸入 /輸出指令 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 1. MOV指令 MOV OPRD1, OPRD2 目的 源 MOV是操作碼 , OPRD1和 OPRD2分別是目的操作數(shù)和源操作數(shù) 。 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 圖 MOV的數(shù)據(jù)傳送方向 段寄存器C S , D S , S S , E S通用寄存器A X , B X , C X , D X , B P , S P , S I , D IA H , A L , B H , B L , C H , C L , D H , D L立即數(shù) 存貯器第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 各種數(shù)據(jù)傳送指令例舉如下: ① 在 CPU各內(nèi)部寄存器之間傳送數(shù)據(jù) 。在 CPU的通用寄存器與存貯器之間傳送數(shù)據(jù): MOV AL, BUFFER MOV[ DI] , CX ④ 目的操作數(shù)不能為 CS、 IP。 這種交換能在通用寄存器與累加器之間 、 通用寄存器之間 、 通用寄存器與存貯器之間進(jìn)行 ,但是段寄存器不能作為一個(gè)操作數(shù) 。 (3) LES指令 這條指令除將地址指針的段地址送入 ES外,其他操作與 LDS的類似。 例如: 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 MOV AX, 8000H MOV SS, AX MOV SP, 2020H MOV DX, 3E4AH PUSH DX PUSH AX 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 當(dāng)執(zhí)行完兩條壓入堆棧的指令時(shí) , 堆棧中的內(nèi)容如圖 。 ④ DL→(SP) 。 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 CWD指令將 AX的符號(hào)位 (bit15)擴(kuò)展到整個(gè) DX,即將字轉(zhuǎn)換成雙字 。 1. 加法指令 (1)ADD OPRD1, OPRD2 這條指令完成兩個(gè)操作數(shù)相加 , 結(jié)果送至目的操作數(shù) OPRD1, 即: OPRD1←OPRD 1+ OPRD2 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 具體地說(shuō) , 該指令可以實(shí)現(xiàn)累加器與立即數(shù) 、 累加器與任一通用寄存器 、 累加器與存貯單元內(nèi)容相加 ,其和放回累加器中 。 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 (2)ADC指令 這條指令與 ADD指令基本相同 , 只是相加時(shí)再加上進(jìn)位位的當(dāng)前值 , 即: OPRD1←OPRD 1+ OPRD2+ CF MOV AX, FIRST ADD AX, SECOND MOV THIRD, AX MOV AX, FIRST+ 2 ADC AX, SECOND+ 2 MOV THIRD+ 2, AX 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 (3) INC OPRD指令 這條指令對(duì)指定的操作數(shù)進(jìn)行加 1操作 , 其操作數(shù)可以是通用寄存器 , 也可以在內(nèi)存單元中 。 減 1操作時(shí) ,把操作數(shù)看作為無(wú)符號(hào)的二進(jìn)制數(shù) 。 例如: CMP AL, 100 CMP AX, SI CMP AX, DATA[ BX] 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 該指令也可以用于任一寄存器與立即數(shù)或別的寄存器及任一內(nèi)存操作數(shù)之間的比較 , 例如: CMP BX, 04FEH CMP DX, DI CMP CX, COUNT[ BP] 該指令還可以用于內(nèi)存操作數(shù)與立即數(shù)及任一寄存器中操作數(shù)之間的比較 。 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 例如 , 若自 BLOCK開始的內(nèi)存緩沖區(qū)中 , 有 100個(gè)帶符號(hào)的數(shù) , 希望找到其中最大的一個(gè)值 , 并將它放到 MAX單元中 。 當(dāng)結(jié)果的高半部分不是結(jié)果的低半部分的符號(hào)擴(kuò)展時(shí) , 標(biāo)志位 CF和 OF將置位 。 執(zhí)行除法后 , 余數(shù)符號(hào)與被除數(shù)相同 , 其他同 DIV指令 。 1. 邏輯運(yùn)算指令 (1)NOT OPRD 該指令對(duì)操作數(shù)進(jìn)行求反操作 , 然后將結(jié)果送回 。 即只有參加相與的兩位全為 “ 1”時(shí) , 相 “ 與 ” 結(jié)果才為 “ 1”;否則相 “ 與 ” 結(jié)果為 “ 0”。 這條指令通常是在不希望改變操作數(shù)的前提下 ,用來(lái)檢測(cè)某一位或某幾位的狀態(tài) 。OR指令操作結(jié)果將送回 。 XOR指令的一般形式為: XOR OPRD1, OPRD2 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 例如: XOR AL, 0FH XOR AX, BX XOR DX, SI XOR CX, CONNTWORD XOR BUFFER[ BX] , DI XOR BUFFER[ BX+ SI], AX 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 2. 移位指令 8088有 3條移位指令: 算術(shù)左移和邏輯左移指令 SAL/ SHLOPRD, m 算術(shù)右移指令 SAROPRD, m 邏輯右移指令 SHROPRD, m (1)SAL/ SHL指令 這兩條指令的操作結(jié)果是完全一樣的 。 右移一位相當(dāng)于除以 2, 例如: MOV AL, 16 SAR AL, 1 ;執(zhí)行后 , AL的內(nèi)容為 8( 相當(dāng)于 除以 2) 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 (3) SHR指令 該指令每執(zhí)行一次移位操作 , 就使操作數(shù)右移一位 , 最低位移至標(biāo)志位 CF中 。 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 圖 循環(huán)移位指令示意圖 (a)ROL。 這可以用來(lái)判別移位前后操作數(shù)的符號(hào)是否有改變 。 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 串操作指令 1. MOVS/ MOVSB/ MOVSW 該類指令是串傳送指令 , 用于內(nèi)存區(qū)之間字節(jié)串或字串的傳送 。 串裝入指令的一般格式為: LODS OPRD ; OPRD為源串 LODSB ;字節(jié)操作 LODSW ;字操作 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 5. STOS/ STOSB/ STOSW 該類指令是字串存貯指令 。 7. REPE/ REPNE 它們是條件重復(fù)前綴 。 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 例:數(shù)據(jù)段中地址 BUFFER1開始的字符串 , 長(zhǎng)度為 1000字節(jié) , 將其傳送到附加段中地址 BUFFER2開始的數(shù)據(jù)區(qū) 。 1. 無(wú)條件轉(zhuǎn)移 、 調(diào)用和返回指令 這些指令都將引起程序執(zhí)行順序的改變 。當(dāng)程序執(zhí)行到 JMP指令時(shí) , 就無(wú)條件地轉(zhuǎn)移到指令中所指示的目的地址 。近程轉(zhuǎn)移 JMP NEA RPTROPRD 或 JMP OPRD ; NEAR可省略 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 段內(nèi)間接轉(zhuǎn)移 JMP WORD PTR OPRD 調(diào)用指令一般格式為: CALL NEARPTR OPRD;段內(nèi)調(diào)用 CALL FARPTR OPRD;段間調(diào)用 第 3章 80X86指令系統(tǒng)及匯編語(yǔ)言 例:近程調(diào)用 ;主程序 (近程調(diào)用 ) … CALL NEAR PTR PROAD … ;過(guò)程 PROAD定義 PROAD PROC NEAR PUSH AX PUSH CX PUSH SI LEA SI, ARY 第 3章
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1