




已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
匯編語(yǔ)言程序設(shè)計(jì),齊志儒 高福祥 主編 東北大學(xué)出版社,第四章 匯編語(yǔ)言,4.1 匯編語(yǔ)句格式 4.2 匯編語(yǔ)言中數(shù)據(jù)的表示方法 4.3 運(yùn)算符號(hào) 4.4 偽指令 4.5 匯編語(yǔ)言的上機(jī)過(guò)程,4.1 匯編語(yǔ)句格式,4.1.1 字符集 4.1.2 匯編語(yǔ)句格式,Microsoft的宏匯編語(yǔ)言由下列字符組成: (1)英文字母:AZ和az。 (2)數(shù)字字符:09。 (3)算術(shù)運(yùn)算符:+,-,*,/。 (4)關(guān)系運(yùn)算符:。 (5)分隔符:,:,;,(,), (空格),TAB(制表符)。 (6)控制符:CR(回車(chē)),LF(換行),FF(換頁(yè))。 (7)其它字符:,_(下劃線),.,%,!。,4.1.1 字符集,DSEG SEGMENT ;數(shù)據(jù)段開(kāi)始 DATAl DB 13H,26H ;原始數(shù)據(jù) DATA2 DW 0 ;保存結(jié)果單元 DSEG ENDS ;數(shù)據(jù)段結(jié)束 SSEG SEGMENT STACK ;堆棧段開(kāi)始 SKTOP DB 20 DUP(0) SSEG END5 ;堆棧段結(jié)束 CSEG SEGMENT ;代碼段開(kāi)始 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 ;取第一個(gè)數(shù)據(jù) ADD AL,DATAl十1 ;與第二個(gè)數(shù)據(jù)相加 MOV BYTE PTR DATA 2,AL ;保存結(jié)果 M()V AH,4CH INT 21H ;返間DOS C5EG ENDS ;代碼段結(jié)束 END START ;源程序結(jié)束,匯編語(yǔ)句最多由四個(gè)域組成:,標(biāo)號(hào) 操作符 操作數(shù) ;注釋,4.1.2 匯編語(yǔ)句格式,1. 標(biāo)號(hào),(1) 定義: 程序設(shè)計(jì)人員自己定義的符號(hào), 用于代表內(nèi)存單元的地址. (2)標(biāo)號(hào)的組成規(guī)則 1)組成標(biāo)號(hào)的字符: AZ,az,09,?,.,$, 和_(下劃線); 2)標(biāo)號(hào)的最大長(zhǎng)度為3l(字符個(gè)數(shù))。 3)標(biāo)號(hào)的第一個(gè)字符不能是09的數(shù)字。 4)機(jī)器指令語(yǔ)句中標(biāo)號(hào)必須以冒號(hào)結(jié)束,偽指令語(yǔ)句中的標(biāo)號(hào)不允許有冒號(hào).,1. 標(biāo)號(hào),(3) 標(biāo)號(hào)的三個(gè)屬性 1)段屬性: 標(biāo)號(hào)所代表的段的值, 可用SEG算符得到. 2)偏移量屬性: 標(biāo)號(hào)所代表的偏移量的值, 可用OFFSET算符得到 3)類(lèi)型屬性: 標(biāo)號(hào)所代表的內(nèi)存單元所存放的數(shù)據(jù)或指令代碼的類(lèi)型. 共有7種.,2. 操作符 操作符可以是指令助記符, 偽指令助記符,宏指令符號(hào)。 3. 操作數(shù) 操作數(shù)是操作符操作的對(duì)象,可以是數(shù)據(jù)本身,也可以是標(biāo)號(hào)、寄存器名或算術(shù)表達(dá)式。 4. 注釋 注釋是對(duì)指令功能的說(shuō)明,目的實(shí)施自己或他人在閱讀分析程序是方便。,4.2.1 數(shù)據(jù)在機(jī)內(nèi)的表示 4.2.2 匯編語(yǔ)言中數(shù)據(jù)的書(shū)寫(xiě)形式,4.2 匯編語(yǔ)言中數(shù)據(jù)的表示方法,4.2.1 數(shù)據(jù)在機(jī)內(nèi)的表示,(1)數(shù)據(jù)的符號(hào): 用0表示下,1表示負(fù). 對(duì)于定點(diǎn)表示有原碼反碼補(bǔ)碼等表示方法. (2)數(shù)據(jù)的定點(diǎn)表示法 1)小數(shù)點(diǎn)在最低位之后,代表純整數(shù), 16位表示范圍為 -32768+32767 2)小數(shù)點(diǎn)在最高位和次高位之間,代表純小數(shù). (3)數(shù)據(jù)的浮點(diǎn)表示法 在浮點(diǎn)表示中, 分為尾數(shù)和階碼兩部分. 有多種表示方法,現(xiàn)在一般用IEEE的表示方法.,(3)浮點(diǎn)數(shù)據(jù)表示法,1ffffff,轉(zhuǎn)換為二進(jìn)制為 100100.101 規(guī)格化后為 1.0010010125 階碼為 101 加過(guò)余量127后 0111 1111+00000101=10000100 尾數(shù)(23位) 001 0010 1000 0000 0000 0000 符號(hào)&階碼&尾數(shù) 01000010 00010010 10000000 00000000 用16進(jìn)制表示為 42 12 80 00 符號(hào)位變化 11000010 00010010 10000000 00000000 C2 12 80 00,(3)浮點(diǎn)數(shù)據(jù)表示法(舉例),36.625,-36.625,(4) 數(shù)據(jù)的表示范圍,1)一個(gè)字節(jié)(字節(jié)數(shù)據(jù)) 無(wú)符號(hào)整數(shù) 0255 補(bǔ)碼表示帶符號(hào)整數(shù) -128127 2)二個(gè)字節(jié)(字?jǐn)?shù)據(jù)) 無(wú)符號(hào)整數(shù) 0655535 補(bǔ)碼表示帶符號(hào)整數(shù) -32767+32768 3) 四字節(jié)表示的浮點(diǎn)數(shù)據(jù)(規(guī)格化) 正數(shù): 2127(1-2-24)N2-1272-1 負(fù)數(shù):2127(-(1-2-24)N2-128(-2-1) 零: 階碼和尾數(shù)同時(shí)為0,4.2.2匯編語(yǔ)言中數(shù)據(jù)的書(shū)寫(xiě)形式,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ù), 用單引號(hào)或雙引號(hào)給出,例如 a ,”高” 7)標(biāo)識(shí)符, 用符號(hào)定義偽指令定義的符號(hào)。 8)表達(dá)式,用運(yùn)算符號(hào)連接起來(lái)的以上各種數(shù)據(jù),4.3 運(yùn)算符號(hào),4.3.1 算術(shù)運(yùn)算符 4.3.2 邏輯運(yùn)算符 4.3.3 關(guān)系運(yùn)算符 4.3.4 分析算符 4.3.5 組合算符 4.3.6 字節(jié)分離算符 4.3.7 記錄專(zhuān)用算符 4.3.8 算符的優(yōu)先級(jí),4.3.1 算術(shù)運(yùn)算符,七個(gè): + - * / 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 邏輯運(yùn)算符,AND(與) 按位與 76H AND 23H=22H,OR(或) 按位或 76H AND 23H=77H,4.3.2 邏輯運(yùn)算符,XOR 異或 76H XOR 23H=55H,NOT(非) 按位取反 NOT 76H =89H,4.3.3 關(guān)系運(yùn)算符,(略),4.3.4 分析算符,1. SEG 取標(biāo)號(hào)所代表的地址的段地址. 2. OFFSET 取標(biāo)號(hào)所代表的地址的偏移量. 3. TYPE 取標(biāo)與所代表的內(nèi)存單元的類(lè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 用來(lái)建立或臨時(shí)改變存儲(chǔ)器操作數(shù)的類(lèi)型。 2. THIS 用來(lái)為一個(gè)標(biāo)號(hào)建立一個(gè)新的類(lèi)型。,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é)分離算符,用于將一個(gè)表達(dá)式的高字節(jié)和低字節(jié)分開(kāi)。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 記錄專(zhuān)用算符,1. MASK 2. WIDTH,暫時(shí)不講。,4.3.8 算符的優(yōu)先級(jí),表達(dá)式求值時(shí),各種運(yùn)算符的優(yōu)先次序(由高至低)如下: 1)括號(hào)內(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。 先級(jí)別相同時(shí),按出現(xiàn)次序由左至右順序計(jì)算。,4.4偽指令,4.4.1 符號(hào)定義偽指令 4.4.2 數(shù)據(jù)定義偽指令 4.4.3 段定義偽指令 4.4.4 其他偽指令,4.4.1 符號(hào)定義偽指令,1. EQU 等價(jià)偽指令 EQU偽指令用來(lái)定義一個(gè)符號(hào),用該符號(hào)代表機(jī)器指令助記符、偽指令助記符、寄存器名字、各種運(yùn)算符號(hào)、常數(shù)等。,VAL EQU 100 JIA EQU ADD ADR EQU SI+BX+1000H MOV AL,VAL JIA AL,10 MOV ADR,AL,4.4.1 符號(hào)定義偽指令,2. = 等號(hào)偽指令 =偽指令用來(lái)定義一個(gè)符號(hào),用該符號(hào)代表表達(dá)式、常數(shù)等。,VAL = 100 MOV AL,VAL VAL = 200 MOV AL,VAL VAL = VAL+10 MOV AL,VAL,3.=偽指令與EQU偽指令的差別: =偽指令只能代表表達(dá)式或常數(shù),不能是指令助記符等。 EQU定義的符號(hào)不能重定義,而=定義的可以。,4.4.2 數(shù)據(jù)定義偽指令,數(shù)據(jù)定義偽指令用來(lái)定義一個(gè)存儲(chǔ)單元的符號(hào)名, 并初始化該單元或由該單元開(kāi)始的若干連續(xù)單元。 初始化單元就是將一個(gè)確定的數(shù)值或不確定的值(在定義語(yǔ)句中用?表示)放入指定的內(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. 本站所有資源如無(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 毛衣半成品購(gòu)買(mǎi)合同協(xié)議
- 2025《二手房購(gòu)房合同范本》
- 2025附條件股權(quán)轉(zhuǎn)讓合同范本
- 2025關(guān)于軟件開(kāi)發(fā)勞動(dòng)合同范本
- 商業(yè)攝影電子合同協(xié)議
- 款項(xiàng)協(xié)議書(shū)范本格式
- 2025倉(cāng)庫(kù)租賃合同協(xié)議
- 和液化氣簽協(xié)議合同
- 商場(chǎng)漢服租賃合同協(xié)議
- 2025資產(chǎn)與股權(quán)附條件贈(zèng)與合同應(yīng)如何擬定
- 物業(yè)電工操作培訓(xùn)
- 蘇教版科學(xué)二年級(jí)下冊(cè) 全冊(cè)教案
- 公務(wù)員考試?yán)碚撆c實(shí)踐(山東聯(lián)盟)知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋山東財(cái)經(jīng)大學(xué)
- AQT3034化工過(guò)程安全管理導(dǎo)則
- 一年級(jí)加減法口算練習(xí)題
- 中國(guó)骨關(guān)節(jié)炎診療指南(2024版)解讀
- 醫(yī)療器械經(jīng)營(yíng)質(zhì)量管理規(guī)范培訓(xùn)
- 四年級(jí)下冊(cè)勞動(dòng)《創(chuàng)意手提袋》課件
- 西安老城根Gpark策略課件0816
- 《異常子宮出血診斷與治療指南(2022更新版)》解讀
- 2024全國(guó)高考?xì)v史真題之專(zhuān)題一-古代中國(guó)的政治制度
評(píng)論
0/150
提交評(píng)論