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

正文內容

微機原理與接口技術復習資料(34)章-資料下載頁

2024-10-26 19:13本頁面

【導讀】計算機的指令包括:。操作數在指令隊列中指令執(zhí)行速度較快;操作數在存儲器中指令執(zhí)行速度較慢:通過總線與CPU交換數據。1把一個偏移量送到BIU,計算出20位物理地址;稱之為立即尋址。16位數:高字節(jié)→代碼段的高地址單元,低字節(jié)→低地址單元;解:將立即數2A50H送到CX寄存器中。②立即數只能作源操作數,不能作目的操作數;③以A~F打頭的數字出現在指令中時,前面必須加數字0。以免與其它符號相混淆(如:。8位操作數:寄存器AH、AL、BH、BL、CH、CL、DH和DL。關于段超越前綴:有效地址前用“:”修改運算屬。寄存器SI和DI、BP和BX不能同時出現在[]中。

  

【正文】 1,表示有借位 ? 乘法指令 (Multiply) ( 1) MUL 無符號數乘法指令( Multiply) 指令格式: MUL 源 指令功能:把源操作數和累加器中的數都當成無符號數,然后將兩個數相乘,操作數可以是字節(jié)或字。 ▲ 源操作數是一個字節(jié):原操作數與累加器 AL 中的內容相乘,乘積為雙倍長的16 位數,高 8 位送到 AH,低 8 位送 AL。即 AX ← AL 源。 ▲ 源操作數是一個字 :原操作數與累加器 AX 的內容相乘,結果為 32 位數,高位字放在 DX寄存器中,低位字放在 AX 寄存器中。即 ( DX, AX) ← AX 源 操作數要求: 可以是寄存器、存儲單元,但不能是立即數;源操作數是存儲單元時,必須在操作數前加 B 或 W 說明是字節(jié)還是字。 例 MUL DL ; AX ← AL DL MUL CX ; (DX, AX) ← AX CX MUL B[SI] ; AX ← AL (內存中某字節(jié) ), B 說明字節(jié)乘法 MUL W[BX] ; (DX, AX)← AX (內存中某字 ), W 說明字乘法 注意: ▲ MUL 指令執(zhí)行后影響 CF 和 OF 標志。 如果結果的高半部分(字節(jié)操作為 AH、字操作為 DX)不為零,表明其內容是結果的有效位,則 CF 和 OF 均置 1。否則, CF 和 OF 均清 0。 據此可檢測并去除結果中的無效前導零。 ▲ 乘法指令使 AF、 PF、 SF 和 ZF 的狀態(tài)不定。 例 設 AL= 55H, BL= 14H,計算它們的積。 解 : MUL BL 結果: ① AX = 06A4H。 ② 由于 AH= 06H≠0,高位部分有效,所以置 CF= 1, OF= 1。 例 試計算 FFHFFH。 解: 用二進制表示成如下形式: 1111 1111 1111 1111 1111 1110 0000 001 ▲ 作為無符號數:表示 255255= 65025,結果正確。 ▲ 作為帶符號數:表示 (- 1)(- 1)=- 511,顯然結果不正確。 ▲ 用 MUL 指令作帶符號數的乘法,會得到錯誤的結果,必須用 IMUL 指令,才能使 (-1)(- 1)得到正確的結果 0000 0000 0000 0001。 ? IMUL 整數乘法指令 ( Integer Multiply) 指令格式: IMUL 源 指令功能:把源操作數和累加器中的數都作為帶符號數,進行相乘。 ▲存放結果的方式與 MUL 相同: 源操作數為字節(jié):與 AL 相乘,雙倍長結果送到 AX 中; 源操作數為字:與 AX 相乘,雙倍長結果送到 DX 和 AX 中,最后給乘積賦予正確的符號。 ▲對標志位的影響: 乘積的高半部分不是低半部分的符號擴展 (不是全 0 或全 1),則高位部分為有效位,表示它是積的一部分,于是置 CF= OF= 1; 結果的高半部分為全 0 或全 1,表明它僅包含了符號位,那么使 CF=OF= 0。 AF、 PF、 SF 和 ZF 不定。 ? AAM 乘法的 ASCII 調整指令 (ASCII Adjust for Multiply) 指令格式: AAM 指令功能 : 對 AL 中的兩個非 壓縮十進制數相乘的乘積進行十進制數的調整,在 AX中得到正確的非壓縮十進制數的乘積,高位在 AH 中,低位在 AL 中。 調整過程 : 把 AL 寄存器內容除以 10,商放在 AH 中,余數在 AL 中。即: AH ← AL / 10 所得的商 AL ← AL / 10 所得的余數 注意: ▲ 兩個 ASCII 碼數相乘之前,先屏蔽掉每個數字的高半字節(jié),使每個字節(jié)包含一個非壓縮十進制數( BCD 數),再用 MUL 指令相乘,乘積放到 AL 寄存器中,然后用 AAM指令進行調整。 ▲ 標志位的影響:影響 ZF、 SF 和 PF,但 AF、 CF 和 OF 無定義。 ▲ 8086 的指令系統(tǒng)中,十進制乘法運算不允許采用壓縮十進制數,故調整指令僅此一條。 例 求兩個非壓縮十進制數 09 和 06 之乘積。 解: MOV AL, 09H ;置初值 MOV BL, 06H MUL BL ; AL ← 09 與 06 之乘積 36H AAM ;調整得 AH= 05H(十位), AL= 04H(個位) 結果: AX= 0504H,即 BCD 數 54。 例 如果 AL 和 BL 中分別存放 9 和 6 的 ASCII 碼,求兩數之積。 解:用以下指令實現: AND AL, 0FH ;屏蔽高半字節(jié) AND BL, 0FH MUL BL ;相乘 AAM ;調整 如要將結果轉換成 ASCII 碼,可用指令 OR AX, 3030H 實現,使 AX= 3534H。 ? 除法指令( Division) ( 1) DIV 無符號數除法指令( Division, unsigned) 指令格式: DIV 源 指令功能:對兩個無符號二進制數進行除法操作。 ▲源操作數為字節(jié): 16 位被除數必須放在 AX 中, 8 位除數為源操作數。 AL ← AX/源(字節(jié))的商 AH ← AX/源(字節(jié))的余數 若被除數只有 8 位,必須把 它放在 AL 中,并將 AH 清 0。 ▲源操作數為字: 32 位被除數在( DX, AX)中, 16位除數作源操作數。 AX ← ( DX, AX)/源(字)的商 DX ← ( DX, AX)/源(字)的余數 若被除數、除數都是 16 位,則將 16 位被除數送到 AX 中,再將 DX 清 0。 注意: ▲源操作數可以是寄存器、存儲單元; ▲DIV 指令執(zhí)行后,所有標志位均無定義。 ( 2) IDIV 整數除法指令( Integer Division) 指令格式: IDIV 源 指令功能:對兩個 帶符號二進制數進行除法操作(也稱為帶符號數除法) 注意: ▲操作與 DIV 相同; ▲商和余數都是帶符號數,且規(guī)定余數的符號和被除數的相同; ▲指令執(zhí)行后,所有標志位均無定義。 ▲無論對 ( DIV)還是 ( IDIV),都要注意溢出問題: ? 字節(jié)操作時:被除數的高 8 位絕對值大于除數的絕對值,則產生溢出。(對于無符號數,允許最大商為 FFH;對于帶符號數,允許商的范圍為 128~ +127,或 80H~+7FH); ? 字操作時:被除數的高 16 位絕對值大于除數的絕對值,則產生溢出。(對于無符號數,允許最大商為 FFFFH;對于帶符號數,允許商的范圍為 32768~ +32767,或 8000H~ 7FFFH)。 ▲帶符號數除法指令,字節(jié)操作時要求被除數為 16 位,字操作時要求被除數為 32 位,如果被除數不滿足這個條件,不能簡單地將高位置 0,而應該用符號擴展指令( Sign Extension)將被除數轉換成除法指令所要求的格式。 例 兩個無符號數 7A86H 和 04H 相除,商應為多少? 解: MOV AX, 7A86H MOV BL, 04H DIV BL 結果: ① 正確的商應為 1EA1H。 ② 由于 BL 中的除數 04H 為字節(jié),被除數為字,商 1EA1H 大于 AL 中能存放的最大無符號數 FFH,產生除法錯誤中斷。 ( 3) CBW 把字節(jié)轉換為字指令( Convert Byte to Word) 指令格式: CBW 指令功能:把寄存器 AL 中字節(jié)的符號位擴充到 AH 的所有位。( AH 被稱為 AL的符號擴充) 擴展方法: ▲若 AL 中的 D7= 0,則將這個 0 擴展到 AH 中,使 AH= 00H,即: D7 D0 D7 D0 AH AL AH=正數 ▲若 AL 中的 D7= 1,則將這個 1 擴展到 AH 中,使 AH= FFH,即: D7 D0 D7 D0 AH AL AH=負數 注意: CBW 指令執(zhí)行后,不影響標志位。 ( 4) CWD 把字轉換成雙字指令 (Convert Word to Double Word) 指令格式: CWD 指令功能:把 AX 中字的符號值擴充到 DX 寄存器的所有位。 擴展方法:若 AX 的 D15= 0,則 DX ← 0000H; 若 AX 的 D15= 1,則 DX ← FFFFH。 注意: CWD 指令執(zhí)行后,也不影響標志位。 ( 5) AAD 除法的 ASCII 調整指令 (ASCII Adjust for Division) 指令格式: AAD 指令功能 :在做除法前,把 BCD 碼轉換成二進制數。 調整過程: AL ← AH10+ AL; AH ← 00 注意: ▲AX中的兩位非壓縮格式的 BCD 數除以一個非壓縮的 BCD 數前,要先用AAD 指令把 AX 中的被除數調整成二進制數,并存到 AL 中,才能用 DIV 指令進行運算。 ▲根據 AL 寄存器結果影響 SF、 ZF、 PF,但對 OF、 CF、 AF 無定義。 例 編寫程序,計算 75247。6= 1 2……3 解:該除法運算過程表示如下: (注: 75以 BCD 碼的形式存放 ) 程序如下: FIRST DB 06H ;除數 6 7 51 2- 61 5- 1 236第 一 個 商 為 1第 一 個 商 為 2第 二 個 余 數 為 3第 一 個 余 數 為 1SECOND DB 75H ;被除數 75H THIRD DB 2 DUP( 0) ;存商 FOUR DB ? ;存余數 …… MOVAH, 00H ;第一個被除數高位 AH 清 0 MOVAL, SECOND ; AL←被除數 75 AND AL, 0F0H ;截取高 4 位 MOVCL, 04H ROL AL, CL ;移至低 4 位 DIV FIRST; AX/06, 即 0007/ 06; ;得結果: AL←商為 1, AH 余數 ←1 MOVTHIRD+1, AL ;結果單元 ←第一個商 1 MOVAL, SECOND ; AL←被除數 75 AND AL, 0FH ; AL←截低 4 位,故 AX= 0105H AAD ;將 AX中內容 0105H 調整為 0FH DIV FIRST ; 0FH/6,結果: AL←商為 2, AH←余數 3 MOV THIRD, AL ; THIRD單元 ←第二個商 2 MOV FOUR, AH 。 FOUR 單元 ←第二個余數 3 三、邏輯運算和移位指令 邏輯運算 算術邏輯移位 NOT 取反 SHL/SAL 邏輯 /算術左移 AND 邏輯乘(與) SHR 邏輯右移 OR 邏輯加(或)
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1