freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

微機原理2ppt課件(已修改)

2025-03-06 00:11 本頁面
 

【正文】 第 4章 匯編語言程序設(shè)計 第 4章第 1頁共 256頁 第 4章 匯編語言程序設(shè)計 匯編語言程序格式 偽指令 匯編語言源程序結(jié)構(gòu) 匯編語言程序的上機過程 匯編語言程序設(shè)計 程序設(shè)計舉例 第 4章 匯編語言程序設(shè)計 第 4章第 2頁共 256頁 匯編語言程序格式 程序結(jié)構(gòu) 【 例 41】 給出一個完整的匯編語言源程序,該程序的功能是完成兩個字節(jié)數(shù)據(jù)相加。 DATA SEGMENT ;段定義開始 (DATA段 ) BUF1 DB 34H ;第 1個加數(shù) BUF2 DB 2AH ;第 2個加數(shù) SUM DB ? ;準備用來存放和數(shù)的單元 DATA ENDS ;段定義結(jié)束 (DATA段 ) CODE SEGMENT ;段定義開始 (CODE段 ) ASSUME CS:CODE, DS:DATA ; 規(guī)定 DATA、 CODE分別為數(shù)據(jù)段 ;和代碼段 第 4章 匯編語言程序設(shè)計 第 4章第 3頁共 256頁 START: MOV AX, DATA MOV DS, AX ;給數(shù)據(jù)段寄存器 DS賦值 MOV AL, BUF1 ;取第 1個加數(shù) ADD AL, BUF2 ;和第 2個加數(shù)相加 MOV SUM, AL ;存放結(jié)果 MOV AH, 4CH INT 21H ;返回 DOS狀態(tài) CODE ENDS ;段定義結(jié)束 (CODE段 ) END START ;整個源程序結(jié)束 51 8 第 4章 匯編語言程序設(shè)計 第 4章第 4頁共 256頁 從上面這個例子可以看出,匯編語言源程序由若干條語句組成,語句分為如下兩類。 1) 指令語句 指令語句是由 8086/8088CPU提供的指令形成的語句,能完成一定的操作功能,能夠翻譯成機器代碼的語句。 第 4章 匯編語言程序設(shè)計 第 4章第 5頁共 256頁 2) 偽指令語句 偽指令語句也叫 指示性語句 ,它只是為匯編程序在翻譯匯編語言源程序時提供有關(guān)信息,并不翻譯成機器代碼。例如,程序中的語句: BUF1 DB 34H BUF2 DB 2AH SUM DB ? 以上這些語句都是偽指令語句,其功能是在內(nèi)存中開辟 3個名字分別為 BUF BUF SUM的字節(jié)單元,前兩個單元的初值分別為 34H和 2AH, SUM僅指定一個字節(jié)單元,不定義確定的初值。 實際上,匯編語言源程序中還可出現(xiàn) 宏指令語句 。 宏指令語句就是由若干條指令語句形成的語句體 。一條宏指令語句的功能相當(dāng)于若干條指令語句的功能。 第 4章 匯編語言程序設(shè)計 第 4章第 6頁共 256頁 語句格式 指令語句和偽指令語句的格式是類似的,其格式如下: [名字 ] 指令助記符 操作數(shù) [;注釋 ] 其中,帶方括號的項可以省略,注釋內(nèi)容以分號 (; )引導(dǎo)。 1. 名字 1) 名字的標識符 名字也就是由用戶按一定規(guī)則定義的標識符,可由下列符號組成: (1) 英文字母 (A~ Z, a~ z); (2) 數(shù)字 (0~ 9); (3) 特殊符號 (? 、 @ 、 _等 )。 第 4章 匯編語言程序設(shè)計 第 4章第 7頁共 256頁 2) 名字的定義規(guī)則 名字的定義要滿足如下規(guī)則: (1) 數(shù)字不能作為名字的第一個符號; (2) 單獨的問號 (? )不能作為名字; (3) 一個名字的最大有效長度為 31位,超過 31位的部分計算機不再識別; (4) 匯編語言中有特定含義的保留字 (如操作碼、寄存器名等 ),不能作為名字使用。 為了便于記憶,名字的定義應(yīng)該做到見名知義,如用BUFFER表示緩沖區(qū)、 SUM表示累加和等。 第 4章 匯編語言程序設(shè)計 第 4章第 8頁共 256頁 3) 名字的兩種主要形式 名字有 標號 和 變量 兩種主要形式。 (1) 標號在代碼段中定義,后面跟著冒號 “ : ” , 標號 有三種屬性:段、偏移 及 類型 。 段屬性 :用于定義標號的程序段起始地址。當(dāng)程序中引用一個標號時,該標號的段地址則總是在 CS寄存器中。 偏移屬性 :標號的偏移地址是從段起始地址到定義標號的位置之間的字節(jié)數(shù)。為 16位無符號數(shù); 類型屬性 :用來指出該標號是在本段內(nèi)引用還是在其他段中引用的。如在段內(nèi)引用,則稱為 NEAR屬性 , 如在段外引用,則稱為 FAR。 第 4章 匯編語言程序設(shè)計 第 4章第 9頁共 256頁 (2) 變量在數(shù)據(jù)段、附加數(shù)據(jù)段或堆棧段中定義,后面不跟冒號 。它也可以用 LABEL或 EQU偽操作來定義。變量經(jīng)常在操作數(shù)字段出現(xiàn),它也有 段、偏移 及 類型 三種屬性。 段屬性 :用于定義變量所在段的段起始地址。此值必須在一個段寄存器中(如 DS或 ES中)。 偏移屬性 :變量的偏移地址是從段的起始地址到定義變量的位置之間的字節(jié)數(shù)。為 16位無符號數(shù)。 第 4章 匯編語言程序設(shè)計 第 4章第 10頁共 256頁 類型屬性 :變量的類型屬性定義該變量所占的字節(jié)數(shù)。如BYTE(DB, 1個字節(jié)長 )、 WORD(DW, 2個字節(jié)長 )、DWORD(DD, 4個字節(jié)長 )、 FWORD(DF, 6個字節(jié)長 )、QWORD(DQ, 8個字節(jié)長 )、 TBYTE(DT, 10個字節(jié)長 )。 在同一個程序中,同樣的標號或變量的定義只允許出現(xiàn)一次,否則匯編程序會指示出錯。 第 4章 匯編語言程序設(shè)計 第 4章第 11頁共 256頁 2. 指令助記符 指令助記符用來指明不同的操作指令。如 MOV、 ADD等都是指令助記符。 3. 操作數(shù) 指令中的操作數(shù)是用來指定參與操作的數(shù)據(jù) 。對于一般指令,可以有一個或兩個操作數(shù),也可以沒有操作數(shù);對于偽指令和宏指令,可以有多個操作數(shù)。當(dāng)操作數(shù)多于一個時,操作數(shù)之間用逗號分開。操作數(shù)可以是常數(shù)和表達式。 第 4章 匯編語言程序設(shè)計 第 4章第 12頁共 256頁 1) 常數(shù) (1) 數(shù)值常數(shù) 。匯編語言中的數(shù)值常數(shù)可以是二進制、八進制、十進制或十六進制數(shù),書寫時用加后綴 (二進制用 B、八進制用 O或 Q、 十進制用 D、 十六進制用 H)的方式標明即可。對于十進制數(shù)可以省掉后綴, 對于十六進制數(shù),當(dāng)以 A~ F開頭時,前面加數(shù)字 0,以避免和名字混淆 ,如十六進制數(shù) A6H應(yīng)該寫成 0A6H,否則容易和名字 A6H相混。 第 4章 匯編語言程序設(shè)計 第 4章第 13頁共 256頁 (2) 字符串常數(shù) 。包含在單引號中的若干個字符形成字符串常數(shù),字符串在計算機中存儲的是相應(yīng)字符的 ASCII碼。如 ‘ A?的值是 41H,‘ AB?的值是 4142H等。 (3) 符號常數(shù) 。常數(shù)用符號名來代替就是符號常數(shù)。如用COUNT EQU 3或 COUNT=3定義后, COUNT就是一個符號常數(shù),與數(shù)值常數(shù) 3等價。 第 4章 匯編語言程序設(shè)計 第 4章第 14頁共 256頁 2) 表達式 由運算對象和運算符組成的合法式子就是表達式 ,分為 數(shù)值表達式 和 地址表達式 兩種。數(shù)值表達式的運算結(jié)果是一個數(shù),地址表達式的運算結(jié)果是一個存儲單元的地址。 (1) 算術(shù)運算符 有+ (加 )、 (減 )、 *(乘 )、 /(除 )、MOD(取余 )。 算術(shù)運算符可以用于數(shù)值表達式和地址表達式中,用于計算數(shù)據(jù)或地址的結(jié)果: 下面的兩條指令是正確的。 MOV AL, 4*8+5 ;數(shù)值表達式 MOV SI, OFFSET BUF+12 ;地址表達式 第 4章 匯編語言程序設(shè)計 第 4章第 15頁共 256頁 (2) 邏輯運算符 有 AND(與 )、 OR(或 )、 XOR(異或 )、NOT(非 )。 邏輯運算符只能用于數(shù)值表達式中,不能用于地址表達式中 。邏輯運算符和邏輯運算指令是有區(qū)別的。 邏輯運算符的功能在匯編階段完成,邏輯運算指令的功能在程序執(zhí)行階段完成。 在匯編階段,指令 AND AL, 78H AND 0FH等價于指令A(yù)ND AL, 08H。 第 4章 匯編語言程序設(shè)計 第 4章第 16頁共 256頁 (3) 關(guān)系運算符 有 EQ(相等 )、 LT(小于 )、 LE(小于等于 )、GT(大于 )、 GE(大于等于 )、 NE(不等于 )。 關(guān)系運算符要有兩個運算對象,兩個運算對象要么都是數(shù)值,要么都是同一個段內(nèi)的地址。 運算結(jié)果為真時,表示為0FFFFH;運算結(jié)果為假時,表示為 0000H。 指令 MOV BX, 32 EQ 45 等價于 MOV BX, 0; 指令 MOV BX, 56 GT 30 等價于 MOV BX, 0FFFFH。 第 4章 匯編語言程序設(shè)計 第 4章第 17頁共 256頁 匯編語言的運算符 分析運算符 分析運算符的運算對象是存儲器操作數(shù) , 即由變量名或標號形成的地址表達式 , 運算結(jié)果是一個數(shù)值 。 運算符的格式為: 運算符 地址表達式 分析運算符包括: OFFSET、 SEG、 TYPE、 SIZE和 LENGTH等 ,合成運算符有 PTR、 THIS、 SHORT等 。 ① SEG: 利用 SEG操作符可以得到一個標號或變量的段值 例: MOV AX , SEG BUFF ② OFFSET: 利用 OFFSET可以得到一個標號或變量的偏移地址 例: MOV BX , OFFSET BUFF; ( LEA BX, BUFF) 第 4章 匯編語言程序設(shè)計 第 4章第 18頁共 256頁 ③ TYPE:運算符 TYPE的運算結(jié)果是一個數(shù)值 , 這個數(shù)值與存儲器操作數(shù)類型屬性的對應(yīng)關(guān)系如下: 對于變量有 3種: 1 字節(jié)型; 2 字型; 4 雙字型 。 對于標號有 2種: - 1 NEAR( 段內(nèi) ) , - 2 FAR( 段間 ) 。 例: BUFF DB 20H MOV BX , TYPE BUFF ? MOV BX, 01 第 4章 匯編語言程序設(shè)計 第 4章第 19頁共 256頁 ④ LENGTH操作符: LENGTH運算符得到這個變量的個數(shù)。如果未用 DUP說明,得到的結(jié)果為 1。 ⑤ SIZE操作符: 如果一個變量已經(jīng)用 DUP說明,則利用SIZE運算符可以得到分配給該變量的字節(jié)總數(shù),如果未用 DUP說明,則結(jié)果是 TYPE運算的結(jié)果。即: SIZE= TYPE LENGTH 例: BUFF DW 10 DUP(?) MOV CX, LENGTH BUFF ? MOV CX, 10 MOV CX, SIZE BUF ? MOV CX, 20 第 4章 匯編語言程序設(shè)計 第 4章第 20頁共 256頁 ( 1) PTR運算符 :功能是對已分配的存儲器地址臨時賦予另一種類型屬性,但不改變操作數(shù)本身的類型屬性 格式: 類型 PTR 表達式 利用 PTR運算符還可以建立一個新的存儲器操作數(shù) , 它與原來的同名操作數(shù)具有相同的段和偏移量 , 但可以有不同的類型 , 不過這個新類型僅在當(dāng)前語句有效 。 如: STUFF DD ? …… MOV BX, WORD PTR STUFF 指令: MOV BX, STUFF 是否正確?為什么?
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1