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

正文內(nèi)容

[工學(xué)]第5章匯編語(yǔ)言與程序設(shè)計(jì)(編輯修改稿)

2025-02-15 12:00 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 式 :ASSUME 段寄存器名 :段名 [,段寄存器名 :段名 ,? ] 程序開(kāi)始和結(jié)束偽指令 ? 1.源程序開(kāi)始偽指令 ? ( 1) NAME偽指令 ? ( 2) TITLE偽指令 ? 2.源程序結(jié)束偽指令 格式: END [ 地址表達(dá)式 ] 功能:該語(yǔ)句為源程序的最后一個(gè)語(yǔ)句,用以標(biāo) 志整個(gè)程序的結(jié)束,即告訴匯編程序匯編工作到 此結(jié)束。 過(guò)程定義偽指令 ? 在程序設(shè)計(jì)中,經(jīng)常將一些重復(fù)出現(xiàn)的語(yǔ)句組定義為子程序。子程序又稱為過(guò)程,可以采用 CALL指令來(lái)調(diào)用。 ? 使用格式: ? 過(guò)程名 PROC [NEAR]/FAR ? ? (語(yǔ)句系列) ? RET ? ? (語(yǔ)句系列) ? 過(guò)程名 ENDP ? 調(diào)用一個(gè)過(guò)程的格式為: ? CALL 過(guò)程名 宏指令 ? 在編寫匯編語(yǔ)言程序的過(guò)程中,有時(shí)某個(gè)程序段要出現(xiàn)許多次,有時(shí)只是參數(shù)不同,但功能完全一樣,則這樣的程序段可以定義成一個(gè)指令,并且稱它為宏指令。 ? 宏定義由一對(duì)宏匯編偽指令 MACRO / ENDM來(lái)完成: ? 宏名 MACRO [形參表 ] ? 宏定義體 ? ENDM ? ( 1)宏調(diào)用 ? 在匯編語(yǔ)言中使用已定義過(guò)的宏指令,稱為宏調(diào)用。按照宏指令定義的格式,宏調(diào)用也可分為兩種格式。 ? ①無(wú)參數(shù)宏調(diào)用:宏指令名 ? ②帶參數(shù)宏調(diào)用:宏指令名 實(shí)參 1,實(shí)參2, … 宏展開(kāi) ? 當(dāng)宏匯編程序掃描到宏指令語(yǔ)句 (即宏調(diào)用 )時(shí),宏匯編程序就把宏指令定義中宏體的程序段代碼替代宏指令語(yǔ)句。若是帶參數(shù)的宏調(diào)用,則同時(shí)用相應(yīng)的實(shí)參替代宏體中對(duì)應(yīng)形參的位置,并對(duì)原有宏體代碼作修改。下面是一個(gè)源程序的列表文件,它展示了宏定義、宏調(diào)用和宏展開(kāi)的全部過(guò)程。 ? amp。— 替換操作符,用于將參數(shù)與其他字符分開(kāi)。如果參數(shù)緊接在其他字符之前或之后,或者參數(shù)出現(xiàn)在帶引號(hào)的字符串中,就必須使用該偽操作符。 ? — 字符串傳遞操作符,用于括起字符串。在宏調(diào)用中,如果傳遞的字符串實(shí)參數(shù)含有逗號(hào)、空格等間隔符號(hào),則必須用這對(duì)操作符,以保證字符串的完整。 常用宏操作符 ? !— 轉(zhuǎn)義操作符,用于指示其后的一個(gè)字符作為一般字符,而不含特殊意義。 ? %— 表達(dá)式操作符,用在宏調(diào)用中,表示將后跟的一個(gè)表達(dá)式的值作為實(shí)參,而不是將表達(dá)式本身作為參數(shù)。 ? ?!?宏注釋符,用于表示在宏定義中的注釋。采用這個(gè)符號(hào)的注釋,在宏展開(kāi)時(shí)不出現(xiàn)。 ? 宏的參數(shù)功能強(qiáng)大,即可以無(wú)參數(shù),又可以帶有一個(gè)或多個(gè)參數(shù);而且參數(shù)的形式非常靈活,可以是常數(shù)、變量、存儲(chǔ)單元、指令(操作碼)或它們的一部分,也可以是表達(dá)式。 ? ( 1) MACRO和 ENDM ? 在前面的宏指令的定義中已經(jīng)介紹過(guò),這是宏操作時(shí)必不可少的指令,而且成對(duì)出現(xiàn)。 ? ( 2) PURGE PURGE的功能是取消多個(gè)宏定義,即一個(gè)宏指令定義可以用偽指令 PURGE來(lái)取消,然后就再重新定義。 格式: PURGE 宏指令名 1 ,宏指令名 2…… 取消宏定義的含義是使該宏定義成為空,程序中如果出現(xiàn)一個(gè)已被 取消宏定義的宏調(diào) 用,則匯編程序?qū)⒉粫?huì)指示出錯(cuò),但它將忽略該宏調(diào)用,當(dāng)然也不會(huì)予以展開(kāi)。 匯編語(yǔ)言程序設(shè)計(jì)技術(shù) ? 在匯編語(yǔ)言程序設(shè)計(jì)中,程序有順序、分支、循環(huán)和子程序四種基本結(jié)構(gòu)形式。 源程序設(shè)計(jì)步驟 ? ( )建立ASM源文件(文件名. ASM)。 ( )對(duì)源文件進(jìn)行匯編,如有錯(cuò)誤,再回到第 1步進(jìn)行修改,直到無(wú)語(yǔ)法錯(cuò)誤,產(chǎn)生目標(biāo)文件(文件名. OBJ)。 ( )把目標(biāo)文件轉(zhuǎn)換為可執(zhí)行文件(文件名. EXE)。 ( )對(duì)可執(zhí)行文件進(jìn)行調(diào)試,如發(fā)現(xiàn)錯(cuò)誤,再進(jìn)行第 14步驟,對(duì)源程序進(jìn)行修改、匯編、連接和調(diào)試,直到無(wú)錯(cuò)誤為止。此時(shí)的可執(zhí)行文件在 DOS命令下可直接執(zhí)行。 順序程序設(shè)計(jì) ? 順序程序設(shè)計(jì)也稱為簡(jiǎn)單程序設(shè)計(jì),這種結(jié)構(gòu)的程序不使用分支、循環(huán)結(jié)構(gòu),程序本身的邏輯非常簡(jiǎn)單,所以只能完成一些簡(jiǎn)單操作。其特點(diǎn)是程序順序執(zhí)行,由前向后逐條執(zhí)行指令。 分支程序設(shè)計(jì) ? 分支程序結(jié)構(gòu)有兩種形式:二分支程序結(jié)構(gòu)和多分支程序結(jié)構(gòu) 。 程序的分支一般是通過(guò)執(zhí)行轉(zhuǎn)移指令來(lái)實(shí)現(xiàn)的。 循環(huán)程序設(shè)計(jì) ? 當(dāng)需要重復(fù)執(zhí)行某段程序時(shí),就可以利用循環(huán)程序結(jié)構(gòu)。循環(huán)結(jié)構(gòu)一般是根據(jù)某一條件判斷為真或假來(lái)確定是否重復(fù)執(zhí)行循環(huán)體,條件永真或無(wú)條件的重復(fù)循環(huán)就是邏輯上的死循環(huán)(永真循環(huán)、無(wú)條件循環(huán))。循環(huán)程序結(jié)構(gòu)是滿足一定條件的情況下,重復(fù)執(zhí)行某段程序。 ? ? 一個(gè)循環(huán)程序通常由以下 5個(gè)部分組成: ? ( 1)初始化部分 ? ( 2)工作部分 ? ( 3)修改部分 ? ( 4)控制部分 ? ( 5)結(jié)束處理部分 子程序設(shè)計(jì) ? 把功能相對(duì)獨(dú)立的程序段單獨(dú)編寫和調(diào)試,作為一個(gè)相對(duì)獨(dú)立的模塊供程序使用,就形成子程序。子程序可以實(shí)現(xiàn)源程序的模塊化,可簡(jiǎn)化源程序結(jié)構(gòu),可以提高編程效率。主程序(調(diào)用程序)需要利用 CALL指令調(diào)用子程序(被調(diào)用程序)。子程序需要利用 RET指令返回主程序。 系統(tǒng)功能調(diào)用 ? 匯編程序提供給匯編語(yǔ)言程序員的功能非常有限,程序員需要利用 ROMBIOS和操作系統(tǒng)提供的資源,系統(tǒng)功能調(diào)用是程序設(shè)計(jì)的一個(gè)重要方面。 ? 通常按照如下 4個(gè)步驟進(jìn)行: ? ⑴在 AH寄存器中設(shè)置系統(tǒng)功能調(diào)用號(hào)。 ? ⑵在指定寄存器中設(shè)置入口參數(shù)。 ? ⑶用中斷調(diào)用指令( INT i8)執(zhí)行功能調(diào)用。 ? ⑷根據(jù)出口參數(shù)分析功能調(diào)用執(zhí)行情況。 匯編語(yǔ)言程序的開(kāi)發(fā) ? ? 一般匯編語(yǔ)言的上機(jī)過(guò)程是首先用某一個(gè)文本編輯器形成一個(gè)以 ASM為擴(kuò)展名的源程序文件,然后用匯編程序翻譯源程序,將 ASM文件轉(zhuǎn)換為 OBJ模塊文件,最后用連接程序?qū)⒁粋€(gè)或多個(gè)目標(biāo)文件鏈接成一個(gè)可執(zhí)行文件。 ? ? 源程序文件的形成(編輯)可以通過(guò)任何一個(gè)文本編輯器實(shí)現(xiàn)。 例如, DOS中的全屏幕文本編輯器 EDIT,或讀者已經(jīng)熟悉的其他程序開(kāi)發(fā)工具中的編輯環(huán)境(象 Turbo C),也可以采用 Windows的記事本 。注意源程序文件要以 ASM為擴(kuò)展名。 匯編語(yǔ)言程序的開(kāi)發(fā) ? 3. 源程序的匯編 ? 匯編是將源程序翻譯成由機(jī)器代碼組成的目標(biāo)模塊文件的過(guò)程。 MASM 。進(jìn)入已建立的程序所在目錄,鍵入如下命令及相應(yīng)參數(shù)即可以完成源程序的匯編: ML /c 。如果源程序中沒(méi)有語(yǔ)法錯(cuò)誤,MASM將自動(dòng)生成一個(gè)目標(biāo)模塊文件( ),否則 MASM將給出相應(yīng)的錯(cuò)誤信息。這時(shí)應(yīng)根據(jù)錯(cuò)誤信息,重新編輯修改源程序后,再進(jìn)行匯編。注意,僅利用 ML實(shí)現(xiàn)源程序的匯編,參數(shù) /c(小寫字母 c)是必須有的;否則,ML將自動(dòng)調(diào)用連接程序 。 匯編語(yǔ)言程序的開(kāi)發(fā) ? ? 連接程序能把一個(gè)或多個(gè)目標(biāo)文件和庫(kù)文件合成一個(gè)可執(zhí)行文( .EXE、 .COM文件)。在程序目錄下有了 文件,鍵入如下命令實(shí)現(xiàn)目標(biāo)文件的連接: LINK , LINK連接程序?qū)⑻崾据斎隣BJ文件名,它還會(huì)提示生成的可執(zhí)行文件名以及列表文件名,一般采用缺省文件名就可以。如果沒(méi)有嚴(yán)重錯(cuò)誤,LINK將生成一個(gè)可執(zhí)行文件( );否則將提示相應(yīng)的錯(cuò)誤信息,這時(shí)需要根據(jù)錯(cuò)誤信息重新修改源程序后再匯編、鏈接,直到生成可執(zhí)行文件。 ? ML匯編程序可以自動(dòng)調(diào)用 LINK連接程序,實(shí)現(xiàn)匯編和連接的依次進(jìn)行。 ML匯編程序還可以生成列表文件和影像文件。 匯編語(yǔ)言程序的開(kāi)發(fā) ? ? 經(jīng)匯編、連接生成的可執(zhí)行程序在操作系統(tǒng)下只要輸入文件名就可以運(yùn)行。 ? 操作系統(tǒng)裝載該文件進(jìn)入主存,開(kāi)始運(yùn)行。如果出現(xiàn)運(yùn)行錯(cuò)誤,可以從源程序開(kāi)始排錯(cuò),也可以利用調(diào)試程序幫助發(fā)現(xiàn)錯(cuò)誤。利用調(diào)試程序可以觀察寄存器值、數(shù)據(jù)所在的 匯編與 C/C++接口 ? C++功能強(qiáng)大,產(chǎn)生的代碼效率高,是目前最流行的編程語(yǔ)言之一。但是效率最高的語(yǔ)言不是 C/C++,而是匯編語(yǔ)言。只不過(guò) C/C++比起匯編語(yǔ)言來(lái)易移植,容易學(xué)習(xí);匯編語(yǔ)言比 C/C++功能更強(qiáng)大,冗余更少。因此,許多 軟件 可以兼顧二者的優(yōu)點(diǎn),用 C/C++和匯編語(yǔ)言混合編程?;旌暇幊讨饕鉀Q的問(wèn)題是二者的接口和參數(shù)傳遞,參數(shù)傳遞包括值傳遞、指針傳遞、引用傳遞等。 C/C++程序中內(nèi)嵌匯編 ? 1. 嵌入?yún)R編語(yǔ)句的格
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1