版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、尋址方式(實(shí)模式):1. 立即數(shù)尋址MOV AX, 1234H2. 寄存器尋址MOV AX, BX3. 直接尋址MOV AX, 1234H4. 寄存器間接尋址MOV AX, BX 5. 基址尋址MOV AX, BX+100H6. 變址尋址MOV AX, SI+100H7. 基址加變址尋址MOV AX, BX+SI8. 帶位移的基址加變址尋址MOV AX, BX+SI+100H復(fù)習(xí)數(shù)據(jù)結(jié)構(gòu)的基址尋址方式字段0字段n字段n-1字段2字段1基址寄存器+(位移量)MOV AX, BX+100H(位移量)數(shù)據(jù)陣列的變址尋址方式單元0單元n單元n-1單元2單元1變址寄存器+MOV AX, SI+100H單
2、元(0,0)單元(0,1)單元(0,n)(位移量)二維數(shù)據(jù)陣列的基址加變址尋址方式基址寄存器+MOV AX, BX+SI+100H單元(1,0)單元(1,n)單元(1,1)單元(m,n)變址寄存器+調(diào)試程序DEBUGR寄存器命令功能:檢查或修改寄存器的值R 寄存器名調(diào)試程序DEBUGD轉(zhuǎn)儲(chǔ)命令功能:檢查存儲(chǔ)器的內(nèi)容D 內(nèi)存地址調(diào)試程序DEBUGE輸入命令功能:檢查或修改存儲(chǔ)器的內(nèi)容E 內(nèi)存地址回車:結(jié)束輸入命令空格:不修改存儲(chǔ)器內(nèi) 容,顯示下一個(gè) 存儲(chǔ)單元的內(nèi)容輸入新值,后回車或空格調(diào)試程序DEBUGA匯編命令功能:匯編程序指令A(yù) 起始地址U匯編命令功能:反匯編程序指令U 起始地址調(diào)試程序DE
3、BUGT跟蹤命令功能:跟蹤程序執(zhí)行T=起始地址指令條數(shù)調(diào)試程序DEBUGR運(yùn)行命令功能:運(yùn)行程序G=起始地址算術(shù)運(yùn)算指令的例子1. 設(shè)兩個(gè)十進(jìn)制數(shù)1234和5678分別存放在數(shù)據(jù)段中從1000H和2000H開始的單元中,計(jì)算這兩個(gè)數(shù)的和,結(jié)果存放在3000H開始的單元中MOV AL, 1000ADD AL, 2000;低字節(jié)相加DAA;十進(jìn)制調(diào)整MOV 3000, AL;存低字節(jié)和MOV AL, 1001ADC AL, 2001 ;高字節(jié)帶進(jìn)位相加DAA;十進(jìn)制調(diào)整MOV 3001, AL;存高字節(jié)和算術(shù)運(yùn)算指令的例子2. 實(shí)現(xiàn)非壓縮BCD數(shù)68=48的程序MOV AL, 06MOV BL,
4、08MUL BL;AAM;AX(AL)(BL)十進(jìn)制調(diào)整,使(AX)=0408算術(shù)運(yùn)算指令的例子3. 實(shí)現(xiàn)非壓縮BCD數(shù)175=3余2的程序MOV AX, 0107MOV BL, 05AAD;DIV BL;除法,得商(AL)=03,余數(shù)(AH)=02十進(jìn)制調(diào)整,使(AX)=0011第三章 Pentium微處理器的指令系統(tǒng)3.1 概述3.2 Pentium微處理器的尋址方式3.3 數(shù)據(jù)傳送指令3.4 算術(shù)運(yùn)算指令3.5 邏輯運(yùn)算指令3.6 串操作指令3.7 程序控制指令3.8 保護(hù)模式的系統(tǒng)控制指令3.9 浮點(diǎn)運(yùn)算指令3.10 MMX指令簡(jiǎn)介3.5 邏輯運(yùn)算指令位操作AND目標(biāo)操作數(shù),源操作數(shù)O
5、R目標(biāo)操作數(shù),源操作數(shù)XOR目標(biāo)操作數(shù),源操作數(shù)NOT目標(biāo)操作數(shù)位操作AND主要用于將二進(jìn)制數(shù)的某些位清0AND BL, 0FHxxxxxxxx (BL)00001111 0F0000 xxxx 結(jié)果AND位操作OR主要用于將二進(jìn)制數(shù)的某些位置1OR BL, 0FHxxxxxxxx (BL)00001111 0Fxxxx1111 結(jié)果OR位操作XOR主要用于將二進(jìn)制數(shù)的某些位求反XOR BL, 0FHxxxxxxxx (BL)00001111 0Fxxxxxxxx 結(jié)果XOR移位操作指令格式:SHL 目標(biāo)操作數(shù),計(jì)數(shù)移1位時(shí),計(jì)數(shù)值可以為立即數(shù)1移多位時(shí),計(jì)數(shù)值必須先存入CL寄存器MOV CL
6、, 3SHL AX, CLP.93位測(cè)試TEST 用于測(cè)試二進(jìn)制數(shù)的某些位(一般為1位)TEST AL, 1JNZ RIGHTTEST AL, 128JNZ LEFT當(dāng)被測(cè)試為為0時(shí),ZF置位(ZF=1);當(dāng)被測(cè)試為為1時(shí),ZF復(fù)位(ZF=0)位測(cè)試位測(cè)試:BT 目標(biāo)操作數(shù),源操作數(shù)位測(cè)試置0:BTR 目標(biāo)操作數(shù),源操作數(shù)位測(cè)試置1:BTS 目標(biāo)操作數(shù),源操作數(shù)位測(cè)試取反:BTC 目標(biāo)操作數(shù),源操作數(shù)測(cè)試目標(biāo)操作數(shù)中由源操作數(shù)指定的位,將其值送CF標(biāo)志源操作數(shù)以目標(biāo)操作數(shù)的長(zhǎng)度為模MOV AX, 1FF0H BTS AX, 24位掃描向前位掃描:BSF 目標(biāo)操作數(shù),源操作數(shù)向后位掃描:BSR
7、目標(biāo)操作數(shù),源操作數(shù)對(duì)源操作數(shù)進(jìn)行掃描,將遇到的第一個(gè)1所在的位置送目標(biāo)操作數(shù),并將ZF清0。如果源操作數(shù)為0,則目標(biāo)操作數(shù)不變,且ZF置1MOV EAX, 60000000H BSF EBX,EAX3.6 串操作指令串傳送MOVSBMOVSWMOVSD將一個(gè)字節(jié)/字/雙字從DS:SI ES:DI指令前要先將源串首地址 DS:SI 目標(biāo)串首地址 ES:DI完成操作后自動(dòng)修改SI、DI,使其指向串的下一個(gè)元素串傳送完成操作后自動(dòng)修改SI、DI,使其指向串的下一個(gè)元素串操作方向由CLD和STD指令設(shè)置CLD 地址遞增方向(DF=0)STD 地址遞減方向(DF=1)串傳送 重復(fù)前綴需要先將串的長(zhǎng)度存
8、入CX寄存器每處理完一個(gè)元素自動(dòng)使CX-1,直到CX=0才結(jié)束串傳送完成整個(gè)串的傳送REP MOVSBREP MOVSWREP MOVSD例: P.96例:串傳送MOV SI, OFFSET S1MOV DI, OFFSET S2MOV CX, 18REP MOVSB.S1 DB “This is a string!$”S2 DB 18 DUP(0)串比較CMPSBCMPSWCMPSD比較地址為DS:SI、ES:DI的兩個(gè)字節(jié)/字/雙字指令前通常加重復(fù)前綴REPZ/REPE,從而當(dāng)發(fā)現(xiàn)兩個(gè)串不同時(shí)結(jié)束比較。例:串比較MOV SI, OFFSET S1MOV DI, OFFSET S2MOV C
9、X, xxREPZ CMPSBJNZ Not_EqualEqual: Not_Equal:.串搜索SCASBSCASWSCASD在首地址為ES:DI的串中搜索某個(gè)元素(字節(jié)/字/雙字)事先要將待搜索的元素存入AL/AX/EAX指令前通常加重復(fù)前綴REPNZ/REPNE,從而當(dāng)發(fā)現(xiàn)待搜索的元素時(shí)結(jié)束搜索。例:串搜索MOV DI, OFFSET StringMOV CX, xxMOV AL, hREPNZ SCASBJNZ Not_FoundFound: Not_ Found: .串裝入LODSBLODSWLODSD將地址為DS:SI的一個(gè)字節(jié)/字/雙字裝入AL/AX/EAX串裝入指令沒(méi)有重復(fù)前綴
10、例:MOV SI, OFFSET StringMOV CX, xxMOV AH, 2LODSBMOV DL, ALINT 21LOOP NextCharNextChar:串裝入串存儲(chǔ)LODSBLODSWLODSD將AL/AX/EAX的值存入地址為ES:DI的內(nèi)存單元利用重復(fù)前綴REP,可以建立一個(gè)取值相同的數(shù)據(jù)串3.7 程序控制指令控制程序的流向:無(wú)條件轉(zhuǎn)移條件轉(zhuǎn)移循環(huán)控制過(guò)程調(diào)用與返回中斷無(wú)條件轉(zhuǎn)移JMP Label1.Label1:條件轉(zhuǎn)移相當(dāng)于goto語(yǔ)句根據(jù)執(zhí)行上一指令后標(biāo)志寄存器的狀態(tài)而決定是否轉(zhuǎn)移條件轉(zhuǎn)移根據(jù)執(zhí)行上一指令后標(biāo)志寄存器的狀態(tài)而決定是否轉(zhuǎn)移JAJAE=JBJBEJGE=
11、JLJLE=JG 標(biāo)號(hào)條件轉(zhuǎn)移JZJNZJCJNCJOJNOJPJNPJSJNSJCXZ循環(huán)控制LOOPLOOPE/LOOPZLOOPNE/LOOPNZ與CX配合使用,CX存放循環(huán)次數(shù)第四章 匯編語(yǔ)言程序設(shè)計(jì)4.1 概述4.2 匯編語(yǔ)言的基本語(yǔ)法4.3 匯編語(yǔ)言程序的控制結(jié)構(gòu)4.4 DOS/BIOS中斷調(diào)用4.5 保護(hù)模式下的匯編語(yǔ)言程序設(shè)計(jì)4.6 Win32匯編語(yǔ)言程序設(shè)計(jì)4.7 與高級(jí)語(yǔ)言的接口4.1 概述匯編語(yǔ)言程序的上機(jī)處理過(guò)程主要的匯編程序:MASM、TASM實(shí)模式匯編語(yǔ)言源程序的結(jié)構(gòu)DATA SEGMENT .DATA ENDSSTACK SEGMENT STACK .STACK
12、ENDSCODE SEGMENT ASSUME DS:DATA, SS:STACK, CS:CODESTART: CODE ENDS END START4.2 匯編語(yǔ)言的基本語(yǔ)法1. 常量、變量和表達(dá)式常量二進(jìn)制xxxxxxxxB01000101B八進(jìn)制xxxO或xxxQ721O或721Q十進(jìn)制xxxx或xxxxD1991或1991D十六進(jìn)制xxxxH0F1D4H字符串xxx或“xxx”AB數(shù)值常量、符號(hào)常量(用EQU或=定義)變量?jī)?nèi)存單元的名字,由DB/DW/DD/DQ/DT定義BUF DB ?MOV BUF,AL變量的三種屬性:段值 SEG偏移量 OFFSET類型 BYTE/WORD/.標(biāo)
13、號(hào)指令存放單元的符號(hào)地址,是轉(zhuǎn)移/調(diào)用/循環(huán)指令的操作數(shù)標(biāo)號(hào)的三種屬性:段值 SEG偏移量 OFFSET類型 NEAR/FAR表達(dá)式由操作數(shù)和運(yùn)算符組成的序列操作數(shù)可以是寄存器、常量(數(shù)值常量、符號(hào)常量)、存儲(chǔ)器操作數(shù)(標(biāo)號(hào)、變量)運(yùn)算符包括:算術(shù)運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符、數(shù)值返回運(yùn)算符和屬性運(yùn)算符數(shù)值返回運(yùn)算符(分析運(yùn)算符)SEG 變量/標(biāo)號(hào)OFFSET 變量/標(biāo)號(hào)TYPE 變量/標(biāo)號(hào)變量返回類型:1字節(jié)、2字、4雙字標(biāo)號(hào)返回類型:-1NEAR、-2FARLENGTH 變量SIZE 變量屬性運(yùn)算符(合成運(yùn)算符)PTR類型 PTR 表達(dá)式MOV WORD PTR BX, 0THISTHI
14、S 類型MY_BYTE EQU THIS BYTEMY_WORD DW 100 DUP(?)2. 指令語(yǔ)句標(biāo)號(hào): 指令助記符 操作數(shù) ;注釋3. 偽指令語(yǔ)句名字 偽操作命令 操作數(shù) ;注釋符號(hào)定義語(yǔ)句定義符號(hào)常量PRICE EQU 281PORT = 6PORT = PORT +1數(shù)據(jù)定義語(yǔ)句定義變量、分配存儲(chǔ)單元等變量名 DB/DW/DD/DQ/DT 操作數(shù),操作數(shù)操作數(shù)可以是:數(shù)值表達(dá)式或表、字符串、?、N DUP表達(dá)式VAR DW ?ARRAY DB 100 DUP (0)段定義語(yǔ)句P. 131過(guò)程定義語(yǔ)句P. 131程序結(jié)束語(yǔ)句END 表達(dá)式表達(dá)式為程序的第一條指令的地址4.3 匯編語(yǔ)
15、言程序的控制結(jié)構(gòu)分支結(jié)構(gòu)程序段1程序段2條件JZ L1L1: .L2: .后繼程序L3: .JMP L3TEST AX, 1YN程序段1后繼程序條件JZ L1L1: . .TEST AX, 1分支結(jié)構(gòu)YN循環(huán)結(jié)構(gòu)先執(zhí)行、后判斷初始化部分循環(huán)體修改部分條件先判斷、后執(zhí)行初始化部分循環(huán)體修改部分條件后繼程序循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)控制:計(jì)數(shù)控制 LOOP條件控制 JZ/.4.4 DOS/BIOS中斷調(diào)用習(xí)題1. 已知(CS)=0A00H,(DS)=0B00H,(SI)=0100H,(DI)=0200H,(BX)=0300H。指出下列指令中源操作數(shù)的尋址方式,并計(jì)算-小題操作數(shù)的物理地址。MOV AX, 1234HMOV AX, BXMOV AX, SIMOV AX, 1234HMOV AX, BX+400HMOV AX, BX+SIMOV AX, BX+DI H2. 已知(AX)=701FH,(BX)=13F1H。指出執(zhí)行下列指令后目標(biāo)操作數(shù)的內(nèi)容和狀態(tài)標(biāo)志位的狀態(tài)。SF ZF AF PF CF OFADD AX, BX(AX)= H ; SUB AX, BX(AX)= H ;AND AX, B
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)性化美發(fā)店服務(wù)股份制合作合同4篇
- 二零二五版新能源汽車充電樁投資分紅合同3篇
- 2025年倉(cāng)儲(chǔ)租賃協(xié)議審核
- 二零二五年度木地板工程環(huán)保認(rèn)證與施工合同4篇
- 2025年民用航空器租賃合規(guī)審查協(xié)議
- 2025年度綠色校園綠植種植與教育推廣合同4篇
- 2024 年浙江公務(wù)員考試行測(cè)試題(A 類)
- 二零二五年度二手挖掘機(jī)轉(zhuǎn)讓與長(zhǎng)期維護(hù)服務(wù)協(xié)議3篇
- 二零二五年度SSL協(xié)議安全審計(jì)與合規(guī)檢查合同3篇
- 2025年度鮮花電商物流配送與銷售合作協(xié)議3篇
- 2024年供應(yīng)鏈安全培訓(xùn):深入剖析與應(yīng)用
- 飛鼠養(yǎng)殖技術(shù)指導(dǎo)
- 壞死性筋膜炎
- 整式的加減單元測(cè)試題6套
- 股權(quán)架構(gòu)完整
- 山東省泰安市2022年初中學(xué)業(yè)水平考試生物試題
- 注塑部質(zhì)量控制標(biāo)準(zhǔn)全套
- 銀行網(wǎng)點(diǎn)服務(wù)禮儀標(biāo)準(zhǔn)培訓(xùn)課件
- 二年級(jí)下冊(cè)數(shù)學(xué)教案 -《數(shù)一數(shù)(二)》 北師大版
- 晶體三極管資料
- 石群邱關(guān)源電路(第1至7單元)白底課件
評(píng)論
0/150
提交評(píng)論