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

正文內(nèi)容

[工學(xué)]第三章80x86的指令系統(tǒng)和尋址方式(參考版)

2025-01-22 12:10本頁(yè)面
  

【正文】 循環(huán)左移 循環(huán)右移 匯編語(yǔ)言程序設(shè)計(jì) 循環(huán)移位指令舉例 MOV BX, 9050H MOV CL, 8 ROL BX, CL 匯編語(yǔ)言程序設(shè)計(jì) 帶進(jìn)位的循環(huán)移位指令( RCL/RCR) 指令格式 : RCL/RCR DST, COUNT 指令功能:帶進(jìn)位的循環(huán)左移 RCL 是把目的操作數(shù) DST從低位依次向左移動(dòng) COUNT位 , 移出的位先送 CF中 , 將 CF位移到操作數(shù) DST的最低位 。 循環(huán)右移 ROR把目的操作數(shù) DST從高位依次向右移動(dòng) COUNT位 , 移出的位不但送 CF中 , 同時(shí)將該位移到操作數(shù) DST的最高位 。 執(zhí)行的操作: CF CF 0 算術(shù)左移 算術(shù)右移 匯編語(yǔ)言程序設(shè)計(jì) 算術(shù)移位指令舉例 分析下列程序段 ,說(shuō)明其功能。 MOV AL, 05H MOV CL, 4 SHL AL, CL 分析下列程序段 ,說(shuō)明其功能。 MOV AX, 90H BT AX, 15 JC ISSET ; CF=1轉(zhuǎn)到 ISSET 標(biāo)號(hào)上去 或: JNC ISNOTSET ; CF=0,轉(zhuǎn)到 ISNOTSET 標(biāo)號(hào)上去 匯編語(yǔ)言程序設(shè)計(jì) 移位指令 邏輯移位( SHL/ SHR) 算術(shù)移位( SAL/ SAR) 循環(huán)移位( ROL/ ROR) 帶進(jìn)位的循環(huán)移位( RCL/ RCR) 雙精度移位( SHLD/ SHRD) 匯編語(yǔ)言程序設(shè)計(jì) 邏輯移位指令( SHL/SHR) ( 1) 指令格式 : SHL/SHR DST, COUNT 移 1位時(shí), COUNT可以為立即數(shù) 1 移多位時(shí), COUNT的 值必須先存入 CL寄存器 指令功能: 邏輯左移 SHL是把目的操作數(shù) DST從低位依次向左移動(dòng) COUNT位 ,低位補(bǔ) COUNT個(gè) 0; 邏輯右移 SHR把目的操作數(shù) DST從高位依次向右移動(dòng) COUNT位 , 低位補(bǔ) COUNT個(gè) 0。如不允許: BT AX, BL 或 BT EAX, BX 3)本組指令只影響標(biāo)志寄存器的 CF位,其他標(biāo)志位則無(wú)定義。 執(zhí)行的操作: CF ← DST的 SRC位 DST的 SRC位 ← 取反 匯編語(yǔ)言程序設(shè)計(jì) 需要注意的問(wèn)題 1)指令中的目的操作數(shù) DST為 16位 /32位寄存器 /存儲(chǔ)器操作數(shù),源操作數(shù) SRC可以是 16位 /32位寄存器或立即數(shù)操作數(shù)( 0~ 31)。 執(zhí)行的操作: CF ← DST的 SRC位 DST的 SRC位 ← 1 匯編語(yǔ)言程序設(shè)計(jì) 80386位測(cè)試指令 ( 3) 位測(cè)試并置 0指令 ( BTR) 指令格式: BTR DST, SRC 指令功能:把目的操作數(shù) DST中由源操作數(shù) SRC所指定位的值送標(biāo)志寄存器 CF位 , 并將目的操作數(shù)中的該位置 0。 匯編語(yǔ)言程序設(shè)計(jì) 80386位測(cè)試指令 位測(cè)試指令 ( BT) 位測(cè)試并置 l( BTS) 位測(cè)試并置 0 ( BTR) 位測(cè)試并變反 ( BTC) 匯編語(yǔ)言程序設(shè)計(jì) 80386位測(cè)試指令 ( 1) 位測(cè)試指令 ( BT) 指令格式: BT DST, SRC 指令功能:把目的操作數(shù) DST中由源操作數(shù) SRC所指定位的值送標(biāo)志寄存器 CF位 。 3) AND、 OR、 XOR、 TEST指令對(duì) PF、 SF和 ZF按照規(guī)則設(shè)定其值,總是使 CF= 0、 OF= 0,對(duì) AF無(wú)定義。 執(zhí)行的操作: DST ∧ SRC. 匯編語(yǔ)言程序設(shè)計(jì) 需要注意的問(wèn)題 1) AND、 OR、 XOR、 TEST指令的源操作數(shù)可以是寄存器 /存儲(chǔ)器 /立即數(shù)操作數(shù),目的操作數(shù)只能是寄存器或內(nèi)存操作數(shù),不能是立即數(shù),源操作數(shù)和目的操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù)。 執(zhí)行的操作: OP ← OP. 匯編語(yǔ)言程序設(shè)計(jì) 測(cè)試指令( TEST) 指令格式為: TEST DST, SRC 其中:指令中的目的操作數(shù)為寄存器 /存儲(chǔ)器操作數(shù),源操作數(shù)可以是寄存器 /存儲(chǔ)器 /立即數(shù)操作數(shù)。 執(zhí)行的操作: DST ← DST ∨ SRC. 匯編語(yǔ)言程序設(shè)計(jì) 邏輯異或指令( XOR) XOR 主要用于將二進(jìn)制數(shù)的某些位求反 XOR BL, 0FH xxxxxxxx (BL) 00001111 0F xxxxxxxx 結(jié)果 XOR 匯編語(yǔ)言程序設(shè)計(jì) 邏輯非指令( NOT) 指令格式為: NOT OP 其中:指令中的操作數(shù) OP為寄存器 /存儲(chǔ)器操作數(shù)。 執(zhí)行的操作: DST ← DST ∨ SRC. 匯編語(yǔ)言程序設(shè)計(jì) 邏輯或指令( OR) OR 主要用于將二進(jìn)制數(shù)的某些位置 1 OR BL, 0FH xxxxxxxx (BL) 00001111 0F xxxx1111 結(jié)果 OR 匯編語(yǔ)言程序設(shè)計(jì) 邏輯異或指令( XOR) 指令格式為: XOR DST, SRC 其中:指令中的目的操作數(shù)為寄存器 /存儲(chǔ)器操作數(shù),源操作數(shù)可以是寄存器 /存儲(chǔ)器 /立即數(shù)操作數(shù)。 執(zhí)行的操作: DST ← DST ∧ SRC. 匯編語(yǔ)言程序設(shè)計(jì) 邏輯與指令( AND) AND 主要用于將二進(jìn)制數(shù)的某些位清 0 AND BL, 0FH xxxxxxxx (BL) 00001111 0F 0000xxxx 結(jié)果 AND 匯編語(yǔ)言程序設(shè)計(jì) 邏輯或指令( OR) 指令格式為: OR DST, SRC 其中:指令中的目的操作數(shù)為寄存器 /存儲(chǔ)器操作數(shù),源操作數(shù)可以是寄存器 /存儲(chǔ)器 /立即數(shù)操作數(shù)。余數(shù) → Y 匯編語(yǔ)言程序設(shè)計(jì) 邏輯運(yùn)算指令 邏輯與( AND) 邏輯或( OR) 邏輯異或( XOR) 邏輯非( NOT) 測(cè)試( TEST) 匯編語(yǔ)言程序設(shè)計(jì) 邏輯與指令( AND) 指令格式為: AND DST, SRC 其中:指令中的目的操作數(shù)為寄存器 /存儲(chǔ)器操作數(shù),源操作數(shù)可以是寄存器 /存儲(chǔ)器 /立即數(shù)操作數(shù)。(X+125X*Y)/Z, 商 → AX,余數(shù) → DX MOV X,AX 。低 16位減法 SBB DX,BX 。 MOV AX, X 。 SRC→AX ( 商 ) , 余 → DX 雙字除法: EDX: EAX247。 ) 字節(jié)除法: AX247。 指令功能:目的操作數(shù) ( 為隱含操作數(shù) , 該操作數(shù)只能是 AL 或 AX或 EAX) 除源操作數(shù) SRC) , 結(jié)果送目的操作數(shù) AX 或 DX: AX或 EDX: EAX, 余數(shù)送AH或 DX或 EDX。 執(zhí)行的操作:字乘法: reg16 ← SRC data 雙字乘法: reg32 ← SRC data 對(duì)標(biāo)志的影響:只對(duì) CF和 OF有影響 (AF、 PF、 SF和ZF不定 ), 當(dāng) OF=1, CF=1時(shí)為溢出 。 匯編語(yǔ)言程序設(shè)計(jì) 有符號(hào)三操作數(shù)乘法指令 (IMUL) 指令格式: IMUL reg, SRC, data 其中:目的操作數(shù) reg 必須是 16位/ 32位通用寄存器 ,源操作數(shù) SRC可以是寄存器或存儲(chǔ)器 , data為立即數(shù) , 可以是 8位 /16位 /32位 , 該指令是三操作數(shù)指令 ,用于 80286以上微機(jī) 。 指令功能:目的操作數(shù) ( reg) 乘源操作數(shù) ( reg/mem/data) , 結(jié)果送目的操作數(shù) 。 匯編語(yǔ)言程序設(shè)計(jì) 執(zhí)行的操作 字節(jié)乘法: AX ← AL SRC 字乘法: DX: AX ← AX SRC 雙字乘法: EDX: EAX ← EAX SRC 對(duì)標(biāo)志的影響:只對(duì) CF和 OF有影響 (AF、 PF、SF和 ZF不定 )。 匯編語(yǔ)言程序設(shè)計(jì) 乘除法指令 無(wú)符號(hào)乘法指令與有符號(hào)乘法指令 (MUL/ IMUL) 指令格式: MUL/ IMUL SRC 其中:指令中的操作數(shù)為源操作數(shù) , 可以是寄存器或存儲(chǔ)器 , 目的操作數(shù)為隱含操作數(shù) ,該指令是單操作數(shù)指令 。 對(duì)于有符號(hào)數(shù)減法 由于 OF跟據(jù)兩個(gè)操作數(shù)的符號(hào)及其變化來(lái)確定 , 所以 OF= 1時(shí) , 說(shuō)明運(yùn)算產(chǎn)生了溢出 。 匯編語(yǔ)言程序設(shè)計(jì) 需要注意的問(wèn)題 對(duì)于減法判溢出與加法相同 對(duì)于無(wú)符號(hào)數(shù)減法 CF=1 有借位 (有進(jìn)位 ) 溢出 , 相當(dāng)于被減數(shù)小于減數(shù) 。 所以得到以下結(jié)論: 無(wú)符號(hào)的兩個(gè)操作數(shù)相加 CF=1時(shí)有溢出 。 兩個(gè)操作數(shù)符號(hào)相同 , 結(jié)果符號(hào)與操作數(shù)符號(hào)相同時(shí) OF=0( 無(wú)溢出) 。 CF= 1, 有進(jìn)位說(shuō)明運(yùn)算產(chǎn)生了溢出 。 OF:帶符號(hào)數(shù)的溢出標(biāo)志,; OF=1 ( OV),否則 OF=0( NV)。 SF:運(yùn)算結(jié)果最高位為 1則 SF=1( PL)是負(fù)數(shù),最高位為 0則 SF=0( NG)是正數(shù)。 例 : CMP AL,BL CMP DL,10H 匯編語(yǔ)言程序設(shè)計(jì) 應(yīng)注意的問(wèn)題 DST、 SRC、 OPR可以是字節(jié),字、雙字( 32位以上機(jī)型)操作,但類(lèi)型要一致。只是根據(jù)結(jié)果設(shè)置條件標(biāo)志位。 例 : DEC BX DEC BYTE PTR [BX+SI+1000H] DEC SP 匯編語(yǔ)言程序設(shè)計(jì) 求補(bǔ)指令 (NEG) 指令格式 : NEG OPR 指令功能 :操作數(shù)按位求反末位加 1后,結(jié)果送回到操作數(shù)中。 例 : SBB AL,0 SBB DL,CL 匯編語(yǔ)言程序設(shè)計(jì) DEC 減 1指令 指令格式 : DEC OPR 指令功能 :將指定的操作數(shù)減 1,并將結(jié)果送回到目標(biāo)操作數(shù)中。 ( dst) ← (dst)(src) 受影響的狀態(tài)標(biāo)志位 : OF,SF,ZF,AF,PF,CF 例 : SUB AL,10H SUB AL,[BX+10H] SUB AL,AL 匯編語(yǔ)言程序設(shè)計(jì) 帶借位減法指令( SBB ) 指令格式 : SBB dst,src 指令功能 :目的操作數(shù)中減去源操作數(shù)和 CF,結(jié)果存入目的操作數(shù)中。 指令功能:目的操作數(shù)和源操作數(shù)先交換數(shù)據(jù)再相加,結(jié)果送目的操作數(shù)。 (OPR) ←(OPR)+1 受影響的狀態(tài)標(biāo)志位 : OF,SF,ZF,AF,PF 說(shuō)明 :INC 指令不影響 CF。 例 : ADD AL,3 ADD GAMA[BP][DI],BL ADD [BP+DI+OFFSET GAMA],BL 匯編語(yǔ)言程序設(shè)計(jì) 帶進(jìn)位加法指令( ADC) 指令格式 : ADC dst,src 指令功能 : 目的操作數(shù)加源操作數(shù)再加進(jìn)位標(biāo)志 CF,結(jié)果存入目的操作數(shù)中。 匯編語(yǔ)言程序設(shè)計(jì) 加法指令( ADD) 指令格式 : ADD dst,src 指令功能 : 目的操作數(shù)加源操作數(shù) ,結(jié)果存入目的操作數(shù)中。 算術(shù)運(yùn)算的主要對(duì)象是二進(jìn)制算術(shù)運(yùn)算指令 ,8088/8086的指令操作數(shù)可以是 8位或 16位 , 80386以上機(jī)型增加了 32位 , 操作數(shù)可以是無(wú)符號(hào)數(shù)和帶符號(hào)數(shù) , 帶符號(hào)數(shù)在機(jī)器中是用補(bǔ)碼的形式表示的 , 參加運(yùn)算的數(shù)據(jù)在書(shū)寫(xiě)時(shí)可以用 10進(jìn)制 、 8進(jìn)制 、 16進(jìn)制 、 2進(jìn)制 , 經(jīng)過(guò)匯編后均為 2進(jìn)制數(shù) ,因此 , 在匯編指令中主要針對(duì) 2進(jìn)制數(shù)據(jù)進(jìn)行操作的 。 例: BSWAP EAX 如指令執(zhí)行前 ( EAX)=11223344H,則指令執(zhí)行后 ( EAX)=44332211H 匯編語(yǔ)言程序設(shè)計(jì) 復(fù)習(xí) 數(shù)據(jù)傳送指令 MOV 數(shù)據(jù)傳送 MOVSX帶符號(hào)擴(kuò)展傳送 MOVZX 帶零擴(kuò)展傳送 指令格式: MOVSX/MOVZX DST, SRC 地址傳送指令 LEA 取有效地址 LDS 取地址指針到 DS LES 取地址指針到 ES LFS取地址指針到 FS寄存器 LGS取地址指針到 GS寄存器 LSS取地址指針到 SS寄存器 。 指令功能:使指令指定的 32位寄存器的字節(jié)次序變反 。 匯編語(yǔ)言程序設(shè)計(jì) 字節(jié)交換指令 BSWAP 指令格式: BSWAP R32 該指令只能用于 486及其后繼機(jī)型 。如果 (AX)的最高有效位為 1, 則( DX) =0FFFFH 匯編
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1