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

正文內(nèi)容

[信息與通信]第三章8086尋址方式和指令系統(tǒng)-閱讀頁

2025-01-13 12:09本頁面
  

【正文】 —對標(biāo)志寄存器 FLAGS進(jìn)行操作 ( 1) LAHF,標(biāo)志送到 AH指令 指令格式: LAHF 指令功能:把標(biāo)志寄存器的低 8位 對應(yīng) → AH CPAZSTIDO 15 12 11 10 9 8 7 6 5 4 3 2 1 0AHFLAGS LAHF指令功能示意圖 ( 2) SAHF, AH送到標(biāo)志寄存器指令 指令格式: SAHF 指令功能:把 AH對應(yīng) → 標(biāo)志寄存器的低 8位,其高 8位保持不變。這樣,只有 TF標(biāo)志按需要改變了,而其余標(biāo)志位未受影響。 ② 帶符號(hào)二進(jìn)制整數(shù) :用補(bǔ)碼表示 補(bǔ)碼: =反碼 +1;反碼:對二進(jìn)制碼中的每一位求反 得到的數(shù)碼就是反碼。 例如用帶符號(hào)的 8位二進(jìn)制整數(shù)表示 +65, 則表示為: 01000001B( 65的原碼) 再如用帶符號(hào)的 8位二進(jìn)制整數(shù)表示 65, 首先 65=01000001B(原碼) 先求反碼: 10111110B(原碼為 01000001 ) 再求補(bǔ)碼: 10111111B( =反碼 +1) 所以 65表示為: 10111111B ③ 無符號(hào)壓縮十進(jìn)制整數(shù) :一個(gè)字節(jié)中存放兩個(gè) BCD碼十進(jìn)制數(shù)。 再如 1100 1001B是無效的! ④ 無符號(hào)非壓縮十進(jìn)制整數(shù) :只在一個(gè)字節(jié)的低半字節(jié)存放一個(gè) BCD碼十進(jìn)制數(shù),而高半字節(jié)為 0。 再如 0001 0110B是無效的! 例如對于一個(gè) 8位二進(jìn)制數(shù) 10001001B,可把它看成4種不同類型的數(shù),所表示的數(shù)值是不同的。 8086指令系統(tǒng)提供了加、減、乘、除四種基本運(yùn)算指令,可處理無符號(hào)或帶符號(hào)的 8位或 16位二進(jìn)制數(shù)的算術(shù)運(yùn)算,還提供了各種調(diào)整操作指令,故可進(jìn)行壓縮的或非壓縮的十進(jìn)制數(shù)的算術(shù)運(yùn)算。對于加法和減法運(yùn)算指令,帶符號(hào)數(shù)和無符號(hào)數(shù)的加法和減法運(yùn)算的操作過程是一樣的故可以用同一條加法或減法指令來完成。 ( 1) ADD不帶進(jìn)位的加法指令 指令格式: ADD 目的,源 指令功能:源 +目的 → 目的 ( 2) ADC帶進(jìn)位的加法指令 指令格式: ADC 目的,源 指令功能:源 +目的 +CF→ 目的 ★ ① 源操作數(shù):寄存器、存儲(chǔ)器、立即數(shù) 目的操作數(shù):寄存器、存儲(chǔ)器; ②目的與源數(shù)據(jù)類型要一致; ③目的與源不能同時(shí)為存儲(chǔ)器; ADD AL, 18H; AL+18H→AL ADD [DI], AL; AL+[DS: DI]→DS : DI單元 ADC CL, BL ; BL+CL+CF→CL ADD AX, BL C [2022H], BYTE PTR[SI] ※ 加法指令影響標(biāo)志位: CF, OF, PF, SF, ZF, AF 例 341 求下列指令執(zhí)行后,對標(biāo)志位有何影響? MOV AL, 5EH ADD AL, 3CH 0101 11100011 11005EH3CH+1001 1010 9AH指令執(zhí)行后, ZF=0; AF=1; CF=0; SF=1 ; PF=1; OF=1; 運(yùn)算結(jié)果不為 0,故零標(biāo)志 ZF=0; 低 4位向高 4位有進(jìn)位,故輔助進(jìn)位 AF=1; 最高位 D7位沒有向前產(chǎn)生進(jìn)位,故 CF=0; 因結(jié)果的最高位 D7位為 1,故符號(hào)標(biāo)志 SF=1; 因結(jié)果中‘ 1’的個(gè)數(shù)為偶數(shù),故奇偶標(biāo)志 PF=1; 若把此兩數(shù)當(dāng)成是帶符號(hào)數(shù)相加,由于是兩正數(shù)相加,而結(jié)果卻是負(fù)數(shù)( SF=1),出現(xiàn)這種情況的原因是 +94+( +60) =+154超過了 8位二進(jìn)制符號(hào)數(shù)的表示范圍: 128~ +127,因此就產(chǎn)生了溢出錯(cuò)誤,故 OF=1。 ②當(dāng)程序員把上兩數(shù)看成是有符號(hào)數(shù)相加時(shí),這時(shí)CF位就沒有什么意義了,而需要考慮 SF和 OF位。 ( 3) INC增量指令 指令格式: INC 目的 指令功能:目的 +1→ 目的 注意: 指令執(zhí)行后影響 AF, OF, PF, SF和 ZF, 但不影響 CF。 ASCII碼十進(jìn)制數(shù):‘ 0’,‘ 1’, … ,‘ 9’等等如前所述,非壓縮十進(jìn)制數(shù)的高 4位為全 0,低 4位為十進(jìn)制數(shù) 0~ 9。 AAA指令執(zhí)行時(shí),對 AL中的運(yùn)算結(jié)果進(jìn)行調(diào)整的過程如下: 若 AL低 4位 9或輔助進(jìn)位 AF=1,則 ① AL+6→AL。 例 344 若 AL=BCD 9, BL=BCD 5,求兩數(shù)之和。下面看看運(yùn)算過程: 0000 1001┅ 9+ 0000 0101┅ 50000 1110┅ 低4位 9+ 0000 0110┅ 加6調(diào) 整∧ 0 0 0 0 1 1 1 1 ┅清高4 位0001 01000000 0100┅ AL=4C F = 1 ,A F = 1 ,A H = 1結(jié)果為A X = 0 1 0 4 H ,表示非壓縮十進(jìn)制數(shù)1 4ADD AL, BL AAA ?? 先判斷是否 AL低 4位 9或輔助進(jìn)位 AF=1 由于 AL低 4位 9,則① AL+6→AL ② AL高 4位清 0,低 4位不變 ③ AF置 1, CF置 1, AH+1→AH 例 345 求 ASCII碼表示的數(shù) 9( 39H)和 5( 35H)之和。 ( 5) DAA加法的十進(jìn)制調(diào)整指令 指令格式: DAA 指令功能:將兩個(gè)壓縮 BCD數(shù)相加后的結(jié) 果調(diào)整為正確的壓縮 BCD數(shù)。 解釋: 若 AL=78H, BL=56H,在這里 78H和 56H (壓縮 BCD數(shù))均表示十進(jìn)制數(shù) 78和 56,當(dāng)它們相加以后,我們希望的結(jié)果是十進(jìn)制數(shù) 134,這時(shí),如果不用 DAA指令則,這兩數(shù)相加以后的結(jié)果為:CEH。 DAA指令執(zhí)行時(shí),調(diào)整的過程如下: 若 相加后 AL低 4位 9或輔助進(jìn)位 AF=1, 則 AL+6→AL ,即對低半字節(jié)進(jìn)行調(diào)整 。下面看看運(yùn)算過程: 0011 1000┅ BCD 38+ 0001 0101┅ BCD 150100 1101┅ 低4位 9+ 0000 0110┅ 加6調(diào) 整0101 0011結(jié)果為A L = B C D 5 3 ,C F = 0ADD AL, BL DAA 先判斷是否 AL低 4位 9或輔助進(jìn)位 AF=1 由于 AL低 4位 9,所以 AL+6調(diào)整 然后再判斷 AL高 4位結(jié)果 9或 CF=1 例 347 若 AL=BCD 88, BL=BCD 49,求兩數(shù)之和。 DEC AL 假設(shè)指令執(zhí)行前 AL=00H,則指令執(zhí)行后 CF不影響 例 350 DEC BL ; BL1→BL DEC AX; AX1→AX DEC BYTE PTR[BX]; 內(nèi)存字節(jié)內(nèi)容減 1 DEC WORD BYTE[BX] ; [DS: BX]字 1→[DS : BX]字 ( 4) NEG取負(fù)指令(求補(bǔ)指令) 指令格式: NEG 目的 指令功能: 0目的 → 目的 (實(shí)際作用:求一個(gè)負(fù)數(shù)的補(bǔ)碼形式。 ② 利用 NEG指令求 5的補(bǔ)碼: MOV AL, 5 NEG AL;指令執(zhí)行后 AL=1111 1011B 即就是 5的補(bǔ)碼。指令執(zhí)行后,若 ZF=1,表示兩操作數(shù)相等;若 ZF=0,表示比較的兩操作數(shù)不相等,不相等分兩種情況: ① 兩個(gè)無符號(hào)數(shù)的比較: 無符號(hào)數(shù)相減后, CF就是借位標(biāo)志, 如果 CF=0,表示無借位,即目的 ≥源; 如果 CF=1,表示有借位,即目的 源; ② 兩個(gè)有符號(hào)數(shù)的比較 有符號(hào)數(shù)最高位表示符號(hào)位,而符號(hào)標(biāo)志總是和結(jié)果的最高位相同。 若 SF=0,表示目的 ≥源; OF SF=0 若 SF=1,表示目的 源; OF SF=1 下面看個(gè)例子來說明: 例如,比較 +3和 +5的大小,利用 +3(+5) 0000 0011 0000 01011111 1110┅ 2由于結(jié)果 2沒有超過 128~ +127的范圍( 8位)所以O(shè)F=0;再看指令執(zhí)行后 SF=1,所以目的 源,即+3+5; 再如,比較 1和 2的大小,利用 1( 2) +1沒有超過 128~ +127的范圍( 8位)所以 OF=0;再看指令執(zhí)行后 SF=0,所以目的 源,即12; 1111 1111┅ 1 1111 1110┅ 20000 0001┅ +1下面我們再看看兩個(gè)不同符號(hào)的數(shù)的比較 例如比較 +127和 50的大小,利用 +127(50) 如果這時(shí)我們還根據(jù) SF=1,表示目的 源;即 +127 50,顯然是不正確的。 0111 1111┅ +127 1100 1110┅ 501011 0001┅ 79?⑵ 當(dāng) 兩個(gè)不同符號(hào)數(shù) 比較時(shí) , 第一種情況: OF=0,這時(shí), 若 SF=0,表示目的 ≥源; OF SF=0 若 SF=1,表示目的 源; OF SF=1 第二種情況: OF=1,這時(shí), 若 SF=1,表示目的 ≥源; OF SF=0 若 SF=0,表示目的 源; OF SF=1 針對⑴、⑵兩種情況,得到以下 結(jié)論 : 利用 CMP指令來比較兩個(gè)有符號(hào)數(shù)的大小時(shí),若 ① OF SF=0,則表示目的 ≥源; ② OF SF=1,則表示目的 源; ( 6) AAS減法的 ASCII調(diào)整指令 指令格式: AAS 指令功能:在用 SUB或 SBB指令對兩個(gè)非壓縮十進(jìn)制數(shù)或 ASCII碼表示的十進(jìn)制數(shù)作減法后, 運(yùn)算結(jié)果已存在 AL的情況下, 對 AL中的所得結(jié)果調(diào)整,在 AL中得到一個(gè)正確的非壓縮十進(jìn)制數(shù)之差,如果有借位,則 CF置 1。 AAS指令執(zhí)行時(shí),調(diào)整過程為: 若 AL寄存器的低 4位 9或 AF=1, 則 ① AL6→AL , AF置 1; ②將 AL寄存器的高 4位清零; ③ AH1→AH , CF置 1; 否則 ,不需要調(diào)整。顯然,結(jié)果為 BCD 5,但要向高位借位。相減后的結(jié)果 必須在 AL中 ,才能使用 DAS指令。 若 此時(shí) AL中高半字節(jié)結(jié)果 9或 CF=1, 則 AL60H→AL ,即對高半字節(jié)進(jìn)行調(diào)整, 并且使 CF置 1。調(diào)整過程如下: 0101 0110┅ BCD 56 1001 1000┅ BCD 981011 1110┅ 低4位 9, CF=AF=1 0000 0110┅ 減6調(diào) 整1011 1000┅ 高4位 9 0110 0000┅ 減60H調(diào) 整0101 1000┅ 結(jié)果為AL=BCD 58,C F = 1 ,有借位 SUB AL, CL DAS 首先判斷是否 AL低 4位 9或 AF=1 由于 AL低 4位 9,所以 AL6調(diào)整 再判斷是否 AL高 4位 9或 CF=1 由于 AL高 4位 9,所以 AL60H調(diào)整 ( 1) MUL無符號(hào)數(shù)乘法指令 指令格式: MUL 源 指令功能:把源操作數(shù)和 累加器中的數(shù) 都當(dāng)成是無符號(hào)數(shù),然后將兩數(shù)相乘,源操作數(shù)可以是字節(jié)或字。否則, CF和 OF均清 0。 例 357 設(shè) AL=55H, BL=14H,計(jì)算它們的積。由于 AH=06H≠0,高位部分有效,所以置 CF=1, OF=1。 例 358 試計(jì)算 FFH FFH。若把它們看作帶符號(hào)數(shù),上面的計(jì)算表示( 1) ( 1) =511,顯然結(jié)果不正確。 執(zhí)行 IMUL指令后,如果乘積的高半部分不是低半部分的符號(hào)擴(kuò)展(不是全零或全 1),則視為高位部分為有效位,表示它是積的一部分,于是置CF=1, OF=1。 例 359 設(shè) AL=28H, BL=59H,試計(jì)算它們的乘積。兩個(gè) ASCII碼數(shù)相乘之前,必須先屏蔽掉每個(gè)數(shù)字的高半字節(jié),從而使每個(gè)字節(jié)包含一個(gè)非壓縮十進(jìn)制數(shù),再用 MUL指令相乘,乘積放到 AL寄存器中,然后用 AAM指令進(jìn)行調(diào)整。 例 360 求兩個(gè)非壓縮十進(jìn)制數(shù) 09和 06之乘積,可用如下指令實(shí)現(xiàn): MOV AL, 09H MOV BL, 06H MUL BL; 09H 06H=36H→AL AAM;調(diào)整為 AH=05H, AL=04H,即 54 如果 AL和 BL中分別存放
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1