




已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
匯編語言程序設(shè)計,齊志儒 高福祥 主編 東北大學(xué)出版社,第四章 匯編語言,4.1 匯編語句格式 4.2 匯編語言中數(shù)據(jù)的表示方法 4.3 運算符號 4.4 偽指令 4.5 匯編語言的上機過程,4.1 匯編語句格式,4.1.1 字符集 4.1.2 匯編語句格式,Microsoft的宏匯編語言由下列字符組成: (1)英文字母:AZ和az。 (2)數(shù)字字符:09。 (3)算術(shù)運算符:+,-,*,/。 (4)關(guān)系運算符:。 (5)分隔符:,:,;,(,), (空格),TAB(制表符)。 (6)控制符:CR(回車),LF(換行),FF(換頁)。 (7)其它字符:,_(下劃線),.,%,!。,4.1.1 字符集,DSEG SEGMENT ;數(shù)據(jù)段開始 DATAl DB 13H,26H ;原始數(shù)據(jù) DATA2 DW 0 ;保存結(jié)果單元 DSEG ENDS ;數(shù)據(jù)段結(jié)束 SSEG SEGMENT STACK ;堆棧段開始 SKTOP DB 20 DUP(0) SSEG END5 ;堆棧段結(jié)束 CSEG SEGMENT ;代碼段開始 ASSUME CS:CSEG,DS:DSEG, SS:SSEG START: MOV AX,DSG ;初的化數(shù)據(jù)段基址 MOV DS,AX MOV AX,SSEG ;初始化堆棧段基址 MOV SS,AX MOV SP,LENGTH SKTOP ;設(shè)段堆棧指針 MOV AL,DATA1 ;取第一個數(shù)據(jù) ADD AL,DATAl十1 ;與第二個數(shù)據(jù)相加 MOV BYTE PTR DATA 2,AL ;保存結(jié)果 M()V AH,4CH INT 21H ;返間DOS C5EG ENDS ;代碼段結(jié)束 END START ;源程序結(jié)束,匯編語句最多由四個域組成:,標(biāo)號 操作符 操作數(shù) ;注釋,4.1.2 匯編語句格式,1. 標(biāo)號,(1) 定義: 程序設(shè)計人員自己定義的符號, 用于代表內(nèi)存單元的地址. (2)標(biāo)號的組成規(guī)則 1)組成標(biāo)號的字符: AZ,az,09,?,.,$, 和_(下劃線); 2)標(biāo)號的最大長度為3l(字符個數(shù))。 3)標(biāo)號的第一個字符不能是09的數(shù)字。 4)機器指令語句中標(biāo)號必須以冒號結(jié)束,偽指令語句中的標(biāo)號不允許有冒號.,1. 標(biāo)號,(3) 標(biāo)號的三個屬性 1)段屬性: 標(biāo)號所代表的段的值, 可用SEG算符得到. 2)偏移量屬性: 標(biāo)號所代表的偏移量的值, 可用OFFSET算符得到 3)類型屬性: 標(biāo)號所代表的內(nèi)存單元所存放的數(shù)據(jù)或指令代碼的類型. 共有7種.,2. 操作符 操作符可以是指令助記符, 偽指令助記符,宏指令符號。 3. 操作數(shù) 操作數(shù)是操作符操作的對象,可以是數(shù)據(jù)本身,也可以是標(biāo)號、寄存器名或算術(shù)表達(dá)式。 4. 注釋 注釋是對指令功能的說明,目的實施自己或他人在閱讀分析程序是方便。,4.2.1 數(shù)據(jù)在機內(nèi)的表示 4.2.2 匯編語言中數(shù)據(jù)的書寫形式,4.2 匯編語言中數(shù)據(jù)的表示方法,4.2.1 數(shù)據(jù)在機內(nèi)的表示,(1)數(shù)據(jù)的符號: 用0表示下,1表示負(fù). 對于定點表示有原碼反碼補碼等表示方法. (2)數(shù)據(jù)的定點表示法 1)小數(shù)點在最低位之后,代表純整數(shù), 16位表示范圍為 -32768+32767 2)小數(shù)點在最高位和次高位之間,代表純小數(shù). (3)數(shù)據(jù)的浮點表示法 在浮點表示中, 分為尾數(shù)和階碼兩部分. 有多種表示方法,現(xiàn)在一般用IEEE的表示方法.,(3)浮點數(shù)據(jù)表示法,1ffffff,轉(zhuǎn)換為二進(jìn)制為 100100.101 規(guī)格化后為 1.0010010125 階碼為 101 加過余量127后 0111 1111+00000101=10000100 尾數(shù)(23位) 001 0010 1000 0000 0000 0000 符號&階碼&尾數(shù) 01000010 00010010 10000000 00000000 用16進(jìn)制表示為 42 12 80 00 符號位變化 11000010 00010010 10000000 00000000 C2 12 80 00,(3)浮點數(shù)據(jù)表示法(舉例),36.625,-36.625,(4) 數(shù)據(jù)的表示范圍,1)一個字節(jié)(字節(jié)數(shù)據(jù)) 無符號整數(shù) 0255 補碼表示帶符號整數(shù) -128127 2)二個字節(jié)(字?jǐn)?shù)據(jù)) 無符號整數(shù) 0655535 補碼表示帶符號整數(shù) -32767+32768 3) 四字節(jié)表示的浮點數(shù)據(jù)(規(guī)格化) 正數(shù): 2127(1-2-24)N2-1272-1 負(fù)數(shù):2127(-(1-2-24)N2-128(-2-1) 零: 階碼和尾數(shù)同時為0,4.2.2匯編語言中數(shù)據(jù)的書寫形式,1) 二進(jìn)制常數(shù) 0,1 以B結(jié)尾 2)八進(jìn)制常數(shù) 07, 以O(shè)或Q結(jié)尾 3)十進(jìn)制常數(shù) 09, 以D結(jié)尾或空 4)十六進(jìn)制常數(shù) 09, AF, 以結(jié)尾 5)十進(jìn)制科學(xué)記數(shù)法常數(shù) 以09,E和指數(shù)組成, 如 0.2467E+5 6)字符常數(shù), 用單引號或雙引號給出,例如 a ,”高” 7)標(biāo)識符, 用符號定義偽指令定義的符號。 8)表達(dá)式,用運算符號連接起來的以上各種數(shù)據(jù),4.3 運算符號,4.3.1 算術(shù)運算符 4.3.2 邏輯運算符 4.3.3 關(guān)系運算符 4.3.4 分析算符 4.3.5 組合算符 4.3.6 字節(jié)分離算符 4.3.7 記錄專用算符 4.3.8 算符的優(yōu)先級,4.3.1 算術(shù)運算符,七個: + - * / MOD SHL SHR + - * / 與通常的用法相同 MOD(取模) 兩數(shù)相除之余數(shù), 例 10 MOD 3=1 SHL(左移) 按二進(jìn)制左移, 例 10 SHL 2 =40 SHR(右移) 按二進(jìn)制右移, 例 10 SHR 2 =2,4.3.2 邏輯運算符,AND(與) 按位與 76H AND 23H=22H,OR(或) 按位或 76H AND 23H=77H,4.3.2 邏輯運算符,XOR 異或 76H XOR 23H=55H,NOT(非) 按位取反 NOT 76H =89H,4.3.3 關(guān)系運算符,(略),4.3.4 分析算符,1. SEG 取標(biāo)號所代表的地址的段地址. 2. OFFSET 取標(biāo)號所代表的地址的偏移量. 3. TYPE 取標(biāo)與所代表的內(nèi)存單元的類型值.,ALPHA DB 15,23,46 BETA DW 4267H,25H MOV AX,SEG ALPHA MOV BX,SEG BETA MOV CX,OFFSET ALPHA MOV DX,OFFSET BETA MOV SI,TYPE ALPHA MOV DI,TYPE BETA,4.3.4 分析算符,4. SIZE 取DUP分配的內(nèi)存單元的字節(jié)數(shù)。 5. LENGTH 取DUP分配的內(nèi)存單元數(shù)。,ALPHA DB 5 DUP(0) BETA DW 3 DUP (0) GAMA DD 4 DUP (0) MOV AX,SIZE ALPHA ;5 MOV BX,SIZE BETA ;6 MOV CX,SIZE GAMA ;16 MOV AX,LENGTH ALPHA ;5 MOV BX,LENGTH BETA ;3 MOV CX,LENGTH GAMA ;4,SIZE LAB= (LENGTH LAB) * (TYPE LAB),4.3.5 組合算符,1. PTR 用來建立或臨時改變存儲器操作數(shù)的類型。 2. THIS 用來為一個標(biāo)號建立一個新的類型。,MOV BX,10H MOV BYTE PTRBX,10H MOV WORD PTRBX,10H A1 DB 10H,20H MOV AX,A1 MOV AX,WORD PTR A1 B1 EQU THIS WORD A2 DB 21H,34H MOV AX,B1,4.3.6 字節(jié)分離算符,用于將一個表達(dá)式的高字節(jié)和低字節(jié)分開。LOW取的字節(jié),HIGH取高字節(jié)。,MOV AL,HIGH 1234H MOV AH,LOW 1234H MOV AL,LOW 12345 MOV AL,LOW 34*97+8 MOV AL, LOW OFFSET A1,4.3.7 記錄專用算符,1. MASK 2. WIDTH,暫時不講。,4.3.8 算符的優(yōu)先級,表達(dá)式求值時,各種運算符的優(yōu)先次序(由高至低)如下: 1)括號內(nèi)的表達(dá)式 2)LENGTH,SIZE,WIDTH,MASK 3)PTR,OFFSET,SEG,TYPE 4)HIGH,LOW 5) *,MOD,SHL,SHR 6)十,一 7)EQ,NE,LT,LE,GT,GE 8)NOT 9)AND 10)OR,XOR。 先級別相同時,按出現(xiàn)次序由左至右順序計算。,4.4偽指令,4.4.1 符號定義偽指令 4.4.2 數(shù)據(jù)定義偽指令 4.4.3 段定義偽指令 4.4.4 其他偽指令,4.4.1 符號定義偽指令,1. EQU 等價偽指令 EQU偽指令用來定義一個符號,用該符號代表機器指令助記符、偽指令助記符、寄存器名字、各種運算符號、常數(shù)等。,VAL EQU 100 JIA EQU ADD ADR EQU SI+BX+1000H MOV AL,VAL JIA AL,10 MOV ADR,AL,4.4.1 符號定義偽指令,2. = 等號偽指令 =偽指令用來定義一個符號,用該符號代表表達(dá)式、常數(shù)等。,VAL = 100 MOV AL,VAL VAL = 200 MOV AL,VAL VAL = VAL+10 MOV AL,VAL,3.=偽指令與EQU偽指令的差別: =偽指令只能代表表達(dá)式或常數(shù),不能是指令助記符等。 EQU定義的符號不能重定義,而=定義的可以。,4.4.2 數(shù)據(jù)定義偽指令,數(shù)據(jù)定義偽指令用來定義一個存儲單元的符號名, 并初始化該單元或由該單元開始的若干連續(xù)單元。 初始化單元就是將一個確定的數(shù)值或不確定的值(在定義語句中用?表示)放入指定的內(nèi)存單元。 數(shù)據(jù)定義偽指令有五種: DB, DW, DD, DQ和DT。只介紹前三種。,1. 字節(jié)定義偽指令DB,000D 03 12 25 41 42 43 FIRST DB 3,18,25H,ABC 0013 2D 0C 1F 06 SECOND DB 3*15,48/4,36-5,26 MOD 10 0017 ? ? 36 FF 1E THIRD DB ?,?,36H,-1,36Q 001C 00051A FOUTH DB 5 DUP (26) 0021 0002000204 0F 7F FIVET DB 2 DUP (2 DUP (4),15),7FH 0027 0003? SIXTH DB 3 DUP (?),2. 字定義偽指令DW,002E 1234 8000 5859 FSTW DW 1234H,-32768,XY 0034 1000 0046 FFE7 SCDW DW 256*16,46H,-25 003A ? 002E R 00FF TRDW DW ?,OFFSET FSTW,255 0040 00030510 FUTW DW 3 DUP (510H),3. 雙字定義偽指令DD,0052 FFFFFFFF00000080 DFST DD 4294967295,80000000H 005A 00801242008012C2 DSCD DD 36.625,-0.36625E+2 0062 0002FF030000 DTRD DD 2 DUP (1023) 006A 4E4D0000 DFUT DD MN 006E 0052 - R DFIV DD DFST,4.4.3. 段定義偽指令,1. 段首定義偽指令 SEGMENT 2. 段結(jié)束偽指令 ENDS 3. 段假定偽指令 ASSUME,CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG MOV AX,DSEG MOV AL,DATA1 ADD AL,DATA2 MOV SUM,AL HLT CSEG ENDS,參數(shù)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CECS 10090-2020混凝土用珊瑚骨料
- T/CECS 10073-2019綠色建材評價混凝土外加劑減水劑
- T/CECS 10016-2019高固型水性橡膠高分子防水涂料
- T/CCOA 24-2020棕櫚仁餅(粕)
- T/CCMA 0161-2023非公路移動式加油車
- T/CCMA 0070-2019電動工業(yè)車輛非車載傳導(dǎo)式充電機與電池管理系統(tǒng)之間的通信協(xié)議
- 初級烹調(diào)考試題及答案
- 分級檢驗考試題及答案
- 谷歌運營面試題庫及答案
- 方城醫(yī)療面試題及答案
- 公司級新員工安全培訓(xùn)課件
- 北師大版二年級數(shù)學(xué)下冊全冊10套試卷(附答案)
- 山東省汽車維修工時定額(T-SDAMTIA 0001-2023)
- 《科研創(chuàng)新實踐》課程教學(xué)大綱
- 報價單模板及范文(通用十二篇)
- 乘法運算定律復(fù)習(xí)課1課件
- 開發(fā)票申請單
- 五年級異分母分?jǐn)?shù)加減法第一課時課件
- 學(xué)校食堂操作流程圖
- 籃球比賽記錄表(CBA專用)
- DB23∕T 1019-2020 黑龍江省建筑工程資料管理標(biāo)準(zhǔn)
評論
0/150
提交評論