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

正文內(nèi)容

匯編語言入門第五章:匯編語言程序結(jié)構(gòu)(文件)

2025-10-13 18:22 上一頁面

下一頁面
 

【正文】 里, $十 6必須是另一條指令的首地址,否則,匯編程序指示出錯信息。 當(dāng)在指令中用到 $時(shí) , 它只代表該指令的首地址 , 而與 $本身所在的字節(jié)無關(guān) 。 格式如下: ? 操作數(shù)項(xiàng)由一個或多個表達(dá)式組成 , 它提供為執(zhí)行所要求的操作而需要的信息 。 一 名字項(xiàng) 源程序中用下列字符來表示名字 字母 A — Z 數(shù)字 0 — 9 專用字符 ?、 ( 3)可以用很多字符來說明名字,但只有前面的 31個字符能被匯編程序所識別。標(biāo)號 :標(biāo)號在代碼段中定義 , 后面跟冒號: , 它也可以用 LABEL或 EQU偽操作來定義 。 段屬性: 定義標(biāo)號的段起始地址 , 此值必須在一個段寄存器中 。如在段內(nèi)引用的,則稱為 NEAR,指針長度為 2字節(jié):如在段外引用,則稱為 FAR,指針長度為 4字節(jié)。變量經(jīng)常在操作數(shù)字段出現(xiàn)。 在當(dāng)前段內(nèi)給出變量的偏移值等于當(dāng)前地址計(jì)數(shù)器的值 ,當(dāng)前地址計(jì)數(shù)器的值可以用 $來表示 。 二、操作項(xiàng) 操作項(xiàng)可以是指令、偽操作或宏指令的助記符。這在以后中將專門論述。 操作數(shù)項(xiàng)可以是常數(shù)、寄存器、標(biāo)號、變量或由表達(dá)式組成。其中 MOD是指除法運(yùn)算后得到的余數(shù),如 19/ 7的商是 2,而 19 MOD 7則為 5(余數(shù) ) 算術(shù)操作符可以用于數(shù)字表達(dá)式或地址表達(dá)式中,但當(dāng)它用于地址表達(dá)式時(shí),只有當(dāng)其結(jié)果有明確的物理意義時(shí)其結(jié)果才是有效的。邏輯操作符是按位操作的,它只能用于數(shù)字表達(dá)式中。計(jì)算的結(jié)果應(yīng)為邏輯值:結(jié)果為真,表示為 0FFFFH,結(jié)果為假,則表示為 0。 如果是標(biāo)號 ,則匯編程序?qū)⒒厮痛碓摌?biāo)號類型的數(shù)值: NEAR為 1, FAR為 2。但是,此值是 LENGTH值和 TYPE值的乘積 。實(shí)際上由于段地址是由連接程序分配的,所以該立即數(shù)是連接時(shí)插入的。 格式中的類型字段表示所賦予的新的類型屬性,而表達(dá)式字段則是被取代類型的符號地址。例如,用段前綴指定某段的地操作數(shù) MOV AX, ES: [BX+SI] 格式 段寄存器:地址表達(dá)式 * SHORT: 用來修飾 JMP指令中轉(zhuǎn)向地址的屬性,指出轉(zhuǎn)向地址是在下一條指令地址的 177。 例如: 此時(shí) FIRST_BYTE的偏移地址值和 WORD_TABLE完全相同,但它是字節(jié)類型的,而 WORD_TABLE則是字類型的。 第一章 基礎(chǔ)知識 第五章 匯編語言程序結(jié)構(gòu) 例如: 我們知道表達(dá)式是常數(shù)、寄存器、標(biāo)號、變量和操作符的組合,在計(jì)算表達(dá)式值時(shí),應(yīng)該首先計(jì)算優(yōu)先級高的操作符,然后從左到右地對優(yōu)先級相同的操作符進(jìn)行計(jì)算。 根據(jù)上面介紹的內(nèi)容,這里給出一個匯編完整的例子來說明匯編語言的編程框架和結(jié)構(gòu)。 db 0dh,0ah,39。 data ends ;定義數(shù)據(jù)段,數(shù)據(jù)段給出提示內(nèi)容。 第一章 基礎(chǔ)知識 第五章 匯編語言程序結(jié)構(gòu) stack segment stack db 50 dup(?) stack ends ;定義堆棧段。調(diào)用 21H中斷(也是 DOS功能調(diào)用)的 9號功能,該功能是 ;顯示字符串,其中 DS: DX為字符串地址,‘ $’為字符串結(jié)束標(biāo)志。 如果在主程序開始時(shí)沒有用上面三條指令在堆棧中建立返回信息 , 則在程序結(jié)束時(shí)效不能直接用 RET返回指令 , 而應(yīng)該使用編號為 4c的功能調(diào)用返回 DOD。 db 0dh,0ah,39。 data ends stack segment stack db 50 dup(?) stack ends code segment assume cs:code,ds:data,ss:stack main proc far start: push ds xor ax,ax 第一章 基礎(chǔ)知識 第五章 匯編語言程序結(jié)構(gòu) push ax mov ax,data mov ds,ax mov ax,stack mov ss,ax mov dx,offset message mov ah,9 int 21h again: mov ah,1 int 21h cmp al,1bh je exit cmp al,61h 第一章 基礎(chǔ)知識 第五章 匯編語言程序結(jié)構(gòu) jc nd cmp al,7ah ja nd 。A39。 用 INT 21H 4C號功能返回系統(tǒng)的方法 。 若匯編時(shí)提示有錯 ,用文字編輯工具修改源程序后重新匯編 ,直至通過 。 EXE文件。省去 ,會產(chǎn)生什么現(xiàn)象 ? 。 思考 : 若在源程序中把 INT 21H的 39。 用 LINK將 .OBJ文件連接成可執(zhí)行的 .EXE文件 。 將字符串 ‘’ This is a program ’用十六進(jìn)制顯示出來 將寄存器 BX中的數(shù)據(jù)以 ASC碼的形式顯示 實(shí)驗(yàn)步驟 : 用用文字編輯工具 ( 記事本或 EDIT) 將源程序輸入 ,其擴(kuò)展名為 .ASM。 偽指令 : SEGMENT,ENDS,ASSUME,END,OFFSET,DUP。a39。,0dh,0ah,39。 第一章 基礎(chǔ)知識 第五章 匯編語言程序結(jié)構(gòu) data segment message db 39。 Sub al,’ a’-’ A’也一樣 nd: mov dl,al;將字符傳入到 dl寄存器中 mov ah,2 int 21h;調(diào)用 21中斷的功能 2,將 dl寄存器的字符輸出 jmp again;循環(huán)執(zhí)行,直到按下 ESC鍵退出 exit: mov ah,4ch int 21h;調(diào)用 21中斷的 4ch功能,返回 dos code ends;代碼段結(jié)束 end start;結(jié)束匯編,程序結(jié)束 如果將主程序建立為過程 , 由 DOS調(diào)用該過程 。如果不加這個,將單獨(dú)對本程序建立堆棧。字符‘ $’表示字符串的結(jié)束標(biāo)志。,0dh,0ah,39。 data segment message db 39。 下面給出操作符的優(yōu)先級別 (其中有些操作符我們并未提到過,需要時(shí)可從手冊中查到 ),從高到低排列如下: 第一章 基礎(chǔ)知識 第五章 匯編語言程序結(jié)構(gòu) (六 )注釋 注釋項(xiàng)用來說明一段程序或一條或幾條指令的功能,它是可有可無的。 * HIGH和 LOW 稱為字節(jié)分離操作符字節(jié)。 第一章 基礎(chǔ)知識 第五章 匯編語言程序結(jié)構(gòu) * THIS: 格式為: THIS attribute 或 type 它可以象 PTR一樣建立一個指定類型 (BYTE、 WORD或 DWORD)的或指定距離 (NEAR或 FAR)的地址操作數(shù) 。 第一章 基礎(chǔ)知識 第五章 匯編語言程序結(jié)構(gòu) 類型可有 BYTE、 WORD、 DWORD、 NEAR和 PAR幾種,所以 PTR也可以用來建立字、雙字或段內(nèi)及段間的指令單元。 (五 )屬性操作數(shù) 符 有 PTR、段操作符、 SHORT、 THIS、 HIGH和 LOW 6種。與 LEA 具有相同功能。而對于其他情況則回送 1。這些操作符把一些特征或存儲器地址的一部分作為數(shù)值回送。 (三 )關(guān)系操作符 它有 EQ(相等 )、 NE(不等 )、 LT(小于 )、 GT(大于 )、 LE(小于或等于 )、 GE(大于或等于 )6種。 第一章 基礎(chǔ)知識 第五章 匯編語言程序結(jié)構(gòu) 例 : 如要求把首地址為 BLOCK的字?jǐn)?shù)組的第 6個字傳送到 DX寄存器 , 可用指令 M0V DX, BLOCK十 (6 1)*2 例: 如數(shù)組 ARRAY定義 , 如下試寫出把數(shù)組長度 (字?jǐn)?shù) )存入 CX寄存器的指令 。在匯編期間,匯編程序按照一定的優(yōu)先規(guī)則對表達(dá)式進(jìn)行計(jì)算后可得到一個數(shù)值或一個地址。對于指令,操作數(shù)項(xiàng)一般給出操作數(shù)地址,它們可能有一個或二個或一個也沒有。對于偽操作.匯編程序?qū)⒏鶕?jù)其所要求的功能進(jìn)行處理。 如 BYTE(1個字節(jié)長 )、WORD(2個字節(jié)長 )、 DWORD(4個字節(jié)長 )、 DQ(8個字節(jié)長 )、 DT(10個字節(jié)長 ),這一點(diǎn)在數(shù)據(jù)定義偽操作中已作了說明 。 段屬性: 定義變量的段起始地址 , 此值必須在一個段寄存器中 。變量: 變量在除代碼段以外的其他段中定義,后面不跟冒號。 偏移屬性: 標(biāo)號的偏移地址是 16位無符號數(shù) , 它代表從段起始地址到定義標(biāo)號的位置之間的字節(jié)數(shù) 。 標(biāo)號經(jīng)常在轉(zhuǎn)移指令或 CALL指令的操作數(shù)字段出現(xiàn) , 用以表示轉(zhuǎn)向地址 。它們都用來表示本語句的符號地址,它是可有可無的,只有當(dāng)需要用符號地址來訪問該語句時(shí)它才需要出現(xiàn)。 ( 2) 名字中如果用到 為識別注釋項(xiàng)的開始。 第一章 基礎(chǔ)知識 第五章 匯編語言程序結(jié)構(gòu) 第三節(jié):匯編語言程序格式 匯編語言源程序中的每個語句可以由四項(xiàng)組成,格式如下: 其中: ? 名字項(xiàng)是 —個符號 。 如匯編時(shí) ARRAY分配的偏移地址為 0074H, 則匯編后的存儲區(qū)將如右圖所示 。 地址計(jì)數(shù)器的值可用 $來表示 , 匯編
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1