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

正文內(nèi)容

第3章8086的尋址方式和指令系統(tǒng)(完整版)

2025-08-25 09:55上一頁面

下一頁面
  

【正文】 CF=0, OF=0。 例如: MOV AL, 8FH NOT AL 兩條指令執(zhí)行后 AL=70H。 這里要特別注意一點 , 對 BCD碼除法運算的調(diào)整是在進行除法之前 , 通過對除數(shù)和被除數(shù)進行調(diào)整來實現(xiàn)的 。 ( 2) AAS非壓縮十進制數(shù)減法調(diào)整指令 指令格式: AAS 指令功能: AL← 把 AL中的差調(diào)整為非壓縮的 BCD碼格式 。 5. BCD碼調(diào)整指令 在計算機中 , 可用 4位二進制碼來表示一個十進制碼 ,這種代碼叫 BCD碼 。 即IDIV執(zhí)行后 , CF、 OF、 AF、 PF、 ZF、 SF不確定 。 例如: MUL AL MUL BX MUL WORD PRT[SI] 要完成 14 15可以用下列指令: MOV AL, 14 MOV CL, 15 MUL CL ( 2) 帶符號數(shù)乘法指令 IMUL 指令格式: IMUL OPRD 指令功能: 若 OPRD為字節(jié)數(shù)據(jù) , 則執(zhí)行 AX← ( AL) ( OPRD) 若 OPRD為字數(shù)據(jù) , 則執(zhí)行 DX、 AX← ( AX) ( OPRD) 目的操作數(shù)為: AL或 AX( 隱含給出 ) 4. 除法指令 8086有兩條除法指令:無符號除法指令和帶符號除法指令 。 這時可以用如下結(jié)論判斷 。 在程序設計時 , 比較指令通常為程序的轉(zhuǎn)移提供條件 。 該指令對標志位 AF、 CF、 OF、 PF、 SF和 ZF都將產(chǎn)生影響。 ( 3) INC加 1指令 指令格式: INC OPRD 指令功能: OPRD← ( OPRD) + 1 這條指令對指定的操作數(shù)進行加 1操作 , 在循環(huán)程序中常用于修改地址指針和循環(huán)次數(shù)等 。 例如: ADD AL, 30 ; AL← ( AL)+ 30 ADD AX, 1000H ; AX← ( AX)+ 1000H ADD BX, 3FFH ; BX← ( BX)+ 3FFH ADD AX, SI ; AX← ( AX)+( SI) ADD SI, AX ; SI← ( SI)+( AX) ADD DI, CX ; DI← ( DI)+( CX) ADD AL, DATA[BX] ; AL← ( AL)+(( BX+ DATA)) ADD DX, DATA[BX+SI] ; DX← ( DX)+(( BX+ SI+ DATA)) ADD BETA[SI], 100 ;( SI+DETA) ← (( SI+BETA))+ 100 ADD BETA[SI], AX ;( SI+DETA) ← (( SI+BETA))+( AX) 注意 , 兩個存儲器操作不能直接相加 , 段寄存器也不能參加運算 。 執(zhí)行輸入指令時 , CPU可以從一個 8位端口讀入一個字節(jié)到 AL中 , 也可以從兩個連續(xù)的 8位端口讀一個字到 AX中 。 這條指令通常用來建立串指令操作所需的地址指針 。 為了實現(xiàn)存貯器單元之間的數(shù)據(jù)傳送 ,必須用內(nèi)部寄存器作為中介 。 8086指令系統(tǒng) 8086有 5類傳送指令,以實現(xiàn) CPU的內(nèi)部寄存器之間、CPU和存儲器之間、 CPU和 I/O端口之間的數(shù)據(jù)傳送。所以,該指令使CPU轉(zhuǎn)向 31050H去執(zhí)行。 6 . 基址 、 變址尋址 在 8086中,通常把 BX和 BP作為基址寄存器,而把 SI、 DI作為變址寄存器。 4 . 寄存器間接尋址 采用寄存器間接尋址方式時 , 操作數(shù)一定在存儲器中 ,存儲單元的有效地址由寄存 器指出 , 這些寄存器可以為 BX、BP, SI和 DI之一 , 由于上述 4個寄存器所黙認的段寄存器不同 , 這樣又可以分兩種情況: ① 以 SI、 DI、 BX進行間接尋址,則操作數(shù)通常存放在現(xiàn)行數(shù)據(jù)段中。 例: MOV AX, 1234H 這條指令的功能是:把立即數(shù) 1234H送入 AX中。 167。 3 . 直接尋址 使用直接尋址方式時,數(shù)據(jù)總是在存儲器中,存儲單元的有效地址由指令直接指出,所以直接尋址是對存儲器進行訪問時可采用的最簡單的方式。假如 SS=3000H 例: MOV AX, [BP] SS 3 0 0 02 0 0 03 2 0 0 0代碼段堆棧段AXAH AL341212 343202232022......BP...ROM...數(shù)據(jù)段物理地址 =SS 16+ BP=30000H+ 2022H=32022H 指令功能是將 32022H和 32022H兩單元的內(nèi)容送到 AX中。 7 . 基址 、 變址相對尋址 這種尋址實際上是基址、變址尋址的擴充。 但是 , 由于確定轉(zhuǎn)移地址需要 32位信息 , 因此只適用于存貯器尋址方式 。 MOV AL, BL ; BL中的 8位數(shù)據(jù)送 AL MOV DH, CL ; CL中的 8位數(shù)據(jù)送 DH MOV CX, AX ;將 AX中的 16位數(shù)據(jù)送 CX MOV BX, DI ;將 DI中的 16位數(shù)據(jù)送 BX MOV DS, AX ;將 AX中的 16位數(shù)據(jù)送 DS MOV ES, AX ;將 AX中的 16位數(shù)據(jù)送 ES 2)立即數(shù)傳送至 CPU的內(nèi)部通用寄存器(即 AX、 BX、CX、 DX、 BP、 SP、 SI、 DI),給這些寄存器賦值。 ① DL← ( SP) ; SP+ l → SP , SP=1FFDH ② DH← ( SP) ; SP+ l → SP , SP=1FFEH ③ AL← ( SP) ; SP+ l → SP , SP=1FFF H ④ AH← ( SP) ; SP+ l → SP , SP=2022H 2. 地址傳送指令 8086有 3條地址傳送指令 。 ( 3) LES指令 這條指令除將地址指針的段地址送入 ES外 , 其他操作與LDS的類似 。 存貯器 通用寄存器通用寄存器立即數(shù) 存貯器通用寄存器通用寄存器 存貯器進行加、減運算的源操作數(shù)和目的操作數(shù)的關(guān)系 1. 加法指令 ( 1) 不帶進位的加法指令 指令格式: ADD OPRDl, OPRD2 指令功能: OPRDl← ( OPRDl) +( OPRD2) ADD指令兩個操作數(shù)相加 , 結(jié)果送至目的操作數(shù) 。 例如:現(xiàn)有兩個雙精度字 00127546H和 00109428H,其中被加數(shù) 00127546H存放在 DATA1為首的內(nèi)存單元中,加數(shù)00109428H存放在 DATA2為首的內(nèi)存單元中。 SUB AL, 78H ; AL← ( AL)- 78H SUB BX, 5678H ; BX← ( BX)- 5678H SUB AX, CX ; AX← ( AX)-( CX) SUB AL, 4[SI] ; AL← ( AL)-(( SI+ 4)) SUB DX, 1000H[BX+SI] ; DX← ( DX)-(( BX+ SI+ 1000H)) SUB [SI+ 5], 100 ;( SI+5) ← (( SI+5))- 100 SUB [SI+ 2022H], AX ;( SI+2022H) ← (( SI+2022H))-( AX) 指令執(zhí)行后對各狀態(tài)標志位 OF、 SF、 AF、 PF和 CF均可產(chǎn)生影響。 例如: NEG AL NEG BYTE PTR[SI] 如果操作數(shù)的值為- 128( 16進制數(shù)為 80H) 或者一 32 768( 16進制數(shù)為 8000H) , 執(zhí)行求補指令后 , 操作數(shù)沒有變化 , 但溢出標志 OF=1。 如果 CF=0, 表示無借位 , 即被減數(shù)大 , 減數(shù)小 。 ( 1) 無符號數(shù)乘法指令 MUL 指令格式: MUL OPRD 指令功能: 若 OPRD為字節(jié)數(shù)據(jù) , 則執(zhí)行 AX← ( AL) ( OPRD) 若 OPRD為字數(shù)據(jù) , 則執(zhí)行 DX、 AX← ( AX) ( OPRD) 目的操作數(shù)為: AL或 AX( 隱含給出 ) 源操作數(shù)為:通用寄存器 、 存儲器 。 (OPRD) 余數(shù) OPRD為字數(shù)據(jù): AX← (DX) (AX)247。 若 AL中的D7=0, 則 ( AH) =00H;若 AL的 D7=1, 則 ( AH)=FFH。 調(diào)整的步驟如下: ① 如 AL寄存器的低 4位在 0~ 9之間 , 且 AF=0, 則跳過第 ②步 , 執(zhí)行第 ③ 步; ② 如 AL寄存器的低 4位為十六進制數(shù)的 A~ F或 AF=1, 則 AL中的內(nèi)容加 6, AH中內(nèi)容加 1, 并將 AF置 1; ③ 清除 AL寄存器的高 4位; ④ AF位的值送 CF位 。 本指令的調(diào)整方法是:把 AL寄存器的內(nèi)容除以 0AH, 商放在 AH中 , 余數(shù)保存在 AL中 。 ( 1) NOT邏輯求反指令 指令格式: NOT OPRD 指令功能: OPRD←OPRD 該指令對操作數(shù)進行求反操作 , 然后將結(jié)果送回 。 目的操作數(shù) OPRDl:可以是累加器 , 也可以是通用寄存器 , 也可以是存儲器 。 例如:若要檢測 AL中的最高位是否為 1, 且為 1時則轉(zhuǎn)移 。 XOR指令可以進行字節(jié)操作 , 也可以進行字操作 。 目的操作數(shù)可以是 8位 , 也可以 16位 。 CF最低位最高位0例如: MOV BL, 4EH SHR BL, 1 指令執(zhí)行后,( BL) =27H, CF=0 3. 循環(huán)移位指令 ( 1) ROL不帶進位的循環(huán)左移指令 指令格式: ROL OPRD, CL/1 指令功能:將目的操作數(shù) OPRD中的二進制數(shù)向左移動 1位或 CL寄存器中指定的位數(shù)。目的操作數(shù)可以是 8位,也可以 16位。 當 DF=0且是字節(jié)傳送時 , 則傳送后 SI、 DI加 1,以使指針指向下一個地址;當 DF=0且是字傳送時 , 則 SI、DI加 2。 5. STOS串存儲指令 指令格式: STOS OPRD1, OPRD2 STOSB ;字節(jié)存儲 STOSW ;字存儲 指令功能: 字節(jié)操作 (( DI)) ← ( AL) DI← ( DI) ?1 字操作 (( DI)) ← AX DI← ( DI) ?2 該類指令是字串存貯指令 。 REPE/REPZ指令是相等重復指令,即只要 ZF=l,且 CX≠0,串指令就重復執(zhí)行。 CLD LEA DI, DEST LEA SI, SOURCE MOV CX, 500 REPE CMPSB JCXZ NEXT MATCH: DEC SI MOV AL, BYTE PTR[SI] 1. JMP無條件轉(zhuǎn)移指令 這些指令都將引起程序執(zhí)行順序的改變 。 OPRD可以為寄存器尋址或存儲器尋址的某一種 。 指令功能: SP?( SP) - 2, ( SP) ?( IP) IP?OPRD對應 16位直接地址 在程序中 , OPRD一般為子程序名 , 匯編時匯編成 16位的偏移地址 。它們根據(jù)標志寄存器中各標志位的狀態(tài),決定程序是否進行轉(zhuǎn)移。 在 LOOPE和 LOOPNE兩條指令中,只要兩個條件中任 — 個不滿足,循環(huán)就結(jié)束。 ( 3) 使用 INT 21H指令 。 WAIT 使處理器處于等待狀態(tài) LOCK 封鎖總線指令 . 可放在任一指令前作為前綴 NOP 空操怍指令 , 處理器什么操作也不
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1