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

正文內(nèi)容

[工學(xué)]匯編語言語法介紹(留存版)

2024-12-03 00:07上一頁面

下一頁面
  

【正文】 指令 , 可以不是 RET指令 , 但必須是一條轉(zhuǎn)移回到過程中某處的轉(zhuǎn)移指令 。 在這種情況下 , 如果某個(gè)十六進(jìn)制數(shù)的末字符為 D, 則應(yīng)在其后跟字母 H, 以免與十進(jìn)制數(shù)發(fā)生混淆 。 過程定義語句 PROC和 ENDP限定了一個(gè)過程且指出它是一個(gè) NEAR或 FAR過程 。 ? 對于單一模塊的程序 , 堆棧段的組合類型選用 STACK(因?yàn)橹挥蠸TACK屬性才表示該段是堆棧段 ), 分類名選用 ’ STACK’。 定位類型 , 組合類型 , ’ 分類名 ’ 是段定義語句的三個(gè)屬性參數(shù) ,可以選用一到三個(gè) , 也可以全部省略 。 舉例: K EQU l 024 ;給一常數(shù)起名 TABLE EQU DS:[BP][S1] ;給一地址組合起名 SPEED EQU RATE ;給 RATE起另一個(gè)名 COUNT EQU CX ;給一寄存器起名 CBD EQU AAD ;給一指令助記符起名 作為一個(gè)表達(dá)式 , 操作數(shù)也可包含一些簡單的算式 , 匯編器會計(jì)算它們 , 如: DBL_SPEED EQU 2*SPEED MINS_PER_DAY EQU 60*24 2) 等號 (Equal sign) = 語句 功能: 此語句的功能與 EQU語句類似 , 不同點(diǎn)是: 1. 可以重新定義用 = 定義過的符號 , 而用 EQU定義的符號是永久的 。 W_ARRAY DW l00 DUP(? ) B_ARRAY DB 200 DUP(? ) ADD AL, BYTE PTR W_ARRAY[101] ;將第 50個(gè)字的低字節(jié)加到 AL上 ADD DX, WORD PTR B_ARRAY [20] ;將第 21字節(jié)上的字加到 DX上 ? 在段的給定偏移量位置上建立一個(gè)匿名變量: MOV AL, DS: BYTE PTR 5 ;將 DS段的字節(jié) 5傳送到 AL ? 超越變量或標(biāo)號的類型屬性: MOV CL, BYTE PTR AWORD ;得到字變量的第一個(gè)字節(jié) MOV DL, BYTE PTR AWORD+1 ;得到第二個(gè)字節(jié) MOV AL, BYTE PTR APROC+5 ;讀程序代碼的一個(gè)字節(jié) 常見的 PTR用法: 格式: SHORT label_exp label_exp是被匯編指令在同一段內(nèi)定義的標(biāo)號或標(biāo)號表達(dá)式。 ? 屬性運(yùn)算符用于重新指定標(biāo)號或變量的屬性。偏移量的值是 16位,在大多數(shù)情況下,返回的值到鏈接時(shí)才設(shè)置。 3) 關(guān)系運(yùn)算符 ? 關(guān)系運(yùn)算符有 EQ(相等)、 NE(不等 )、 LT(小于 )、 GT(大于 )、 LE(小于或等于 )、 GE(大于或等于 )6種。 根據(jù)以上規(guī)定,下列地址表達(dá)式均是非法的: [BX+BP], [SI+DI], [BX+CX], [50SI],…… 。該位置根據(jù)其表達(dá)式的類型可以是一個(gè)變量,也可以是一個(gè)標(biāo)號。 ④ 不能使用保留字。如: COUNT EQU 16 PORT = 3F8H + 1 …… MOV CX, COUNT ; CX= 16 MOV DX, PORT ; DX= 3F9H 使用符號常量與直接使用數(shù)字常量和字符串常量相比更具有通用性和更便于修改,有利于程序調(diào)試,也增加了程序的可讀性。所以,凡是以字母 A— F開始的十六進(jìn)制數(shù),必須在前面加上數(shù)字 0。 ② 偽指令:說明該行的操作任務(wù)。源程序的一般格式為 NAMEl SEGMENT 語句 . . . NAMEl ENDS NAME2 SEGMENT 語句 . . . NAME2 ENDS END <程序起始地址標(biāo)號> 每個(gè)段有一個(gè)名字,以 SEGMENT語句作為段的開始,以 ENDS語句作為段的結(jié)束。這類錯(cuò)誤只能靠程序員憑借調(diào)試器對可執(zhí)行程序進(jìn)行耐心細(xì)致的跟蹤調(diào)試,才能逐一排除。 它由程序員通過文本編輯器來完成。 DOS下常用的有 Edit、 PE2等。 典型的調(diào)試器有 DOS中的 Debug, Borland公司的 Turbo Debug,Microsoft 公司的 Code View。這兩者都必須有名字,而且名字必須相同。 ③ 操作數(shù):其個(gè)數(shù)和類型由偽指令決定。例如 56H, 0BA3FH等。 標(biāo)號和變量 1) 物理意義 標(biāo)號和變量都是由一串字符命名的符號,代表一條指令或一個(gè)數(shù)據(jù)的內(nèi)存單元地址,我們稱之為符號地址。 上述四條是標(biāo)號和變量命名的語法規(guī)則,是必須嚴(yán)格遵守的。 根據(jù)涉及的尋址方式的不同,地址表達(dá)式有以下幾種形式: ① 簡單地址表達(dá)式: 由一個(gè)變量名或標(biāo)號名及一個(gè)數(shù)值表達(dá)式構(gòu)成,返回與變量或標(biāo)號有同樣的段和類型的偏移量,在匯編時(shí)生成直接尋址指令。 ③ 數(shù)組地址表達(dá)式: 簡單地址表達(dá)式與寄存器地址表達(dá)式結(jié)合可以形成更復(fù)雜的數(shù)組地址表達(dá)式,數(shù)組名為變量名或標(biāo)號名,數(shù)組的下標(biāo)可以是常數(shù)、數(shù)值表達(dá)式或 BX、 BP、 SI、 DI寄存器中的內(nèi)容,其一般形式為: name[exp]。 ? 關(guān)系運(yùn)算的兩個(gè) 操作數(shù) 必須都是 數(shù)字 或是同一個(gè)段內(nèi)的兩個(gè)存儲器 地址 。即它是可再定位的數(shù)。 格式: CS: varlab DS: varlab SS: varlab ES: varlab varlab:是變量名、標(biāo)號名或地址表達(dá)式。 說明: SHORT運(yùn)算符指定由 JMP或條件跳轉(zhuǎn)所引用的標(biāo)號是在指令結(jié)尾的+127到 128字節(jié)范圍之內(nèi)。 2. EQU可用于文本中或數(shù)字表達(dá)式中 , 而 = 只可用于數(shù)字表達(dá)式中 。 定位類型 (align_type) 定位類型參數(shù)通知鏈接程序 , 邏輯段的目標(biāo)代碼在存儲器中如何存放 。 ? 其它的邏輯段 , 三個(gè)屬性參數(shù)都選用缺省方式 。 這在兩方面幫助了匯編程序:首先 , 當(dāng)匯編到 CALL時(shí)知道是什么樣的調(diào)用;其次 ,當(dāng)匯編到 RET時(shí)知道是什么樣的返回 。 2) 模塊命名 語句 功能: 在程序的開始可以用 NAME或 TITLE為模塊取名字 格式: NAME module_name 匯編程序?qū)⒁越o出的 module_name作為模塊的名字 TITLE text TITLE語句可指定每一頁上打印的標(biāo)題 。 ? 在一個(gè)過程中可以有多于一個(gè)的 RET指令 。 2) ASSUME語句 功能: 匯編器在把源程序轉(zhuǎn)換為目標(biāo)程序時(shí) , 必須明確邏輯段段和段寄存器的關(guān)系 , 這可用 ASSUME語句來實(shí)現(xiàn) 。 缺省定位類型參數(shù)為 PARA。 若要重新定義可以用 PURGE語句來解除 , 用 PURGE語句解除后的符號可以重新定義 格式: PURGE 符號 1, 符號 2, … , 符號 n 應(yīng)用: 用 PURGE語句解除后的符號可以重新定義 舉例: PURGE NEW_VAL NEW_PORT EQU PORT_VAL+10 2. 數(shù)據(jù)定義語句 功能: 分配內(nèi)存并設(shè)置初值 格式: [變量 ] 數(shù)據(jù)定義偽指令 操作數(shù) , … , 操作數(shù) [;注釋 ] 其中: 變量 (Variable)字段是可有可無的 , 它用符號地址表示 , 其作用與指令語句前的標(biāo)號相同 , 但它的后面不跟冒號 。 例 : JMP FWDLAB ;產(chǎn)生 3字節(jié)指令代碼 JMP SHORT FWDLAB ;只產(chǎn)生 2字節(jié)指令代碼 … FWDLAB: … ③ SHORT運(yùn)算符 格式: THIS type type 是 BYTE、 WORD、 DWORD、 NEAR或 FAR等類型符號。 段超越的一種用法是用段寄存器作為存儲器地址的段。 例如: MOV BX, OFFSET SUM 匯編器將 SUM的偏移地址作為立即數(shù)回送給指令,而在執(zhí)行時(shí)將該地址裝如 BX寄存器中。 ? 若關(guān)系是假,則結(jié)果為 0;若關(guān)系是真,則結(jié)果為 0FFFFH。 AL = 12 MOV AL, BUF[2*2] 。 ADD DX, COUNT ; COUNT 是簡單的地址表達(dá)式 ADD DX, COUNT+2 ;在這種情況下,地址表達(dá)式同 COUNT有同樣的段和類型 但偏移量大 2 ADD DX, COUNT[2] ;等價(jià)于 COUNT+2 ② 寄存器地址表達(dá)式: 由基址寄存器、變址寄存器及數(shù)值表達(dá)式構(gòu)成,它返回的不是操作數(shù)的有效地址偏移量,而是尋址方式的代碼,在匯編時(shí)可生成寄存器間址、變址、基址加變址等尋址方式的指令,操作數(shù)的有效地址在運(yùn)行時(shí)由CPU根據(jù)所用的寄存器內(nèi)容計(jì)算出來。如 TOTAL、 COUNT比 TTT、 CCC更容易理解。 變量代表內(nèi)存操作數(shù)的存儲地址,或者說變量名就代表某個(gè)內(nèi)存單元。 如: 39。一個(gè)語句行可以只由注釋構(gòu)成,稱為獨(dú)立注釋行。 匯編語言源程序的結(jié)構(gòu) 匯編語言語句的類型 指令語句 指令語句,就是 8086/8088的機(jī)器指令,它們告訴 CPU做什么。后兩種還具備源程序級調(diào)試等高級功能,使用起來更加得心應(yīng)手。 匯編器用于完成這步工作。 其具體功能包括以下幾方面: 1) 檢查源程序中的語法
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1