版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 1匯編語言: 機(jī)器語言: 匯編 指令內(nèi)容: 做什么 對(duì)誰做兩種形式一一對(duì)應(yīng),可互相轉(zhuǎn)換。指令:程序員指揮計(jì)算機(jī)工作的最小單位指令系統(tǒng):一種CPU全部指令的集合 2操作數(shù)在指令中操作數(shù)在指令中-立即尋址立即尋址例:MOV AL , 31H ; AL31H(地址a) 操作碼: 1011 0000B (a+ 1) 0011 0001B 立即數(shù)31H 3例:MOV AL , 31H ; AL31H 操作碼: 1011 0000 8 位 立即數(shù) 0011 0001 AL傳給R 立即數(shù)31H 4MOV AX , 3124H ; AL 24H , ; AH31H操作碼: 1011 1000B 16位傳給R
2、 0010 0100B AX 0011 0001B多字節(jié)數(shù)在內(nèi)存中存放:低字節(jié)在前,高字節(jié)在后3124H 5 6例:MOV AH , AL ; AHAL 機(jī)器碼: 1000 1000B 1100 0100B源寄存器AL目標(biāo)寄存器AHCPU內(nèi)部執(zhí)行,不需要執(zhí)行總線周期 7 81. 直接尋址EA在指令中MOV AX , 3100H ; AL DS : 3100H ; AH DS : 3100H +1 方括號(hào)中為有效地址 EA操作數(shù)在內(nèi)存中操作數(shù)在內(nèi)存中-尋找內(nèi)存地址 段 基 址 : 偏移地址 多數(shù)隱含 DS :有效地址 (EA)尋址方式尋址方式 9 10EA在指令中 直接尋址 (見前述)EA在寄存
3、器中(變址寄存器SI,DI及基址寄存器BX,BP) 寄存器間接尋址EA為變址寄存器SI / DI 加地址位移量disp 變址尋址EA為基址寄存器BX / BP,加地址位移量disp 基址尋址EA為一個(gè)變址寄存器加一個(gè)基址寄存器,再加位移量 基址-變址尋址 11寄存器間接尋址- EA在寄存器中,指令中看到寄存器名例:MOV BX , DI ; BL DS : DI ; BH DS : D I + 1 允許作間址用的寄存器有 SI,DI,BX,BP用SI,DI,BX時(shí)段基址隱含在DS中,但用BP時(shí)段基址隱含在SS中 12 133 3. 變址尋址EA為變址寄存器SI / DI 加地址位移量disp例
4、:MOV BX , SI + 1002H ; 或?qū)懗?1002H SI 兩字節(jié): BL DS : SI + 1002H BH DS : SI + 1002H +1 14 15EA為基址寄存器BX / BP,加地址位移量disp例:MOV AX , 1002H BX ; AX DS : BX+ 1002H MOV AX , 40H BP ; AX SS : BP+ 40H 兩條都是16位傳送。 16基址尋址中用BX時(shí)段基址和變址尋址一樣隱含在DS中,但基址尋址用BP時(shí)段基址隱含在SS中 17 18EA為一個(gè)變址寄存器加一個(gè)基址寄存器,再加位移量 例:MOV AX , 1004H BX SI ;
5、AX DS : BX+ SI+ 1004H 不能同時(shí)用兩個(gè)變址(SI/DI),或同時(shí)用兩個(gè)基址寄存器(BX/BP) 19 20段基址一般隱含在DS中,但用BP時(shí)段基址隱含在SS中指令中也可以給出段超越信息 Ex. MOV ES:DI, AX對(duì)于給出段超越的指令匯編后的機(jī)器碼中,在基本指令的操作碼字節(jié)前面有一個(gè)如下所示的段超越前綴字節(jié): 7 6 5 4 3 2 1 0 0 0 1 sreg 1 1 0 sreg: 00 01 10 11 ES CS SS DS 213. 串操作指令(MOVS、CMPS、SCAS、STOS)的目標(biāo)數(shù)據(jù)串 ES:DI一、不允許超越的情況:取指令 CS:IP2. 堆棧
6、操作 PUSH的目標(biāo)操作數(shù)及POP的源操作數(shù) SS:SP 22用BP作為基址寄存器 SS 允許超越為SS外的另三個(gè)段寄存器中的任一個(gè)二、允許超越但隱含段寄存器不為DS的情況: 23允許超越為DS外的另三個(gè)段寄存器中的任一個(gè)三、允許超越且隱含段寄存器為DS的情況: 24MOV dest, src ; 8位/16位寄存器寄存器立即數(shù) 或寄存器或內(nèi)存或內(nèi)存lMOV 一般傳送 25交換指令XCHG 源和目標(biāo)數(shù)據(jù)互換,8 / 16b ex. XCHG AX, SI ; 源操作數(shù)與目標(biāo)操作數(shù)均可以是寄存器或存儲(chǔ)器, ; 但不能兩者同時(shí)為存儲(chǔ)器一條MOV指令不能:內(nèi)存 內(nèi)存段寄存器 立即數(shù)段寄存器 段寄存器
7、 26查表轉(zhuǎn)換指令XLAT 用序號(hào)到表中查內(nèi)容 (AL) (BX)+(AL)),8b (寄存器間接尋址)預(yù)置表首地址入 BX, 序號(hào)入 ALMOV BX, OFFSET Hex_table ; 置表首地址(16位立即數(shù))MOV AL, 0AH ; 序號(hào)入ALXLAT Hex_table ; 取表值 ; 得 (AL) = 41H內(nèi)存變量?jī)?nèi)存變量 27 28 PUSH AX ; 壓入堆棧(目標(biāo)地址隱含)POP AX ; 彈出堆棧 (源地址隱含)先壓入的后彈出,后壓入的先彈出,在一個(gè)用戶程序中,PUSH和POP一般成對(duì)使用,以保證SP復(fù)原 29SP初始指向棧底。壓入時(shí)先SP-2,后存數(shù)00000SS
8、SP堆棧段 FFFFFH第一次壓入此處 30 31lIN / OUT 輸入輸出 (用于外設(shè)端口接受發(fā)送數(shù)據(jù))例: IN AL, 60H ; AL Port60H , OUT 62H, AL ; Port62H AL IN AX, DX ; 間址輸入,且輸入2字節(jié) ; AL DX , AH DX+1MOV DX, 200H ;16位I / O地址OUT DX, AL ; 用DX作間址輸出 OUT 62H, AX ; 輸出2字節(jié) ; Port62H AL, Port63H AH 32P22 圖1.128088引腳 33 LEA 裝入有效地址例:LEA BX , BUFFER ;BUFFER 是內(nèi)存
9、變量 ;BX BUFFER的偏移地址4.目標(biāo)地址傳送 注意:MOV BX, BUFFER ; BX (BUFFER) ; 即將BUFFER 單元中的內(nèi)容存入BX ; 尋址方式為直接尋址 MOV BX, ?LEA BX , BUFFER ; 尋址方式為立即尋址 ; 等價(jià)于 MOV BX, ? 34LEA AX , BETA BP DI ; AX (BP)+(DI)+BETA注意:MOV AX, BETABPDI ; 為 AX (SS:(BP)+(DI)+BETA) 35 LDS 傳送內(nèi)存四單元內(nèi)容作偏移地址和段基址例:LDS SI , 10H ; SI (DS:11H),(DS:10H )DS
10、(DS: 13H ),(DS:12H )32位源操作數(shù)只能是內(nèi)存操作數(shù)DS可換成ES (即有 LES) ,SI可換成其他通用寄存器 36l加法指令2. 減法指令3. 乘法指令4. 除法指令 371. 1. 加法指令加法指令 ADD dest, src ; 8位/16位 ( dest) (dest) + (src) ADC dest , src ;帶進(jìn)位相加, 用于更多字節(jié)的加法 ( dest) (dest) + (src)+(CF) INC dest ;增一計(jì)數(shù), 影響大多數(shù)標(biāo)志位,但不影響進(jìn)位標(biāo)志CF ( dest) (dest) + 1 38十進(jìn)制數(shù)以二進(jìn)制編碼表示時(shí),有: 非壓縮BCD碼
11、 (如 34D = 0000001100000100 (BCD) 壓縮BCD碼 (如 12D = 00010010 (BCD)如假設(shè): 計(jì)算機(jī)內(nèi)部的算術(shù)運(yùn)算只(設(shè)計(jì)成)針對(duì)操作數(shù)為二進(jìn)制數(shù)的運(yùn)算則讓計(jì)算機(jī)完成十進(jìn)制(BCD碼)最簡(jiǎn)單的辦法則有: 十進(jìn)制(BCD碼) 轉(zhuǎn)換成二進(jìn)制 二進(jìn)制運(yùn)算 結(jié)果轉(zhuǎn)換成十進(jìn)制(BCD碼)但對(duì)加法的每一位非壓縮BCD碼、每2位壓縮BCD碼,可省去由十進(jìn)制(BCD碼)轉(zhuǎn)換成二進(jìn)制這一步驟,且將其當(dāng)作二進(jìn)制運(yùn)算后的結(jié)果可以低成本地轉(zhuǎn)換成十進(jìn)制(BCD碼) 39 加法的BCD調(diào)整用二進(jìn)制加法器進(jìn)行BCD加,結(jié)果按BCD理解 有時(shí)正確: 小于等于9并且沒有進(jìn)位; 有時(shí)錯(cuò)誤
12、: 即該進(jìn)位沒有產(chǎn)生進(jìn)位,或有進(jìn)位 但為滿16進(jìn)位。對(duì)于錯(cuò)誤,可按十進(jìn)制規(guī)律調(diào)整正確。對(duì)此,設(shè)計(jì)一條指令:判斷相加結(jié)果是否正確,若不正確調(diào)整成正確。 40例: 7 + 5 = 12DBCD碼: 0111 +) 0101 1100 不是BCD碼 +)0110 加6 (等價(jià)減0AH) 0001 0010 = (AL)調(diào)整后: (AH) (AH)+1, (CF) (AF) 1 0000 0010 = (AL)AAA 的調(diào)整方法: 如果 (AL&0FH)9 或 (AF)=1 則 (AL) (AL)+6, (AH) (AH)+1, (CF) (AF) 1 (AL) (AL)&0FH)否則
13、 (AL) (AL)&0FH)41AAA 不壓縮BCD碼的加法調(diào)整 不壓縮BCD碼作ADD/ADC后結(jié)果在AL中,經(jīng)AAA調(diào)整后得正確BCD (一位十進(jìn)制數(shù)) ,進(jìn)位到AH和CF。僅用于對(duì)AL的8位加法AAA 指令A(yù)L的高4位置0,僅保留低4位。所以可直接用于ASCII碼數(shù)調(diào)整。 42 P68圖2.17 數(shù)據(jù)存放情況示意圖 圖2.18 流程圖ASCII碼非壓縮BCD碼 43EX. 9 + 5 = 39H + 35H = 3EH 調(diào)整前 (AL) = 3EH則調(diào)整后(即執(zhí)行 AAA 后), 有 (AL) =04H (AH) = 01H (CF)=(AF)=1 44DAA 壓縮BCD碼的加
14、法調(diào)整 目標(biāo):壓縮BCD碼作ADD/ADC后結(jié)果在AL中,經(jīng)DAA調(diào)整后得正確BCD(兩位十進(jìn)制數(shù)),進(jìn)位到CF。 方法:AH內(nèi)容保持不變,而在調(diào)整上, 個(gè)位上,當(dāng) (AF)=1或當(dāng)9時(shí) 則加6; 十位上,當(dāng)9(即大于9FH)或 (CF)=1 則加60H及置CF為1。 45例: 71D + 52D = 123DBCD碼: 01110001 +) 01010010 11000011 不是BCD碼 +)01100000 加60H (十位上調(diào)整) 00100011 = (AL)調(diào)整后: (CF) 1 0010 0011 = (AL)DAA 的調(diào)整方法: 如果 (AL&0FH)9 或 (AF)
15、=1 則 (AL) (AL)+6, (AF) 1 如果 (AL)9FH 或 (CF)=1 則 (AL) (AL)+60H, (CF) 1 46相對(duì)于不壓縮的BCD碼加法的一位一位地進(jìn)行,壓縮的BCD碼加法可以兩位兩位地進(jìn)行。EX. 調(diào)整前 (AL)=C1H, (AF)=1 則調(diào)整后(即執(zhí)行 DAA 后), 有 (AL) =27H, (CF)=1對(duì)個(gè)位,因(AF)=1則加6得7,十位上因大于9故加60H得十位上的2,且有進(jìn)位。EX. 調(diào)整前 (AL)=1FH, (AF)=0 則調(diào)整后(即執(zhí)行 DAA 后), 有 (AL) =25H, (CF)=0對(duì)個(gè)位,因F9則加6,則個(gè)位上得5,十位上由原1變?yōu)?,且(AF)=1 472. 2.SUB dest , src ; 減SBB dest , src ; 帶
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年電工學(xué)電子技術(shù)試題庫完整參考答案
- 2026年安徽綠海商務(wù)職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試模擬測(cè)試卷附答案
- 2026浙江嘉興大學(xué)附屬實(shí)驗(yàn)幼兒園招聘合同制教師3人筆試模擬試題及答案解析
- 2026年承德護(hù)理職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫附答案
- 2026年吉林工程職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫附答案
- 2026年新疆工業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫附答案
- 2026陜西師范大學(xué)專職輔導(dǎo)員與心理健康教育專職教師招聘22人筆試備考試題及答案解析
- 2026年員工心理考試題庫及答案參考
- 2025江西南昌大學(xué)第二附屬醫(yī)院高層次人才招聘142人(公共基礎(chǔ)知識(shí))測(cè)試題附答案
- 2025年12月福建廈門市鷺江創(chuàng)新實(shí)驗(yàn)室管理序列崗位招聘8人考試參考題庫附答案
- smt車間安全操作規(guī)程
- JJF 2254-2025戥秤校準(zhǔn)規(guī)范
- 強(qiáng)制醫(yī)療活動(dòng)方案
- DB42T 850-2012 湖北省公路工程復(fù)雜橋梁質(zhì)量鑒定規(guī)范
- 月經(jīng)不調(diào)的中醫(yī)護(hù)理常規(guī)
- 2024-2025學(xué)年江蘇省南通市如東縣、通州區(qū)、啟東市、崇川區(qū)高一上學(xué)期期末數(shù)學(xué)試題(解析版)
- 瑞幸ai面試題庫大全及答案
- 現(xiàn)代密碼學(xué)(第4版)-習(xí)題參考答案
- 縫紉車間主管年終總結(jié)
- (康德一診)重慶市2025屆高三高三第一次聯(lián)合診斷檢測(cè) 地理試卷(含答案詳解)
- 油氣長(zhǎng)輸管道檢查標(biāo)準(zhǔn)清單
評(píng)論
0/150
提交評(píng)論