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

正文內(nèi)容

指令系統(tǒng)老師用的課件哦-文庫吧資料

2025-01-27 15:28本頁面
  

【正文】 + 7 + ) 11111011 + 251 + (5) 00000010 2 + 2 其標志位應(yīng)為 CF= 1,OF= 0,ZF= 0,SF= 0,PF= 0,AF= 1. 第 3章 8088/8086指令系統(tǒng) ③ 無符號數(shù) 帶符號數(shù) 00001001 9 + 9 + ) 01111100 + 124 + (+124) 10000101 133 123 因此 ,標志位為 CF= 0,OF= 1,ZF= 0,SF= 1,PF=0,AF= 1. 第 3章 8088/8086指令系統(tǒng) ④ 無符號數(shù) 帶符號數(shù) 10000111 135 121 + ) 11110101 + 245 + (11) 01111100 124 +124 此時 ,標志位為 CF= 1,OF= 1,ZF= 0,SF= 0,PF= 0,AF= 0. 第 3章 8088/8086指令系統(tǒng) 從上面實例 ③ 、 ④ 可知 ,帶符號數(shù)的正數(shù)相加 ,結(jié)果為負;帶符號數(shù)的負數(shù)相加 ,結(jié)果為正 ,并產(chǎn)生了帶符號數(shù)的溢出 ,OF= 1。 若操作結(jié)果有最低 4位向高位的進位或借位 ,則 AF= 1。 若結(jié)果是 0,則 ZF= 1。 標志位的改變是按以下原則進行的: 若結(jié)果是一個無符號數(shù)溢出 ,則 CF置 1。(DI)←(DI) + (CX) ADD BETA[ BX] ,AX ADD BYTEPTR[ BX] ,28 第 3章 8088/8086指令系統(tǒng) 下面通過加法運算的實例 , 討論一下運算結(jié)果對標志位的影響 。(AL)←(AL) + 25 ADD BX,0A0AH。 操作數(shù)可以是 8位 ,也可以是 16位 。 以上標志也稱為結(jié)果標志 。 兩個操作數(shù)的組合關(guān)系如圖 。 OPRD1和 OPRD2均為寄存器是允許的 ,一個為寄存器而另一個為存儲器也是允許的 ,但不允許兩個都是存儲器操作數(shù) 。 第 3章 8088/8086指令系統(tǒng) OPRD2為立即數(shù) ,也可以是任意一個通用寄存器或存儲器操作數(shù) 。 (1)加法指令 ADD(Addition) 指令格式: ADD OPRD1,OPRD2 OPRD1為任一通用寄存器或存儲器操作數(shù) ,可以是任意一個通用寄存器 ,而且還可以是任意一個存儲器操作數(shù) 。 (2)從存儲器取出 32位地址的指令 LDS及 LES 指令格式: LDSOPRD1,OPRD2 LESOPRD1,OPRD2 其中的 OPRD1為任意一個 16位的寄存器; OPRD2為 32位的存儲器地址 。 例如: [ZK(]LEABX,DATA1 LEADX,BETA[ BX+ SI] LEABX,[ BP][ DI] 第 3章 8088/8086指令系統(tǒng) 顯然 ,LEABX,DATA1的功能是將變量 DATA1的地址送至 BX,而不是將變量 DATA1的值送 BX,它等價于指令: MOV BX,OFFSETDATA1。 OPRD2為源操作數(shù) ,可為變量名 ,標號或地址表達式 。 如 MOV SI,OFFSETDATA1指令 ,其功能是將存儲器變量 DATA1的段內(nèi)偏移地址取至 SI寄存器中 ,OFFSETDATA1表達式的值就是取 DATA1的段內(nèi)偏移地址值 。 這是通過指令修改 TF標志的唯一方法 。 (4)從堆棧中彈出一個數(shù)據(jù)字送至 FLAG中的指令POPF指令格式: POPF本指令的功能與 PUSHF相反 ,在子程序調(diào)用和中斷服務(wù)程序中 ,往往用 PUSHF指令保護FLAG的內(nèi)容 ,用 POPF指令將保護的 FLAG內(nèi)容恢復(fù) 。 (2)將 AH存至 FLAG低 8位指令 SAHF 指令格式: SAHF 本指令將用 AH的內(nèi)容改寫 FLAG中的 SF、 ZF、 AF、PF和 CF標志 , 從而改變原來的標志位 。 本指令不影響狀態(tài)標志位 ,表格長度不超過 256字節(jié) 。 在執(zhí)行該指令前 , 應(yīng)將 TABLE先送至 BX寄存器中 ,然后將待查字節(jié)與在表格中距表首地址位移量送 AL,即 (AL)←((BX) + (AL))。 例如: XCHG AX, BX XCHG SI, AX XCHG CL, CH XCHG DX, BUFFER XCHG CH, DATA2[ SI] XCHG WORDA, CX 第 3章 8088/8086指令系統(tǒng) 若要實現(xiàn)兩個存儲器操作數(shù) DATA1及 DATA2的交換 , 可用以下指令實現(xiàn): PUSH DATA1 PUSH DATA2 POP DATA1 POP DATA2 第 3章 8088/8086指令系統(tǒng) XLAT 指令格式: XLATTABLE TABLE為一待查表格的首地址 。 交換操作的示意圖如圖 。 例如: POP AX POP DS POPDATA1 POPALFA[ BX][ DI] 第 3章 8088/8086指令系統(tǒng) 3. 數(shù)據(jù)交換指令 XCHG 數(shù)據(jù)傳送指令單方向地將源操作數(shù)送至目的操作數(shù)存儲單元 , 而數(shù)據(jù)交換指令則將兩個操作數(shù)相互交換位置 , 例如: XCHG OPRD1, OPRD2 其中的 OPRD1為目的操作數(shù) , OPRD2為源操作數(shù) ,該指令把源操作數(shù) OPRD2與目的操作數(shù) OPRD1交換 。此處的((SP))←OPRD ,也可以理解為: [ (SS)*16+ (SP)] ← OPRD或 [ SS:SP] ← OPRD 例如: PUSH DX PUSH SI PUSH BP PUSH CS PUSHDATA1 PUSHALFA [ BX][ SI] 第 3章 8088/8086指令系統(tǒng) 注意 , 每進行一次壓入操作 , 都壓入一個字 (16位 ),例中的 DATA1, ALFA[ BX] [ SI] 所指的存儲器操作數(shù)應(yīng)被指定為字類型 。 第 3章 8088/8086指令系統(tǒng) 圖 8086/8088堆棧 第 3章 8088/8086指令系統(tǒng) 圖 8088/8086中的堆棧操作 第 3章 8088/8086指令系統(tǒng) (2) PUSH及 POP指令的功能 實現(xiàn)壓入操作的指令是 PUSH指令;實現(xiàn)彈出操作的指令是 POP指令 , 其格式為: PUSH OPRD POP OPRD 其中的 OPRD為 16位 (字 )操作數(shù) , 可以是寄存器或存儲器操作數(shù) 。 SP稱為堆棧指針 , 確切地講是指向棧頂元素的地址指針 , 由SP的值就可以知道棧頂元素的位置 , 也就可以進行壓入和彈出的操作 。 在計算機中 , 堆棧設(shè)置在一個存儲區(qū)域中 , 如圖 。 第 3章 8088/8086指令系統(tǒng) 堆棧從一個稱為棧底的位置開始 , 數(shù)據(jù)進入堆棧的操作稱為壓入 (或壓棧 ), 數(shù)據(jù)退出堆棧的操作稱為彈出 ,每進行一次彈出操作 , 堆棧就減少一個元素 , 最后一次壓入的元素 , 稱為棧頂元素 , 壓入彈出操作都是對棧頂元素進行的堆棧的兩種基本的操作 。 第 3章 8088/8086指令系統(tǒng) 2 .堆棧操作指令 PUSH和 POP(1)什么叫堆棧 堆棧這個概念在 《 數(shù)據(jù)結(jié)構(gòu) 》 中 , 被定義為一種先進后出的數(shù)據(jù)結(jié)構(gòu) , 即最后進棧的元素將被最先彈出來 。 若要實現(xiàn)存儲單元間的數(shù)據(jù)傳送 ,可以借助于通用寄存器作為中介來進行 。 但是 CS不能作為目的操作數(shù) , 這點已在前面強調(diào)了兩次 。 由該圖可以看到以下幾點: ① 立即數(shù)只能作為源操作數(shù) ,不允許作目的操作數(shù) ,立即數(shù)也不能送至段寄存器 。 用BYTEPTR[ SI] , 總能告訴匯編程序 , 此處按字節(jié)類型處理 , 生成相應(yīng)的指令代碼 。 第三條指令中 , 用指針操作符 PTR重新把 [ SI] 所指的單元定義為字節(jié)類型 。 否則 , 匯編程序在匯編時 , 將指出類型不一致的錯誤 。 第 3章 8088/8086指令系統(tǒng) (4) 立即數(shù)到存儲器的數(shù)據(jù)傳送 立即數(shù)只能作為源操作數(shù) , 且一定要使立即數(shù)與存儲器變量類型一致 。 同樣要注意 , 存儲器 IP不能參加數(shù)據(jù)傳送 。 第 3章 8088/8086指令系統(tǒng) MOV ALFA[ BX+ DI] , ES中的目的操作數(shù)是存儲器操作數(shù) , 也是基址變址尋址 , 其有效地址 EA=(BX)+ (DI)+ ALFA。 實際的物理地址為 (ES)*16+ (BP)。 按照事先的約定 , BP應(yīng)與 SS段寄存器結(jié)合 ,找到實際的物理地址 。 匯編程序?qū)λ鼈冞M行相同的處理 ,即有效地址 EA= (BX)+(DI)+ LAST。 因為是數(shù)據(jù)字傳送 , 所以該操作數(shù)與求出的物理地址指向的兩個連續(xù)的存儲單元有關(guān) 。 有關(guān) OFFSET等運算符的含義 ,將在下一章中詳細介紹 。 上述指令不是將存儲器操作數(shù)送至 SI中 ,因為 TABLE前面有 OFFSET。此外 , 匯編語言應(yīng)有嚴格語法 , 并規(guī)定允許出現(xiàn)的字母 、 數(shù)字 、 符號和特定的保留字的意義 , 否則就不能正確有效地進行匯編 。 第 3章 8088/8086指令系統(tǒng) 以上說明的目的是想告訴讀者一個容易被忽略的事實:匯編語言只是一種符號化的語言 ,匯編指令是不能被計算機所識別并執(zhí)行的 ,只有將匯編指令正確地匯編為對應(yīng)的指令代碼時 ,才能被計算機識別并執(zhí)行 。 其作用是將 BUFFER定義為新的變量類型 。 第 3章 8088/8086指令系統(tǒng) 在數(shù)據(jù)段中 , 如果用偽指令 DB將 BUFFER變量定義為字節(jié)類型 , 但仍要對從 BUFFER開始的單元進行數(shù)據(jù)字的傳送 , 則應(yīng)將指令寫成如下形式: MOV AX,WORDPTRBUFFER。 如果是對字進行操作 , 應(yīng)將指令改寫成如下的形式: MOV AX, BUFFER 這時匯編語言中在定義 BUFFER變量時 , 要用 DW偽指令將其定義為字類型變量
點擊復(fù)制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1