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

正文內(nèi)容

第二章微處理器和指令系統(tǒng)-資料下載頁

2025-08-01 13:04本頁面
  

【正文】 統(tǒng) 程序員使用,一般用戶很少用到。 ?空操作指令 NOP. 使 CPU不作任何操作,僅影 響 (E)IP寄存器,對標(biāo)志位無影響。 ?外同步類指令 實(shí)現(xiàn) CPU與外部時(shí)間的同步, 包括 HTL、 ESC、 WAIT、 LOCK。 80486的指令簡介 86 主要包括: ?數(shù)組邊界檢查指令 BOUND ?進(jìn)入過程指令 ENTER ?退出過程指令 LEAVE 可為實(shí)現(xiàn)像 C和 PASCAL這樣的結(jié)構(gòu)化語言提供機(jī)器語言支持。 80486的指令簡介 87 幾類常用指令詳解 ?數(shù)據(jù)傳送指令 ?算術(shù)運(yùn)算指令 ?邏輯運(yùn)算與移位指令 ?串操作指令 ?控制轉(zhuǎn)移指令 88 重點(diǎn)關(guān)注: ?指令的匯編格式 ?指令的基本功能 ?指令支持的尋址方式 ?指令的執(zhí)行對標(biāo)志位的影響 ?指令的特殊要求 89 數(shù)據(jù)傳送指令 ?數(shù)據(jù)傳送是計(jì)算機(jī)中最基本 、 最常用的一類操作 。 ?使用頻率最高 ?不影響標(biāo)志位 ?尋址方式最豐富 特點(diǎn): 90 ?傳送指令 ( MOV) ?交換指令 ( XCHG) ?I/O指令 ( IN/OUT) ?裝入有效地址指令 ( LEA) ?裝入段寄存器指令 ( LDS、 LES、 LFS、 LGS、LSS) ?查表轉(zhuǎn)換指令 ( XLAT) ?壓棧 /彈棧指令 (PUSH/PUSHA/PUSHAD/POP/POPA/POPAD)) ?擴(kuò)展傳送指令 ( MOVSX/MOVZX) ?字節(jié)交換指令 ( BSWAP) 91 1. 傳送指令 ?指令操作: (源操作數(shù) )→ 目的操作數(shù) ? 指令格式: MOV 目的操作數(shù) , 源操作數(shù) ? 尋址規(guī)定: REG/MEM/SREG, REG REG/MEM, SREG REG/SREG, MEM REG/MEM, IMM 8/16/32位通用寄存器 REG MEM 8/16/32位存儲器 SREG 段寄存器 IMM8/16/32位立即數(shù) 92 80486的指令簡介 通用寄存器 ( EAX、 EBX、 ECX、 EDX、 EBP、 ESP、 ESI、 EDI) 立 即 數(shù) CS 存 儲 器 段寄存器 (SS、 DS、 ES、 FS、 GS) MOV指令允許的傳送關(guān)系 93 使用說明: ? 源操作數(shù)和目的操作數(shù)的 類型必須一致 。 ? 目的操作數(shù) 不能為立即數(shù) 。 ? CS和 (E)IP均不能用作指令的目的寄存器。 ? 段寄存器間不能直接傳送,也不能直接將立即數(shù)送給段寄存器。 ? 源操作數(shù)為立即數(shù) ,而目的操作數(shù)類型不確定時(shí) ,要給目的操作數(shù)加類型說明。 ? 源操作數(shù)和目的操作數(shù) 不能同為存儲器 操作數(shù)。 94 ⑴ MOV DS, 100 [例 ] 識別下列指令的正確性,對錯(cuò)誤的指令,說明錯(cuò)誤的原因。 ⑵ MOV [1000H], 23H 錯(cuò) 。 源 、 目的操作數(shù)不能同為存儲器尋址 。 ⑶ MOV [1000H], [2022H] 錯(cuò) 。 立即數(shù)不能直接賦給段寄存器 。 錯(cuò) 。 目的操作數(shù)長度不確定 。 ⑷ MOV DATA, 1133H ⑸ MOV CS, AX 依賴于 DATA的定義 錯(cuò) 。 不能用傳送指令改變代碼段寄存器 。 ⑹ MOV AX, [0100H+BX+BP] 錯(cuò) 。 地址寄存器不能同為基址寄存器 。 95 [例 ] FIRST, SECOND為字節(jié)變量,寫出將 FIRST開始的字內(nèi)容送給變量 SECOND開始的字單元指令序列。 MOV AL, FIRST MOV SECOND, AL MOV AL, FIRST[1] MOV SECOND[1], AL MOV AX, WORD PTR FIRST MOV WORD PTR SECOND, AX ⑵ 用字傳送 ⑴ 用字節(jié)傳送 96 2. 交換指令 ? 操作: (目的操作數(shù) ) ?(源操作數(shù) ) ? 格式: XCHG 目的操作數(shù) , 源操作數(shù) REG/MEM, REG REG, MEM ? 說明: ⑴ 基本用法同 MOV指令 。 ⑵ 當(dāng)源或目的操作數(shù)為 MEM操作數(shù)時(shí) , 會 自動激活 LOCK信號 ,該特性常用于多機(jī) 、 多任務(wù)或多用戶系統(tǒng)中的臨界段 ( 共享資源 ) 訪問 。 注意: ( 1)該指令不影響標(biāo)志位; ( 2)不允許使用段寄存器。 97 [例 ] FIRST, SECOND已定義為字節(jié)變量,寫出將變量 FIRST和 SECOND中內(nèi)容交換的指令序列。 解: ⑴ 用交換指令 XCHG AL, FIRST XCHG SECOND, AL XCHG AL, FIRST ⑵ 用 MOV指令 MOV AL, FIRST MOV BL, SECOND MOV FIRST, BL MOV SECOND, AL 98 TEST: MOV AL, 0FFH XCHG AL, SEMAPHORE AND AL, AL ; 產(chǎn)生條件碼 JNZ TEST ; 忙時(shí)等待 … (臨界段程序 ) MOV AL, 0 MOV SEMAPHORE, AL ; 清信號燈 [例 ]:臨界段訪問(測試與置操作) 99 ⑴ 輸入 指令 ?格式: IN 累加器 , 端口 AL/AX/EAX, IMM8 AL/AX/EAX, DX ?操作: ( I/O端口 ) → AL/AX/EAX ⒊ I/O指令 直接尋址 : 指令給出的立即數(shù)是I/O端口地址 間接尋址 : DX寄存器給出的是I/O端口地址 100 ⑵ 輸出指令 ?格式: OUT 端口 , 累加器 IMM8 , AL/AX/EAX DX , AL/AX/EAX ?操作:( AL/AX/EAX) →I/O 端口 說明: I/O端口有兩種尋址方式 ● 使用立即數(shù)的 直接尋址 ,尋址范圍為 0~ 255。 ● 使用 DX寄存器的 間接尋址 ,尋址范圍為 0~ 2161。 101 ? 格式 : LEA r16/r32, mem 。r16/r32mem的有效地址 EA ?把源操作數(shù)的地址偏移量 目的操作數(shù)寄存器 ?例 LEA AX, [BP][DI] ? 說明 ?LEA指令處理變量的地址 (EA)而不是變量的內(nèi)容 ? LEA和 MOV指令的比較 MOV BX, OFFSET VAL 。將 VAL的有效地址 =BX MOV BX, VAL 。將 VAL的值 =BX LEA BX, VAL 。將 VAL的有效地址 =BX 目標(biāo)傳送指令 102 ?MOV指令用 OFFSET操作不能直接取數(shù)組中任意元素的位移量,只能取數(shù)組的第一個(gè)元素的位移量,而 LEA可以傳送任意數(shù)組元素的位移量。 如 LEA DX, BETA[BX][SI] ?LEA的源操作數(shù)必須是存儲器操作數(shù) ?LEA不影響 F標(biāo)志 ? LDS reg, mem ? 目的操作數(shù)為 16位或 32位 通用寄存器之一,源操作數(shù)是雙字長存儲器指針,將雙字長源操作數(shù)中的低地址字傳送給目的寄存器,將雙字長源操作數(shù)中的高地址字傳送給 DS段寄存器 103 ?如 B DB ‘F’ A DD B LDS BX, A ; B的位移量 =BX, B的段基址 =DS MOV AL, [BX] ; 將‘ F’=AL ?LES reg, mem ?和 LDS一樣,只是把雙字長源操作數(shù)中的高地址字傳送給 ES而不是 DS 104 ? 說明: XLAT是一條 隱含尋址 的指令 。 隱含兩個(gè)操作數(shù):DS:(E)BX存放表基址 ,AL存放查表參數(shù) 。 使用前要給隱含操作數(shù)賦初值 。 5. 查表指令 ? 格式: XLAT ? 操作: ((EBX)+(AL))→AL ((BX)+(AL))→AL ? 注意 : ( 1) 不影響標(biāo)志位; ( 2) 字節(jié)表格 ( 長度不超過 256) 首地址存入 BX; ( 3) 需轉(zhuǎn)換代碼存入 AL。 105 [例 ] 內(nèi)存中自 TABLE開始的 16個(gè)單元連續(xù)存放著自然數(shù) 0到 15的平方值 (構(gòu)成一個(gè)平方表 ), 任給一整數(shù) M在 XX單元中 (該數(shù)為 0≤ M≤ 15), 查表求M的平方值 , 并將結(jié)果存入 YY單元中 。 解 : LEA BX, TABLE MOV AL, XX XLAT MOV YY, AL TABLE 0 +1 1 +2 4 +3 9 +15 225 XX 5 106 6. 壓棧 /彈棧指令 ?格式: PUSH 源操作數(shù) REG16/MEM16/IMM16 REG32/MEM32/IMM32 ?操作: ((E)SP)2/4→(E)SP (源操作數(shù) )→( SS:(E)SP) 107 ? 格式: POP 目的操作數(shù) MEM16/REG16 MEM32/REG32 ? 操作 : ([SS: (E)SP])→ 目的操作數(shù) ((E)SP)+ 2/4→(E)SP 彈棧指令 108 ? 堆棧指令的操作數(shù)只能為 字或雙字 。 ? PUSH和 POP要成對出現(xiàn) , 以保持堆棧平衡 。 ? 堆棧指令也隱含了一個(gè) 目的 /源操作數(shù) — — 堆棧 。 ? 壓棧順序是 先壓高字節(jié)后壓低字節(jié) , 彈棧則是 先彈低字節(jié)后彈高字節(jié) 。 ( 先進(jìn)后出 ) 使用說明 : 注意: ( 1)指令執(zhí)行后不影響標(biāo)志位; ( 2)不能用立即尋址方式; ( 3)目標(biāo)操作數(shù)不能是 CS。 109 [例 ] 用堆棧操作指令將 BX和 CX中的兩個(gè) 16位數(shù)(其中 BX是高 16位)組成 32位數(shù)傳送到 EAX寄存器中。 解: PUSH BX ; 先壓高 16位 PUSH CX ; 后壓低 16位 POP EAX 110 [例 ]設(shè)程序在數(shù)據(jù)段中定義的數(shù)組如下 : NAMES DB 39。TOM..39。 DB 20 DB 39。ROSE39。 DB 30 DB 39。KATE.39。 DB 25 請指出下列指令是否正確,如正確, A累加器中的結(jié)果是多少? 111 1. MOV BX, OFFSET NAMES MOV AL,[BX+5] (AL)=[NAMES+5]=20 2. MOV AX, NAMES 錯(cuò),源與目的操作數(shù)類型不一致 3. MOV AX, WORD PTR NAMES+1 (AX)=[NAMES+1]=‘MO’=4D4FH 4. MOV BX,6 MOV SI,5 MOV AX,NAMES[BX][SI] 前兩條指令正確,第三條錯(cuò),源與目的操作數(shù)類型不一致 ‘ T’ +1 ‘O’ +2 ‘M’ +3 ‘.’ +4 ‘.’ +5 20 +6 ‘R’ +7 ‘O’ +8 ‘S’ +9 ‘E’ +10 30 +11
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1