![匯編語言程序設(shè)計第04章匯編語言.ppt_第1頁](http://file.renrendoc.com/FileRoot1/2019-2/1/7f9d52c5-7622-4939-b7f8-e9759eecb420/7f9d52c5-7622-4939-b7f8-e9759eecb4201.gif)
![匯編語言程序設(shè)計第04章匯編語言.ppt_第2頁](http://file.renrendoc.com/FileRoot1/2019-2/1/7f9d52c5-7622-4939-b7f8-e9759eecb420/7f9d52c5-7622-4939-b7f8-e9759eecb4202.gif)
![匯編語言程序設(shè)計第04章匯編語言.ppt_第3頁](http://file.renrendoc.com/FileRoot1/2019-2/1/7f9d52c5-7622-4939-b7f8-e9759eecb420/7f9d52c5-7622-4939-b7f8-e9759eecb4203.gif)
![匯編語言程序設(shè)計第04章匯編語言.ppt_第4頁](http://file.renrendoc.com/FileRoot1/2019-2/1/7f9d52c5-7622-4939-b7f8-e9759eecb420/7f9d52c5-7622-4939-b7f8-e9759eecb4204.gif)
![匯編語言程序設(shè)計第04章匯編語言.ppt_第5頁](http://file.renrendoc.com/FileRoot1/2019-2/1/7f9d52c5-7622-4939-b7f8-e9759eecb420/7f9d52c5-7622-4939-b7f8-e9759eecb4205.gif)
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
匯編語言程序設(shè)計,齊志儒 高福祥 主編 東北大學(xué)出版社,第四章 匯編語言,4.1 匯編語句格式 4.2 匯編語言中數(shù)據(jù)的表示方法 4.3 運(yùn)算符號 4.4 偽指令 4.5 匯編語言的上機(jī)過程,4.1 匯編語句格式,4.1.1 字符集 4.1.2 匯編語句格式,Microsoft的宏匯編語言由下列字符組成: (1)英文字母:AZ和az。 (2)數(shù)字字符:09。 (3)算術(shù)運(yùn)算符:+,-,*,/。 (4)關(guān)系運(yù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)機(jī)器指令語句中標(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ù)在機(jī)內(nèi)的表示 4.2.2 匯編語言中數(shù)據(jù)的書寫形式,4.2 匯編語言中數(shù)據(jù)的表示方法,4.2.1 數(shù)據(jù)在機(jī)內(nèi)的表示,(1)數(shù)據(jù)的符號: 用0表示下,1表示負(fù). 對于定點(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 加過余量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)浮點(diǎn)數(shù)據(jù)表示法(舉例),36.625,-36.625,(4) 數(shù)據(jù)的表示范圍,1)一個字節(jié)(字節(jié)數(shù)據(jù)) 無符號整數(shù) 0255 補(bǔ)碼表示帶符號整數(shù) -128127 2)二個字節(jié)(字?jǐn)?shù)據(jù)) 無符號整數(shù) 0655535 補(bǔ)碼表示帶符號整數(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ù)同時為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á)式,用運(yùn)算符號連接起來的以上各種數(shù)據(jù),4.3 運(yùn)算符號,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 記錄專用算符 4.3.8 算符的優(yōu)先級,4.3.1 算術(shù)運(yùn)算符,七個: + - * / 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)號所代表的地址的段地址. 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ùn)算符的優(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偽指令用來定義一個符號,用該符號代表機(jī)器指令助記符、偽指令助記符、寄存器名字、各種運(yùn)算符號、常數(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年產(chǎn)權(quán)委托交易協(xié)議標(biāo)準(zhǔn)范文(2篇)
- 2025年個人無息的借款合同(三篇)
- 2025年個人房屋租房合同協(xié)議(三篇)
- 2025年個人車抵押借款合同常用版(2篇)
- 2025年二手機(jī)動車轉(zhuǎn)讓協(xié)議范文(2篇)
- 2025年個人自建房施工合同模板(2篇)
- 教堂裝修監(jiān)理協(xié)議范本
- 娛樂場所裝修終止合同樣本
- 游泳館公共區(qū)域裝修合同
- 主題酒店裝修延期補(bǔ)充協(xié)議
- 血栓性微血管病的診治
- 綜合客運(yùn)樞紐換乘區(qū)域設(shè)施設(shè)備配置要求JTT1066-2016
- 中國急性缺血性卒中診治指南(2023)解讀
- 2024PowerTitan系列運(yùn)維指導(dǎo)儲能系統(tǒng)運(yùn)維指導(dǎo)
- 沸石轉(zhuǎn)輪知識講解
- 固定資產(chǎn)盤點(diǎn)報告醫(yī)院版
- 中國內(nèi)部審計準(zhǔn)則及指南
- 銀行個人業(yè)務(wù)培訓(xùn)課件
- 2024年ISTQB認(rèn)證筆試歷年真題薈萃含答案
- tpu顆粒生產(chǎn)工藝
- 《體檢中心培訓(xùn)》課件
評論
0/150
提交評論