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

正文內(nèi)容

[計算機(jī)硬件及網(wǎng)絡(luò)]第3章指令系統(tǒng)-文庫吧在線文庫

2025-03-25 13:46上一頁面

下一頁面
  

【正文】 行間接尋址 — 數(shù)據(jù)段基址尋址 MOV AX, [ BX] MOV CX, ES: [ BX] (2) 以 BP寄存器進(jìn)行間接尋址 — 堆棧段基址尋址 MOV BX, [ BP] (3)以 SI、 DI寄存器進(jìn)行間接尋址 —— 變址尋址 (4) 將 BX、 BP和 SI、 DI寄存器組合起來進(jìn)行間接尋址 —— 基址加變址的尋址 MOV AX,[ BX+SI] 寄存器相對尋址 EA為寄存器中內(nèi)容和指令中給出的位移量的和。 82H端口中的字節(jié)輸入到 AL OUT 80H,AX 。 學(xué)時分配 本章用 8學(xué)時 , 其中: 基本指令系統(tǒng) 6學(xué)時 規(guī)范程序 1學(xué)時 32位擴(kuò)充指令 1學(xué)時 8086的尋址方式和指令系統(tǒng) 匯編語言指令要解決的 兩個問題 : 要指出進(jìn)行什么操作 —— 操作符; 要指出操作數(shù)和操作結(jié)果放在何處 —— 尋址方式 。 將端口 80H中的字節(jié)讀入 AL OUT DX,AX 。 基址加變址的尋址 通常將 BX,BP稱為基址寄存器,將 SI,DI稱為變址寄存器。試判斷下列指令的尋址方式,并寫出各種尋址方式下的有效地址 EA和物理地址 PA,并說明執(zhí)行結(jié)果。 ② 通用傳送指令中總是既含源操作數(shù),又含目的操作數(shù)。 ② 推入指令 , SP減 2,數(shù)據(jù)在棧頂。 直接的輸入輸出指令 提供端口號。 (3) 裝入地址的指令 LES 功能: 將一個地址指針裝入 ES和另一個寄存器 。如何修改,首先用 LAHF把 SF標(biāo)志位的標(biāo)志的低 8位送 AH,然后對第 AH的相應(yīng)為進(jìn)行修改或放置,再用 SAHF指令送回標(biāo)志寄存器。從堆棧中取出全部標(biāo)志 or ax,0100h 。置位方向標(biāo)志: DF←1 CLI 。 例: [+4]補 = 0000 0100 =[+4]反 =[+4]原 [4]補 =[+4]反 +1=11111011+1=11111100 0的補碼表示為: [+0]反 = [0]反 =0000 0000 正零 =負(fù)零 所有算術(shù)運算指令均 影響狀態(tài)標(biāo)志 。 如: SUB BX, CX ; 將 BX中的內(nèi)容減去 CX中的 內(nèi)容 , 結(jié)果在 BX中 SUB [BP+2], CL ; 將 BP+2所指的單元中的 值減去 CL中的值 , 結(jié)果 在 BP+2所指的堆棧單元中 SUB指令影響 OF,SF,ZF,AF,PF和 CF標(biāo)志 . SUB AL, 20 ; AL中的數(shù)減去 20, 結(jié)果在 AL中 SUB SI, 5010H ; SI中的數(shù)減去 5010H, 結(jié)果在 SI中 SUB WORD PTR [DI], 1000H ; DI和 DI+1所指的兩單元中 的數(shù)減去 1000H, 結(jié)果在 DI和 DI+1所指的單元中 例:假設(shè) DL=0A9H,內(nèi)存 DA_BYTE單元中為 0B7H,那么指令 SUB DA_BYTE , DL 執(zhí)行后的結(jié)果及各個標(biāo)志位的設(shè)置。 如: DEC AX ; 將 AX的內(nèi)容減 1, 再送回 AX中 DEC BL ; 將 BL的內(nèi)容減 1, 結(jié)果送回 BL中 DEC BYTE PTR [DI+2] ; 將 DI+2所指單元的內(nèi)容減 1, 結(jié)果送回此單元 DNC指令影響位 OF,SF,ZF,AF和 PF. (4) 求補指令 NEG 操作數(shù)取補碼 ,再將結(jié)果送回 。al100 jb below 。al=b4h=180d mov bl,11h 。ax=400h=1024d mov bl,0b4h 。商 al=f3h=13d,余數(shù)ah=24h=36d (3) 將字節(jié)擴(kuò)展成字的指令 CBW 功能 :將 AL寄存器中的符號位擴(kuò)展到 AH中 。ax=007fh (4) 將字?jǐn)U展成雙字的指令 CWD 功能: 將 AX中的被除數(shù)擴(kuò)展成雙字 , 即把 AX中的符號位擴(kuò)展到 DX中 。ax=0608h,表示非壓縮BCD碼 68 mov bl,09h 。十進(jìn)制調(diào)整: al=96h 。十進(jìn)制調(diào)整: ax=0509h 。ax=0608h,表示非壓縮 BCD碼 68 mov bl,09h 。ax=0608h,表示非壓縮 BCD碼 68 mov bl,09h 。al=74h, CF=OF=0、 SF=0、ZF=0、 PF=1 例:將 BL中 D0和 D3求反,其余位不變 xor bl,00001001b XOR指令經(jīng)常給寄存器清 0,同時使 CF也清 0;例如: xor ax,ax 。否則 ZF=1,即 D0=0,順序執(zhí)行 there: ... 例題 1:對某個字節(jié)清零。 例 7:程序中要求把標(biāo)志寄存器中溢出位 OF取反。al=e0h, CF=1, SF= ZF=0、PF=0, OF=0 shr al,1 。dx←7 bx+ 3 ax 例:用移位指令實現(xiàn)把 AL中的數(shù) X乘 10。 用移位操作代替乘除發(fā),可提高運算速度。 1, DI←DI 177。 反過來 , 用 STD將方向標(biāo)志 DF置 1 。傳送次數(shù)減 1 jnz again 。字串比較: DS:[SI]- ES:[DI],SI←SI 177。進(jìn)行下一個字符的比較 ? mov al,0 。(CX) ← 串長度 CLD 。(BX) ← 不相等單元的地址 MOV AL,[SI] 。 SCASB 。為 0( ZF=1),發(fā)現(xiàn)空格,轉(zhuǎn)移到 found ? dec cx 。 LODS 指令和 STOS指令功能互逆,它將 SI寄存器指向的主存單元的內(nèi)容送至 AL或 AX寄存器,并相應(yīng)修改 SI使其指向下一個元素?,F(xiàn)在要把其中的正數(shù)、負(fù)數(shù)分開,分別存入同一個段的兩個緩沖區(qū)。符號位為 0,是正數(shù),存入 dplus ? jmp again 。IP← IP+位移量 段內(nèi)間接轉(zhuǎn)移; EA在寄存器或內(nèi)存單元中。 段內(nèi)轉(zhuǎn)移是指在當(dāng)前代碼段 64KB范圍內(nèi)轉(zhuǎn)移,因此不需要更改 CS段地址,只要改變 IP偏移地址。轉(zhuǎn)移到 1500h:0 注意:凡是段間轉(zhuǎn)移和段內(nèi)間接轉(zhuǎn)移都必須是無條件轉(zhuǎn)移指令。 和下一個數(shù)比較 JAZ P2 。最高位為 0( ZF= 1),轉(zhuǎn)移到 next0 ? mov ah,0ffh 。 在任何時候, CPU將 CS、 IP的內(nèi)容當(dāng)作指令的段地址和偏移地址,用它們組合成指令的物理地址,到內(nèi)存中讀取指令碼執(zhí)行。這些指令都會實現(xiàn)修改段地址 CS、偏移量 IP 的作用。 MOV指令可以改變 8086CPU中大部分寄存器的值,但是 MOV指令不能修改 CS、IP寄存器的值。最高位為 1( ZF= 0),轉(zhuǎn)移到 next1 mov ah,0h 。 MOV BX,2022H。BX指向 2022H單元 MOV AL,[BX] 。 段內(nèi)轉(zhuǎn)移,間接尋址 例如: jmp ax 。IP← label的偏移地址,CS← label的段地址 段間間接轉(zhuǎn)移; CS和 IP用內(nèi)存中內(nèi)容來裝入。完成正負(fù)數(shù)據(jù)分離 控制轉(zhuǎn)移指令 控制轉(zhuǎn)移指令中包括 5類指令 , 即 子程序調(diào)用和返回指令 無條件轉(zhuǎn)移和條件轉(zhuǎn)移指令 循環(huán)控制指令 中斷指令 處理器控制指令 轉(zhuǎn)移指令 ? 能夠改變 CS和 IP內(nèi)容的指令被統(tǒng)稱為轉(zhuǎn)移指令。cx← 字節(jié)數(shù) ? cld ? go_on: lodsb 。將目的地址送 DI MOV CX,0080H 。搜索 ? jz found 。 2 例:在字符串中查找 “ 空格 ”( ASCII碼為 20H)字符 該字符串在附加段,首地址由 string指示,具有 count個字節(jié)。字符串不等,轉(zhuǎn)移到 unmat,設(shè)置ffh標(biāo)記 ? mov al,0 。檢查 (CX)是否是 0。M1為源串首地址, M2為目的串首地址。比較的結(jié)果存入 result單元,為 0表示相等;為 1(即 ffh)表示不等。 CMPSB 。匯編偽指令 offset指示 source的偏移地址 mov di,offset destination mov cx,100 。 2 如: MOV SI, 1000H ; 源地址為 1000H MOV DI, 2022H ; 目的地址為 2022H MOV CX, 100 ; 字符串長 100個字節(jié) CLD ; 方向標(biāo)志清 0, 使指針 按增量方向修改 REP MOVSB ; 將源地址開始的100個 字節(jié)傳送到目的地址 MOVSB指令 注意點 : ① 源地址用 SI寄存器指出 ,目的地址用 DI寄存器指出 ,并且默認(rèn)源地址在 DS, 目的地址在 ES。也可以用 or al,ah 串操作指令 字符串傳送指令 字符串比較指令 字符串檢索指令 取字符串指令 存字符串指令 字符串傳送指令 字符串傳送指令 MOVSB/MOVSW MOVSB用于字節(jié)傳送 MOVSW用于字傳送 。 4X ( 2T) SAL AL,1 。si←2 ax ? add si,ax 。如果進(jìn)行一位移動,則按照操作數(shù)的最高符號位是否改變,相應(yīng)設(shè)置溢出標(biāo)志 OF:如果移位前的操作數(shù)最高位與移位后操作數(shù)的最高位不同(有變化),則 OF = 1;否則 OF = 0。 例題 4:將指定的數(shù)據(jù)取反。 如: TEST AX, 8000H ; 如 AX的最高位為 1,則 ZF = 0, 否則 ZF= 1 例: TEST指令用于測試某一(幾)位是否(同時)為 0或為 1。實現(xiàn)非壓縮 BCD碼除法: 68=7 9+ 5 邏輯運算和移位指令 邏輯運算指令 移位指令 邏輯運算指令 邏輯運算指令包括 AND(與 ) OR(或 ) NOT(非 ) XOR(異或 ) TEST(測試 ) 按位邏輯運算 A NOT A A B AANDB AORB AXORB 0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 邏輯運算 AND(與 ) AND dest,src 。實現(xiàn)非壓縮 BCD碼乘法: 8 9=72 ( 4) BCD碼的除法十進(jìn)制調(diào)整指令 AAD 功能: 在除法之前 , 對除數(shù)和被除數(shù)進(jìn)行非組合的 BCD碼調(diào)整 。二進(jìn)制減法: al=68h28h=40h das 。AL← 將 AL中的減差調(diào)整為壓縮 BCD碼 非壓縮 BCD碼的減法運算 mov ax,0608h 。實現(xiàn)非壓縮 BCD碼加法: 68+9=77 壓縮 BCD碼的加法運算 mov al,68h 。 AAA 。 mov al,80h 。 ④ 要求用 16位數(shù)除以 8位數(shù),或者用 32位數(shù)除以16位數(shù)。al=b4h=76d mov bl,11h 。 , CF=0,被減數(shù)>減數(shù); CF=1,被減數(shù)<減數(shù)。ax=ffffh, OF=0、 SF=ZF=0、 PF= CF=1 neg ax 。[200h]=4652h mov bx,1feh 。 P:MOV DL,12H。 例: X=+1010011則 [X]原 = 01010011 X=1010011 則 [X]原 = 11010011 0的原碼表示為: [+0]原 = 0000 0000 正零 [0]原 = 1000 0000 負(fù)零 要了解補碼,先了解反碼 :正數(shù)的反碼與原碼相同,最高位是符號位,用0表示正,其余為數(shù)值位。復(fù)位進(jìn)位標(biāo)志: CF←0 STC 。 進(jìn)棧指令先使堆棧指針 SP減 2,然后把一個字操作數(shù)存入堆棧頂部。 存器名,并沒有出現(xiàn)段寄存器名,但是在指令執(zhí)行中指出了段寄存器名稱。 已知二進(jìn)制數(shù)字 5,如何能轉(zhuǎn)換成對應(yīng)格雷碼? 0001 1000 0000 0011 0000 0101 0000 0110 0000 1001 00
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1