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

正文內(nèi)容

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

2025-02-15 12:00 本頁面
 

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