版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、3.3 8086/8088指令系統(tǒng)可分成如下6類: 數(shù)據(jù)傳送指令 算術(shù)運(yùn)算指令 邏輯運(yùn)算和移位指令 串操作指令 程序控制指令 處理器控制指令13.3.1 數(shù)據(jù)傳送指令 可實(shí)現(xiàn) 存儲器 寄存器 I/O 數(shù)據(jù)傳送指令又可分為如下四種: 通用傳送 目標(biāo)地址傳送 標(biāo)志傳送 輸入輸出21.通用傳送指令(1) MOV dest,src; destsrc 傳送的是字節(jié)還是字取決于指令中涉及的寄存器是8位還是16位。 具體來說可實(shí)現(xiàn): MOV mem/reg1,mem/reg2 指令中兩操作數(shù)中至少有一個(gè)為寄存器 例: MOVCL,DL MOVAX,BXMOVSI,CXMOVCL,BX+53 MOV reg,
2、data ;立即數(shù)送寄存器 MOV mem,data ;立即數(shù)送存儲單元 MOV acc,mem ;存儲單元送累加器 MOV mem,acc ;累加器送存儲單元 MOV segreg,mem/reg ;存儲單元/寄存器送 段寄存器 MOV mem/reg,segreg ;段寄存器送存儲單 元/寄存器4MOV指令使用規(guī)則:1) IP不能作目的寄存器2) 不允許memmem3) 不允許segregsegreg4) 立即數(shù)不允許作為目的操作數(shù)5) 不允許segreg立即數(shù)6) 源操作數(shù)與目的操作數(shù)類型要一致5幾個(gè)不能傳送的解決辦法:用AX作橋梁存儲器存儲器: MOV AX,MEM1 MOV MEM2
3、,AX段寄存器段寄存器: MOV AX,DS MOV ES,AX段寄存器立即數(shù): MOV AX,DATA MOV DS,AX6應(yīng)用舉例:將1000H開始的100個(gè)存儲單元 全部填充為ASCII碼2AH(*)。程序段如下: MOV DI,1000H MOV CX,64H MOV AL,2AHAGAIN:MOV DI,AL INC DI DEC CX JNZ AGAIN HLT7上程序段存放在代碼段中,設(shè)(CS)=109EH,則各條指令存放地址如下: CS : IP 指令109E : 0100 MOV DI,1000H109E : 0103 MOV CX,64H109E : 0106 MOV AL
4、,2AH109E : 0108 MOV DI,AL109E : 010A INC DI109E : 010B DEC CX109E : 010C JNZ 0108109E : 010E HLT109E : 01108 寫入2AH(*)后,數(shù)據(jù)段中相應(yīng)存儲單元的內(nèi)容改變?nèi)缦拢篋S:1000 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ADS:1010 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ADS:1020 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A
5、2ADS:1030 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ADS:1040 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ADS:1050 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ADS:1060 2A 2A 2A 2A9什么是堆棧? 按“后進(jìn)先出(LIFO)”方式工作的存儲區(qū)域。堆棧以字為單位進(jìn)行壓入彈出操作。為什么要設(shè)置堆棧?為什么要按 “后進(jìn)先出”方式工作?參見下圖(2) 堆棧操作指令10主程序IP繼續(xù)執(zhí)行主程序執(zhí)行子程序轉(zhuǎn)子程序壓棧彈出
6、返回主程序主程序IPIP(下)繼續(xù)執(zhí)行主程序轉(zhuǎn)子程序1返回主程序IP執(zhí)行子程序 2轉(zhuǎn)子程序2返回子程序1IP(下)執(zhí)行子程序1繼續(xù)執(zhí)行子程序1(a)(b)子程序調(diào)用示意圖(a) 主程序調(diào)子程序; (b) 子程序嵌套示意圖壓棧彈出IP(下)11規(guī)定由SS指示堆棧段的段基址,堆棧指針SP始終指向堆棧的頂部,SP的初值規(guī)定了所用堆棧區(qū)的大小。堆棧的最高地址叫棧底。 SPSS堆棧段進(jìn)棧方向退棧方向棧底棧頂12 壓棧指令 PUSH src ; src為16位操作數(shù) 例:PUSHAX;將AX內(nèi)容壓棧 執(zhí)行操作:(SP)-1高字節(jié)AH (SP)-2低字節(jié)AL (SP)(SP)- 213設(shè)(AX)=1020H
7、,執(zhí)行示意圖如圖低地址存儲區(qū)(SS段)執(zhí)行前(AX)=1020(SP)存儲區(qū)(SS段)進(jìn)棧方向執(zhí)行后2010(AL)(AH)2-8PUSH AX指令執(zhí)行示意圖(SP)-2(SP)高地址低地址高地址(SP)-114壓棧指令的格式為: PUSH reg PUSH mem/reg PUSH segreg例如: PUSH AX PUSH BX PUSH DS 注意進(jìn)棧方向是高地址向低地址發(fā)展。15 彈出指令 POPdest例:POPBX;將棧頂內(nèi)容彈至BX 執(zhí)行操作:(BL)(SP) (BH)(SP)+1 (SP)(SP)+216POP BX 的執(zhí)行示意圖如下圖所示低地址存儲區(qū)(SS段)出棧方向執(zhí)行前
8、2010POP BX指令執(zhí)行示意圖(SP)存儲區(qū)(SS段)執(zhí)行后(BX)=1020(SP)(SP)+1(SP)+2BX2010高地址低地址高地址17堆棧指令使用時(shí)應(yīng)注意幾點(diǎn):堆棧操作總是按字進(jìn)行不能從棧頂彈出一個(gè)字給CS堆棧指針為SS:SP,SP永遠(yuǎn)指向棧頂SP自動(dòng)進(jìn)行增減量(-2,+2)18格式:XCHG reg,mem/reg功能:交換兩操作數(shù)的內(nèi)容。 要求:兩操作數(shù)中必須有一個(gè)在寄存器中; 操作數(shù)不能為段寄存器和立即數(shù); 源和目地操作數(shù)類型要一致。舉例: XCHGAX,BX XCHG2000,CL(3)交換指令XCHG19(4)查表指令XLAT 執(zhí)行的操作:AL(BX)+(AL) 又叫查
9、表轉(zhuǎn)換指令,它可根據(jù)表項(xiàng)序號查出表中對應(yīng)代碼的內(nèi)容。執(zhí)行時(shí)先將表的首地址(偏移地址)送到BX中,表項(xiàng)序號存于AL中。 例如:內(nèi)存數(shù)據(jù)段有一張16進(jìn)制數(shù)的ASCII碼表,設(shè)首地址為2000H,如欲查出表中第11個(gè)代碼(代碼序號從0開始)即十六進(jìn)制數(shù)B的ASCII碼。ASCII表在DS段中,并假設(shè)(DS)=4000H。見下頁圖。20303132.394142.4546.42000H+042000H+110129ABEF十六進(jìn)制數(shù)ASCII碼表存儲器21則可用如下幾條指令實(shí)現(xiàn):MOV BX,2000H ;(BX)表首地址MOV AL,0BH ;(AL)序號XALT ; 查表轉(zhuǎn)換執(zhí)行后得到:(AL)=
10、 42H = B注意:轉(zhuǎn)換表長度最大為256個(gè)表項(xiàng)(字節(jié))。22(5)字節(jié)-字轉(zhuǎn)換指令格式:CBW ;把AL的符號位復(fù)制到AH CWD ;把AX的符號位復(fù)制到DX用途:用于有符號數(shù)的除法。例如:(AL) = A7H,則執(zhí)行CBW后,AH的內(nèi) 容為FFH。232. 輸入輸出(I/O)指令只限于用累加器AL或AX來傳送信息。功能: (累加器)I/O端口(1)輸入指令I(lǐng)N格式: IN acc,PORT ;PORT端口號0255H IN acc,DX ;DX表示的端口范圍達(dá)64K例:IN AL,80H ;(AL)(80H端口) IN AL,DX ;(AL)(DX)24例:OUT 68H,AX ;(69
11、H,68H)(AX) OUT DX,AL ;(DX)(AL)在使用間接尋址的IN/OUT指令時(shí),要事先用傳送指令把I/O端口號設(shè)置到DX寄存器,如: MOV DX,220H IN AL,DX ;將220H端口內(nèi)容讀入AL(2) 輸出指令OUT格式:OUT port,acc OUT DX,acc253. 地址傳送指令共有三條:格式:LEA reg,mem ; 將指定存儲器的16位偏移 地址送指定寄存器 LDS reg, mem32; DS:reg(mem開始的四 個(gè)內(nèi)存單元) LES reg, mem32; 同上,但DS改為ES 要求源操作數(shù)必須是一個(gè)內(nèi)存操作數(shù),目的操作數(shù)必須是一個(gè)16位的通用
12、寄存器。26設(shè):(SI)=1000H則執(zhí)行該指令后,(BX)=1010H注意以下兩條指令差別: LEA BX,BUFFER MOV BX,BUFFER前者表示將符號地址為BUFFER的存儲單元的偏侈地址取到 BX中;后者表示將BUFFER存儲單元中的內(nèi)容取到 BX中.例:LEABX,SI+10H27下面兩條指令等效: LEA BX,BUFFER MOV BX, OFFSET BUFFER其中OFFSET BUFFER表示存儲器單元BUFFER的偏移地址。二者都可用于取存儲器單元的偏移地址,但LEA指令可以取動(dòng)態(tài)的地址,OFFSET只能取靜態(tài)的地址。284.標(biāo)志傳送指令共有四條:(1)讀標(biāo)志指令
13、LAHF LAHF把標(biāo)志寄存器低8位中的5個(gè)標(biāo)志位傳送到AH中的指定位,如下圖所示:OFDFIFTFSFZFAFPFCFAHLAHF指令的功能FLAG29(2)設(shè)置標(biāo)志指令SAHF SAHF的功能與LAHF的功能正好相反,用圖來示意,只要將上圖中5個(gè)箭頭方向反一下即可。OFDFIFTFSFZFAFPFCFAHSAHF指令的功能FLAG30 執(zhí)行的操作:(SP)-1標(biāo)志寄存器高8位 (SP)-2標(biāo)志寄存器低8位 (SP)(SP)-2(4)從棧頂彈出標(biāo)志寄存器指令POPF 執(zhí)行的操作:標(biāo)志寄存器低8位(SP) 標(biāo)志寄存器高8位(SP)+1 (SP)(SP)+2PUSHF和POPF指令用于保護(hù)和恢復(fù)
14、標(biāo)志寄存器內(nèi)容。(3)把標(biāo)志寄存器推入棧頂指令PUSHF31例如: PUSHAX PUSHCX PUSHF ;保護(hù)標(biāo)志寄存器內(nèi)容 ;這段程序要用到AX,CX以及標(biāo)志位 POPF ;恢復(fù)標(biāo)志寄存器內(nèi)容 POPCX POPAX. . .32數(shù)據(jù)傳送指令中,除SAHF和POPF這兩條指令外,其余所有指令均不影響標(biāo)志位。333.3.2 算術(shù)運(yùn)算指令 涉及兩種類型數(shù)據(jù): 無符號數(shù)和有符號數(shù)。對加減法指令,無符號和有符號數(shù)可采用同一套指令,但應(yīng)注意: 參加的操作數(shù)必須都是無符號數(shù)或都是有符號數(shù)。 需使用不同的標(biāo)志位來檢查無符號數(shù)和有符號數(shù)的運(yùn)算結(jié)果是否溢出。34兩個(gè)8位數(shù)相加時(shí)有4種情況:無符號數(shù)和有符號
15、數(shù)均不溢出二進(jìn)制相加 無符號數(shù)加 有符號數(shù)加 0000 1000 8 +8+0001 1110 + 30 + (+30) 0010 0110 38 +38 結(jié)果38 CF=0 OF=035 無符號數(shù)溢出 0000 1000 8 +8+1111 1101 +253 +(-3)10000 0101 261 +5 結(jié)果5 CF=1 OF=0 有符號數(shù)溢出 0000 1000 8 +8+0111 1101 +125 +(+125) 1000 0101 133 +133結(jié)果-123 CF=0 OF=1(補(bǔ)碼表示)36 無符號數(shù)和有符號數(shù)均溢出 1000 1000 136 -120+1111 0111 +
16、247 +(-9)10111 1111 383 -129 結(jié)果127 CF=1 OF=1上面四種情況說明,CF標(biāo)志可用來表示無符號數(shù)的溢出,OF標(biāo)志可用來表示有符號數(shù)的溢出。有符號數(shù)的溢出是一種出錯(cuò)狀態(tài),在運(yùn)算過程中應(yīng)當(dāng)避免。37共有5條:(1) 不帶進(jìn)位的加法指令A(yù)DD 格式: ADD acc,data ADD mem/reg,data ADD mem/reg1,mem/reg2例:ADDAL,30H ADDAX,BX+20H ADDCX,SI ADDDI,200HADD指令對標(biāo)志位(指狀態(tài)標(biāo)志)都有影響。1.加法指令38(2) 帶進(jìn)位位的加法指令A(yù)DC ADC指令在形式上和功能上都有與ADD類似,只是相加時(shí)還要包括進(jìn)位標(biāo)志CF的內(nèi)容,例如: ADC AL,68H ;AL(AL)+68H+(CF) ADC AX,CX ;AX(AX)+(CX)+(CF) ADC BX,DI ;BX(BX)+DI+1DI +(CF)39例:有兩個(gè)4字節(jié)的無符號數(shù)相加: 2C56F8AC+309E47BE=? 設(shè)被加數(shù)、加數(shù)分別存放在BUFFER1及BUFFER2開始的兩個(gè)存儲區(qū)內(nèi),結(jié)果放回BUFFER1存儲區(qū),如下頁圖所示。 因CPU只能進(jìn)行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東水利電力職業(yè)技術(shù)學(xué)院《微波技術(shù)與天線》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東生態(tài)工程職業(yè)學(xué)院《教育活動(dòng)設(shè)計(jì)與應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東青年職業(yè)學(xué)院《設(shè)計(jì)制造綜合實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東女子職業(yè)技術(shù)學(xué)院《功能高分子材料概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東南華工商職業(yè)學(xué)院《基礎(chǔ)俄語四外方》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東梅州職業(yè)技術(shù)學(xué)院《第二外語日語(二)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東嶺南職業(yè)技術(shù)學(xué)院《藥品生產(chǎn)質(zhì)里管理工程》2023-2024學(xué)年第一學(xué)期期末試卷
- 大學(xué)信息技術(shù)基礎(chǔ)福建農(nóng)林大學(xué)學(xué)習(xí)通測試及答案
- 幼兒園中班心理健康教育工作總結(jié)
- 《結(jié)直腸癌早篩早治》課件
- 2024時(shí)事政治考試100題及參考答案
- 醫(yī)療廢物轉(zhuǎn)移實(shí)施方案
- (賽斯資料)健康之道(全本)
- 工程師個(gè)人年終總結(jié)
- 汽車常識課件教學(xué)課件
- 【學(xué)易金卷】2023-2024學(xué)年四年級數(shù)學(xué)上冊期末全真模擬提高卷(三)(A4版)(北師大版)
- GB 17353-2024摩托車和輕便摩托車防盜裝置
- 學(xué)校膳食管理委員會工作制度和職責(zé)
- 房租收條格式(3篇)
- 期末試卷(試題)2024-2025學(xué)年培智生活語文二年級上冊
- 2024秋期國家開放大學(xué)本科《中國當(dāng)代文學(xué)專題》一平臺在線形考(形考任務(wù)一至六)試題及答案
評論
0/150
提交評論