第3講2 4.1-4.3匯編語句格式_第1頁
第3講2 4.1-4.3匯編語句格式_第2頁
第3講2 4.1-4.3匯編語句格式_第3頁
第3講2 4.1-4.3匯編語句格式_第4頁
第3講2 4.1-4.3匯編語句格式_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、第四章 匯編語言4.1 匯編語句格式4.2 匯編語言中數(shù)據(jù)的表示方法4.3 運算符號4.4 偽指令4.5 匯編語言的上機過程14.1 匯編語句格式4.1.1 字符集4.1.2 匯編語句格式2Microsoft的宏匯編語言由下列字符組成:(1)英文字母:AZ和az。(2)數(shù)字字符:09。(3)算術(shù)運算符:+,-,*,/。(4)關(guān)系運算符:。(5)分隔符:,:,;,(,),”, (空格),TAB(制表符)。(6)控制符:CR(回車),LF(換行),FF(換頁)。(7)其它字符:,_(下劃線),.,%,!。4.1.1 字符集34.1.2 匯編語句格式DSEG SEGMENT ;數(shù)據(jù)段開始DATA1

2、DB 13H,26H ;原始數(shù)據(jù)DATA2 DW 0 ;保存結(jié)果單元DSEG ENDS ;數(shù)據(jù)段結(jié)束SSEG SEGMENT STACK ;堆棧段開始 SKTOP DB 20 DUP(0)SSEG ENDS ;堆棧段結(jié)束CSEG SEGMENT ;代碼段開始ASSUME CS:CSEG,DS:DSEG, SS:SSEGSTART:MOV AX,DSEG ;初始化數(shù)據(jù)段基址 MOVDS,AX MOVAX,SSEG;初始化堆棧段基址 MOV SS,AX MOV SP,LENGTH SKTOP;設段堆棧指針 XORAH,AHMOV AL,DATA1;取第一個數(shù)據(jù) ADD AL,DATA11 ;與第二

3、個數(shù)據(jù)相加 ADCAH,0MOV DATA2,AX;保存結(jié)果 MOV AH,4CH INT21H ;返間DOSCSEG ENDS ;代碼段結(jié)束 ENDSTART;源程序結(jié)束4 匯編語言源程序是若干匯編語言語句的有序集合 一個語句是一條指令語句、偽指令語句或宏指令語句 匯編語句最多由四個域組成:標號 操作符 操作數(shù) ;注釋51. 標號(1) 定義: 程序設計人員自己定義的符號, 用于代表內(nèi)存單元的地址。(2) 標號的組成規(guī)則 1) 組成標號的字符: AZ,az,09,?,.,$和_(下劃線)。 2) 標號的最大長度為3l(字符個數(shù))。 3) 標號的第一個字符不能是09的數(shù)字。 4) 機器指令語句

4、中標號必須以冒號結(jié)束,偽指令語句中的標號不允許有冒號。6(3) 標號的三個屬性 段值屬性:標號所在段的段值,一個在數(shù)據(jù)段中定義的標號段值是DS的值,而在代碼段中定義的標號段值是CS的值,可以用SEG取得。 偏移量屬性:標號所在段起始偏移地址到它的存放位置之間的字節(jié)數(shù),可以用OFFSET取得。?標號的本質(zhì)是什么?7 類型屬性:當標號表示數(shù)據(jù)在內(nèi)存的偏移地址時,偽指令DB、DW、DD、DQ、DT就規(guī)定了其屬性為字節(jié)、字、雙字四字和十字節(jié)屬性,標號的類型屬性實際上指出了為這個變量類型分配的字節(jié)數(shù)目;當標號表示機器指令代碼中的地址時,類型NEAR和FAR指出了該標號是否能被其他代碼段的指令調(diào)用??梢杂?/p>

5、TYPE算符得到。標號類型 類型值字節(jié)類型(BYTE)字類型(WORD)雙字類型(DWORD)四字類型(QWORD)十字節(jié)類型(TBYTE)近類型(NEAR)遠類型(FAR)110-1-284282. 操作符 操作符可以是指令助記符, 偽指令助記符,宏指令符號。3. 操作數(shù) 操作數(shù)是操作符操作的對象,可以是數(shù)據(jù)本身,也可以是標號、寄存器名或算術(shù)表達式。4. 注釋 以分號開始,不被執(zhí)行。注釋是對指令功能的說明,目的是使自己或他人在閱讀分析程序時方便。94.2.1 數(shù)據(jù)在機內(nèi)的表示4.2.2 匯編語言中數(shù)據(jù)的書寫形式4.2 匯編語言中數(shù)據(jù)的表示方法104.2.1 數(shù)據(jù)在機內(nèi)的表示(1)數(shù)據(jù)的符號

6、用0表示正,1表示負. 對于定點表示有原碼、反碼、補碼和過余碼等表示方法.(2)數(shù)據(jù)的定點表示法(補碼) 1)小數(shù)點在最低位之后,代表純整數(shù), 16位表示范圍為 -32768+32767 2)小數(shù)點在最高位和次高位之間,代表純小數(shù),16位定點小數(shù)的表示范圍為-11-2-15(3)數(shù)據(jù)的浮點表示法 在浮點表示中, 分為尾數(shù)和階碼兩部分,有多種表示方法?,F(xiàn)在一般用IEEE的表示方法. 11S階碼尾 數(shù) 06352長實數(shù)尾數(shù)52位, 階碼11位,過余量1023(3FFH)S階碼尾 數(shù) 10636479臨時實數(shù)尾數(shù)63位, 階碼15位,過余量16383(3FFFH)1ffffffS階碼尾 數(shù) 0312

7、3短實數(shù)尾數(shù)23位, 階碼8位,過余量127(7FH)12轉(zhuǎn)換為二進制為 100100.101規(guī)格化后為 1.0010010125階碼為 101加過余量127后 0111 1111+00000101=10000100尾數(shù)(23位) 001 0010 1000 0000 0000 0000符號&階碼&尾數(shù) 01000010 00用16進制表示為 42 12 80 00符號位變化 11000010 00 C2 12 80 00浮點數(shù)據(jù)表示法(舉例)36.625-36.62513(4) 數(shù)據(jù)的表示范圍1)一個字節(jié)(字節(jié)數(shù)據(jù)) 無符號整數(shù) 0255 補碼表示帶符號整數(shù) -1281272)二個字節(jié)(字數(shù)

8、據(jù)) 無符號整數(shù) 0 655535 補碼表示帶符號整數(shù) -32767 +327683) 四字節(jié)表示的浮點數(shù)據(jù)(規(guī)格化) 正數(shù): 2128(1-2-24)N2-127 負數(shù):2128(-(1-2-24)N-2-127 零: 階碼和尾數(shù)同時為0144.2.2匯編語言中數(shù)據(jù)的書寫形式1)二進制常數(shù) 0,1 以B結(jié)尾2)八進制常數(shù) 07, 以Q結(jié)尾3)十進制常數(shù) 09, 以D結(jié)尾或空4)十六進制常數(shù) 09, AF, 以H結(jié)尾5)十進制科學記數(shù)法常數(shù) 以09,E和指數(shù)組成, 如 0.2467E+56)字符常數(shù) 用單引號或雙引號給出,例如 a ,”高”7)標識符號 用符號定義偽指令定義的符號。8)表達式

9、用運算符號連接起來的以上各種數(shù)據(jù)15算術(shù)運算符邏輯運算符關(guān)系運算符分析算符組合算符字節(jié)分離算符運算符的優(yōu)先級4.3 運算符16(1)算術(shù)運算符七個: + - * / MOD SHL SHR+ - * / 與通常的用法相同MOD(取模) 兩數(shù)相除之余數(shù), 例 10 MOD 3=1SHL(左移) 按二進制左移, 例 10 SHL 2 =40SHR(右移) 按二進制右移, 例 10 SHR 2 =217(2)邏輯運算符1AND(與) 按位與76H AND 23H=22H0111 01100010 00110010 0010ANDOR(或) 按位或76H OR 23H=77H0111 01100010

10、 00110111 0111OR18(2)邏輯運算符2XOR 異或 76H XOR 23H=55H0111 01100010 00110101 0101XORNOT(非) 按位取反NOT 76H =89H0111 01101000 1001NOT19(3)關(guān)系運算符相等EQ、不等NE、小于LT、大于GT、小于或等于LE、大于或等于GE參與運算的兩個操作數(shù)必須都是數(shù)據(jù),或者是同一段中的存儲單元,而結(jié)果總是一個數(shù)值:全0或者全1(0FFH或者0FFFFH)MOV AX,0 LT 1MOV AL,0 LT 120(4)分析算符1. SEG 取標號所代表的地址的段地址.2. OFFSET 取標號所代表

11、的地址的偏移量.3. TYPE 取標號所代表的內(nèi)存單元的類型值.ALPHA DB 15,23,46BETA 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 BETA21(4)分析算符4. SIZE 取變量分配的內(nèi)存單元的字節(jié)數(shù)。5. LENGTH 取變量分配的內(nèi)存單元數(shù)。ALPHA DB 5 DUP(0),2BETA DW 3 DUP (0),23GAMA DD 4 DUP (0),2DATA0 DW 32H,5

12、MOV AX,SIZE ALPHA ;5 MOV BX,SIZE BETA ;6 MOV CX,SIZE GAMA ;16 MOV DX,SIZE DATA0 ;2 MOV AX,LENGTH ALPHA ;5 MOV BX,LENGTH BETA ;3 MOV CX,LENGTH GAMA ;4 MOV DX,LENGTH DATA0 ;1SIZE LAB= (LENGTH LAB) * (TYPE LAB)22(5)綜合算符1PTR 用來建立或臨時改變存儲器操作數(shù)的類型。格式:NEWTPTR 標號或存儲單元 建立: MOV BX,10H 錯誤 MOV BYTE PTRBX,10H MOV WORD PTRBX,10H 臨時更改: A1 DB 10H,20H MOV AX,A1 錯誤 MOV AX,WORD PTR A123(5)綜合算符2 格式:THIS 類型 THIS運算符通常和EQU偽指令連用,定義新的標號,其段基值和偏移量和緊跟其后的標號相同。 DATA0 EQU THIS BYTEDATA1 DW 1234H,5698H24(6)字節(jié)分離算符用于將一個表達式的高字節(jié)和低字節(jié)分開。LOW取低字節(jié),HIGH取高字節(jié)。MOV AL,HIGH 1234HMOV AH,LOW 1234HMOV AL,LOW 12345MOV AL,LOW 34*97+8

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論