版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、偽操作(偽指令) 偽操作是匯編程序?qū)υ闯绦蜻M(jìn)行匯編時(shí)處理的操作,完成處理器選擇、存儲(chǔ)模式定義、數(shù)據(jù)定義、存儲(chǔ)器分配、指示程序開(kāi)始結(jié)束等功能。l 處理器選擇偽操作l 段定義偽操作l 程序開(kāi)始和結(jié)束偽操作l 數(shù)據(jù)定義及存儲(chǔ)器分配偽操作l 表達(dá)式賦值偽操作l 地址計(jì)數(shù)器與對(duì)準(zhǔn)偽操作l 基數(shù)控制偽操作語(yǔ)句類型指令(性)語(yǔ)句完成一定操作功能,能夠翻譯成機(jī)器代碼的語(yǔ)句指示性語(yǔ)句(偽指令語(yǔ)句)為匯編程序在翻譯匯編語(yǔ)言源程序時(shí)提供有關(guān)信息,并不翻譯成機(jī)器代碼語(yǔ)句類型及格式語(yǔ)句類型#include stdafx.h #include stdio.h int main(int argc, char* argv)
2、int a=1,b=2,c; c=a+b; printf(“c=%dn,c); return 0; 用C語(yǔ)言編程實(shí)現(xiàn) c = a + b,并在屏幕上顯示出結(jié)果。 例:C語(yǔ)言編程的格式指示性語(yǔ)句指令性語(yǔ)句例:完成兩個(gè)字節(jié)數(shù)據(jù)相加。DATA SEGMENT ;段定義開(kāi)始(DATA段) BUF1 DB 34H ;第1個(gè)加數(shù) BUF2 DB 2AH ;第2個(gè)加數(shù) SUM DB ? ;準(zhǔn)備用來(lái)存放和數(shù)的單元DATA ENDS ;段定義結(jié)束(DATA段)CODE SEGMENT ;段定義開(kāi)始(CODE段) ASSUME CS:CODE,DS:DATA ;規(guī)定DATA、CODE分別為數(shù)據(jù)段和代碼段 STAR
3、T: MOV AX,DATA MOV DS,AX ;給數(shù)據(jù)段寄存器DS賦值 MOV AL,BUF1 ;取第1個(gè)加數(shù) ADD AL,BUF2 ;和第2個(gè)加數(shù)相加 MOV SUM,AL ;存放結(jié)果 MOV AH,4CH INT 21H ;返回DOS狀態(tài)CODE ENDS ;段定義結(jié)束(CODE段) END START ;整個(gè)源程序結(jié)束 偽指令語(yǔ)句指令語(yǔ)句一個(gè)完整的匯編程序語(yǔ)句格式指令性語(yǔ)句:格式:名字: 操作碼 操作數(shù),操作數(shù) ;注釋偽指令語(yǔ)句:格式:名字 偽操作 操作數(shù),操作數(shù), ;注釋含義:由用戶按一定規(guī)則定義的標(biāo)識(shí)符組成:英文字母、數(shù)字、特殊符號(hào)形式:標(biāo)號(hào)和變量名字定義滿足的規(guī)則(1)數(shù)字不
4、能作為第一個(gè)字符(2)單獨(dú)的問(wèn)號(hào)(?)不能作為名字(3)最大有效長(zhǎng)度為31(4)保留字不能作為名字使用語(yǔ)句的說(shuō)明部分操作碼 含義:指明操作的性質(zhì)或功能。書(shū)寫(xiě)規(guī)則:操作碼與操作數(shù)之間用空格分開(kāi)。操作數(shù)含義:指定參與操作的數(shù)據(jù)。個(gè)數(shù):一般指令,1個(gè)或2個(gè),也可以沒(méi)有; 偽指令和宏指令,可以有多個(gè)。書(shū)寫(xiě)規(guī)則:操作數(shù)多于1個(gè)時(shí),操作數(shù)之間用 逗號(hào)分開(kāi) 段定義偽操作:完整的段定義格式 data segment ; 定義數(shù)據(jù)段 data ends;-extra segment ; 定義附加段 extra ends;-code segment ; 定義代碼段 assume cs:code, ds:data,
5、 es:extrastart: mov ax, data mov ds, ax ; 段地址 段寄存器 code ends end startPSPDSESSSCSEXE程序的內(nèi)存映象圖裝入模塊文件頭方式二:code segmentmain proc far assume start: push ds mov ax, 0 push ax retmain endpcode ends end start方式一:code segment assume start: mov ah,4ch int 21hcode ends end start代碼段中程序結(jié)束的兩種方式段名 SEGMENT 定位類型 組合類
6、型 使用類型 類別 ; 語(yǔ)句序列段名 ENDS定位類型 align_type PARA BYTE WORD DWORD PAGE組合類型 combine_type PRIVATE PUBLIC COMMON STACK AT exp使用類型 use_type USE16 USE32(4) 類別 classu 指定段址偽指令 格式: ASSUME :,:功能:建立段寄存器與段的缺省關(guān)系注意: ASSUME偽指令并不為段寄存器設(shè)定初值例: assume cs:code, ds:data, es:extra其中:code是代碼段的段名,data是數(shù)據(jù)段的段名,extra是擴(kuò)展段的段名u 設(shè)置段地址值
7、 含義:在程序的代碼段開(kāi)始處進(jìn)行DS、SS、ES的段基址 裝填。 例:MOV AX, DATA MOV DS, AX程序裝入內(nèi)存后,段寄存器的指向PSP程序代碼DS、SS 、 ES文件頭CSEND label 表示匯編程序的結(jié)束 結(jié)束偽操作code segment ; 定義代碼段 assume cs:code, ds:data, es:extrastart: mov ax, data mov ds, ax ; 段地址 段寄存器 code ends end start例: 數(shù)據(jù)定義及存儲(chǔ)器分配偽操作變量 助記符 操作數(shù) , 操作數(shù) , ; 注釋 助記符:DB,DW,DD,DF,DQ(64位),D
8、T(80位)DATA_BYTE DB 10,4,10H,?DATA_WORD DW 100,100H,-5,?- 0AH 04H 10H - 64H 00H 00H 01H FBH FFHDATA_BYTE DATA_WORD 例:DB: 定義字節(jié)DW:定義字DD: 定義雙字ARRAY DB HELLO DB AB DW AB 48H 45H 4CH 4CH 4FH 41H 42H 42H 41H ARRAY VAR DB 100 DUP (?) DB 2 DUP (0,2 DUP(1,2),3)存儲(chǔ)單元分配實(shí)例: PAR1 DB 100,20H PAR2 DW 300H,400H ADDR_
9、TABL1 DW PAR1,PAR2;存放偏移地址 ADDR_TABL2 DD PAR1,PAR2;存放偏移和段地址 64H 20H 00H 03H 00H 04H 偏低 偏高 偏低 PAR1 偏低偏高段低段高偏低偏高段低段高 PAR2 ADDR_TABL1 偏高PAR1的偏移地址PAR2的偏移地址ADDR_TABL2 PAR1的偏移地址PAR1的段地址PAR2的偏移地址PAR2的段地址存儲(chǔ)單元分配實(shí)例:操作數(shù)常數(shù)代表數(shù)據(jù)字節(jié)數(shù)據(jù)例:DATAB DB 18H,-1,30字?jǐn)?shù)據(jù)例:DATAW DW 18H,2A45H 雙字?jǐn)?shù)據(jù)例:DATAD DD 18H,2F3A124BH表達(dá)式代表內(nèi)存單元地址
10、例: ADDR1 DW NEXT ;存放偏移地址 ADDR2 DD NEXT ;存放偏移和段地址NEXT:MOV AL,34H ;NEXT為一條指令的標(biāo)號(hào)段地址高字節(jié)偏移地址高字節(jié)偏移地址低字節(jié)偏移地址高字節(jié)段地址低字節(jié)偏移地址低字節(jié)ADDR1ADDR2字符串存放各字符的ASCII碼例:STR1 DB ABCD STR1 DB A, B, C, D STR1 DB 41H,42H,43H,44H ?只分配單元,不定義初值例:BUF1 DB 5,6,7,? BUF2 DW 56H,78H,?,345FH例:操作數(shù)用復(fù)制操作符DUP,表示操作數(shù)重復(fù)若干次 BUF1 DB 2 DUP(2,3,4)
11、BUF2 DW 1,2,3 DUP(6)FF1E180045001800182A004B123A2FDATABDATABDATAWDATAWDATADDATAD例(字節(jié)或字的賦值):OPER1 DB ?, ?OPER2 DW ?, ? MOV OPER1, 0 ;字節(jié)指令 MOV OPER2, 0 ;字指令結(jié)果為:(AX)=3402H (AL)=34H例(錯(cuò)誤的賦值語(yǔ)句):OPER1 DB 1, 2OPER2 DW 1234H, 5678H MOV AX, OPER1+1 類型不匹配 MOV AL, OPER2 類型不匹配 修改成:MOV AX, WORD PTR OPER1+1MOV AL,
12、 BYTE PTR OPER2 表達(dá)式賦值偽操作表達(dá)式名 EQU 表達(dá)式ALPHA EQU 9BETA EQU ALPHA+18“ = ” 偽操作 (允許重復(fù)定義)EMP = 7EMP = EMP+1解除定義偽指令PURGE格式:PURGE 功能:解除指定符號(hào)的定義例:Y1 EQU 7 PURGE Y1 Y1 EQU 128 EQU與=的差異:同一個(gè)程序中 = 可以對(duì)一個(gè)符號(hào)重復(fù)定義,EQU不能對(duì)同一個(gè)符號(hào)重復(fù)定義例:Y1=7 Y1=128 的定義是正確的 Y1 EQU 7 Y1 EQU 128 的定義是錯(cuò)誤的 地址計(jì)數(shù)器與對(duì)準(zhǔn)偽操作地址計(jì)數(shù)器 $ :保存當(dāng)前正在匯編的指令的地址 ORG $+
13、8 ; 跳過(guò)8個(gè)字節(jié)的存儲(chǔ)區(qū) JNE $+6 ; 轉(zhuǎn)向地址是 JNE 的地址 +6 JMP $+2 ; 轉(zhuǎn)向下一條指令$ 用在偽操作的參數(shù)字段:表示地址計(jì)數(shù)器的當(dāng)前值 例:ARRAY DW 1, 2 , $+4 , 3 , 4 , $+4 00H 01H 00H 02H 00H 7CH 00H 03H 00H 04H 00H 82H ARRAY 007E00780074地址計(jì)數(shù)器$的常用使用方法應(yīng)用:常用來(lái)確定數(shù)組中元素的個(gè)數(shù)例:BUF1 DB 1,2,3,4,5 CNT1 EQU $-BUF1 (常用) BUF2 DW 1,2,3,4,5 CNT2 EQU ($-BUF2)/2 CNT1、C
14、NT2的值分別為數(shù)組BUF1、BUF2中數(shù)據(jù)元素的個(gè)數(shù) 例:SEG1 SEGMENT ORG 10 VAR1 DW 1234H ORG 20 VAR2 DW 5678H ORG $+8 VAR3 DW 1357HSEG1 ENDS例: ORG 100HSTART: u ORG 偽操作 定義偏移量表達(dá)式操作符:(1) 算術(shù)操作符: 、 、 、Mod VIDEO_BUF DB 25*80*2 DUP(?)ARRAY DW 1,2,3,4,5,6,7ARYEND DW ?MOV CX, (ARYEND-ARRAY)/2ADD AX, BLOCK+2 ; 符號(hào)地址常數(shù) 有意義 ; 時(shí)意義不明確MOV
15、AX, BX+1 ; MOV AX, BX+1 ; 寄存器間接尋址OPR1 EQU 25 ;0001001BOPR2 EQU 7 ;00000111BAND AX, OPR1 AND OPR2(2) 邏輯和移位操作符: AND、OR、XOR、NOT、SHL、SHR;AND AX,1MOV AX, 0FFFFH SHL 2;MOV AX,0FFFCH(3) 關(guān)系操作符: EQ、NE、LT、LE、GT、GE計(jì)算結(jié)果為邏輯值:真 0FFFFH 假 0000HX: Y: 若 128 (真) 匯編結(jié)果: MOV FID, -1若 128 (假) 匯編結(jié)果: MOV FID, 0MOV FID, (OFF
16、SET Y - OFFSET X) LE 128(4) 數(shù)值回送操作符: OFFSET、SEG、LENGTH、SIZE SIZE 變量功能:LENGTH * TYPEOFFSET / SEG 變量 / 標(biāo)號(hào)功能:回送變量或標(biāo)號(hào)的偏址 / 段址LENGTH 變量功能:回送由DUP定義的變量的單元數(shù),其它情況回送1TYPE 變量功能:指出變量的類型。字節(jié):TYPE=1,字:TYPE=2,雙字:TYPE=4例:ARRAY DW 100 DUP (?)TABLE DB ABCDMOV CX, LENGTH ARRAY ; MOV CX, 100MOV CX, LENGTH TABLE ; MOV CX
17、, 1MOV CX, SIZE ARRAY ; MOV CX, 200MOV CX, SIZE TABLE ; MOV CX, 1(5) 屬性操作符: PTR類型 PTR 表達(dá)式 MOV WORD PTR BX, 5PTR運(yùn)算符實(shí)例 用于暫時(shí)改變變量或標(biāo)號(hào)的原有屬性。格式為: 新屬性 PTR 表達(dá)式例:F1 DW 1234H MOV AL,BYTE PTR F1 ;AL=34H例:F2 DB 23H,56H,18H MOV BX,WORD PTR F2 ;BX=5623H例:CALL DWORD PTR BX ;遠(yuǎn)程調(diào)用匯編語(yǔ)言源程序結(jié)構(gòu) 完整段定義結(jié)構(gòu):用段定義偽指令,對(duì)用到的邏輯段分別定義
18、典型的結(jié)構(gòu):數(shù)據(jù)段名 SEGMENT 數(shù)據(jù)段名 ENDS堆棧段名 SEGMENT 堆棧段名 ENDS代碼段名 SEGMENT ASSUME START:段地址裝填 MOV AH,4CH INT 21H代碼段名 ENDS END START例:求字存儲(chǔ)單元中兩個(gè)數(shù)之差,結(jié)果存入下一個(gè)相鄰的字單元中。DATA SEGMENT BUF DW 3483H,4596H RES DW ? DATA ENDSSTACK SEGMENT STACK STACK STA DW 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE.DS:DATASTART: MOV AX
19、,DATA MOV DS,AX MOV AX,BUF SUB AX,BUF+2 MOV RES,AX MOV AH,4CH INT 21H CODE ENDS END START例:三個(gè)數(shù)相加并把結(jié)果存放在SUM單元中 DATA SEGMENT BUF DB 35H,78H,0A5H SUM DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA ASUM PROC FAR START:PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX程序段前綴結(jié)構(gòu)含義:把整個(gè)程序定義成一個(gè)FAR型過(guò)程 MOV AL,0 MOV SI,OFFSET BUF ADD AL,SI INC SI ADD AL,SI INC SI ADD AL,SI MOV SUM,AL RET ASUM ENDP CODE ENDS END STARTEXE文件:分別定義了數(shù)據(jù)段,代碼段和堆棧段COM文件:只定義了一個(gè)段.1. 程序運(yùn)行步驟及生成的文件myfile.asm編輯程序匯編程序連接程序myfile.crfot
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度木飾面原材料進(jìn)口與分銷合同3篇
- 2025年親子遺贈(zèng)協(xié)議草案
- 2025年代理商代理加盟采購(gòu)合資合作協(xié)議
- 2025年合資合作收益分配協(xié)議
- 2025年企業(yè)外包勞務(wù)協(xié)議
- 2025年智慧城市物業(yè)管理服務(wù)標(biāo)準(zhǔn)合同范本6篇
- 漫談加強(qiáng)物資管理提高企業(yè)經(jīng)濟(jì)效益-圖文
- 《皮質(zhì)醇增多征荊》課件
- 2025年度醫(yī)院病理科診斷服務(wù)承包合同4篇
- 2025年度汽車轉(zhuǎn)讓及二手車交易稅費(fèi)減免合同
- 廢舊物資買(mǎi)賣(mài)合同極簡(jiǎn)版
- 2024年正定縣國(guó)資產(chǎn)控股運(yùn)營(yíng)集團(tuán)限公司面向社會(huì)公開(kāi)招聘工作人員高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 智能衣服方案
- 李克勤紅日標(biāo)準(zhǔn)粵語(yǔ)注音歌詞
- 教科版六年級(jí)下冊(cè)科學(xué)第一單元《小小工程師》教材分析及全部教案(定稿;共7課時(shí))
- 中藥材產(chǎn)地加工技術(shù)規(guī)程 第1部分:黃草烏
- 危險(xiǎn)化學(xué)品經(jīng)營(yíng)單位安全生產(chǎn)考試題庫(kù)
- 案例分析:美國(guó)紐約高樓防火設(shè)計(jì)課件
- 老客戶維護(hù)方案
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)一 用戶定位與選題
- 工作證明模板下載免費(fèi)
評(píng)論
0/150
提交評(píng)論