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

正文內(nèi)容

[工學]第5章匯編語言與程序設(shè)計(參考版)

2025-01-22 12:00本頁面
  

【正文】 精簡指令系統(tǒng) ? 為了增強處理器的功能,強化指令系統(tǒng):指令多、尋址方式復雜、格式變化,形成復雜指令集計算機 CISC(Complex Instruction Set Computer) ? 研究標明, CISC中最常用、最簡單、最基本的指令僅占指令總數(shù)的 20%,但在程序中出現(xiàn)的頻率卻占 80% ? “ 80%和 20%規(guī)律”產(chǎn)生了精簡 指令集計算機 RISC(Reduced Instruction Set Computer),特點是: ? 選取使用頻率最高的簡單指令,指令條數(shù)較少 ? 指令長度固定,指令格式種類少,尋址方式種類少 ? 只有取數(shù) /存數(shù)指令訪問存儲器,其余指令的操作都在寄存器之間進行(寄存器 寄存器 Load/Store類型結(jié)構(gòu)) ? 便于采用流水線等先進技術(shù)提高性能 指令的分類 ? 數(shù)據(jù)傳送指令 ? 實現(xiàn)主存與寄存器之間、寄存器與寄存器之間或立即數(shù)到寄存器和主存的數(shù)據(jù)傳送 ? 算術(shù)運算指令 ? 實現(xiàn)加、減、乘、除等運算的指令 ? 邏輯運算指令 ? 實現(xiàn)邏輯與、或、非、異或,以及移位等操作的指令 ? 程序控制轉(zhuǎn)移指令 ? 無條件轉(zhuǎn)移指令、有條件轉(zhuǎn)移指令、子程序調(diào)用和返回指令等 ? 輸入輸出指令 ? CPU與外設(shè)之間傳送數(shù)據(jù)的指令 基本指令系統(tǒng) 助記符 指令功能 LDA 取數(shù) STA 存數(shù) MOV 傳送 PUSH 進棧 POP 出棧 ADD 加法 SUB 減法 INC 加 1 助記符 指令功能 AND 邏輯與 OR 邏輯或 ROL 循環(huán)左移 ROR 循環(huán)右移 JMP 跳轉(zhuǎn) JSR 轉(zhuǎn)子程序 CLA 清 0 HLT 暫停 本章小結(jié) ? 本章首先介紹用匯編語言進行程序設(shè)計所需要了解的基本知識,簡述了 INTEL 8086 微處理器組成、匯編語言語句格式、 8086 的指令系統(tǒng)及尋址方式、 8086 匯編語言的數(shù)據(jù)、表達式和運算符,以及作為輔助匯編的命令 — 偽指令,然后,就程序設(shè)計的結(jié)構(gòu)論述了匯編語言的各種程序設(shè)計方法,舉例闡述匯編語言與 C/C++語言的混合編程。存儲器按字節(jié)編址,指令用直接、間接、變址、相對尋址方式。 例 ? 若機器字長 36位,采用三地址格式訪存指令,共完成 54種操作,操作數(shù)可以在 1K的地址范圍尋址,畫出指令格式。2100H:165H,找出當 直接、相對、變址、寄存器、間接,相對變址寄存器 ? 時的有效地址和操作數(shù)。1000H:256H。0100H:80H。即操作數(shù)不放在內(nèi)存中,而是放在通用寄存器中 ? 立即尋址 :指令的地址字段指出的不是操作數(shù)的地址,而直接是操作數(shù)本身 ? 直接尋址 :在指令格式的地址字段中,直接給出操作數(shù)在內(nèi)存的地址 ? 寄存器間接尋址 :指令中指定的寄存器中的內(nèi)容不是操作數(shù),而是操作數(shù)的地址 ? 基址 (寄存器相對 )尋址 :基址寄存器的內(nèi)容加上指令中給定的形式地址 (偏移量 ),形成操作數(shù)的有效地址 尋址方式總結(jié) 立即(數(shù))尋址 DATA=D 存儲器直接尋址 EA=D 間接尋址 變址尋址 EA=(R)+D 基址尋址 EA=(R)+D 基址加變址尋址 EA=(R)+ (R)+ D 在指令中 在寄存器中 在主存中 在 I/O端口中 直接尋址 寄存器間接尋址 寄存器尋址 DATA=(D) 寄存器間接尋址 EA=(R) 存儲器間接尋址 EA=(D) 例題 ? 指令格式有四部分組成, OP為操作碼, I為間接特征, X為尋址模式, D為形式地址,其中 R為變址寄存器。 [例 1] 分析指令格式的特點 1. 單字長二地址指令 2. 操作碼字段 OP長度為 7位,可指定 128條指令 3. 源寄存器和目標寄存器都是通用寄存器(可分別指定 16個)。 ( 1)方法一:固定格式,則最多可以設(shè)計 16條三地址指令 AC1 操作碼 OC AC3 AC2 指令字長與擴展方法 ( 2)方法二:擴展操作碼,具體方法如下: A、 4位 OC中用 00001110定義 15條三地址指令,留編碼 1111作為擴展標志與下一個 4位組成一個 8位操作碼,引出二地址指令,則: B、( a)若將 AC1全部用作 2地址指令的 OC,能再定義 16條 2地址指令; ( b) 8位 OC中用 1111000011111110定義 15條二地址指令,剩下的一個編碼 11111111與下一個 4位組成一個 12位的操作碼,引出一地址指令; ( c)選 11110000— 11111101共 14條 2地址指令,留 11111110, 11111111為擴展標志,再與 AC2組合,以此類推。 二、擴展操作碼 要點: ( 1)操作碼位數(shù)隨地址碼個數(shù)變化采取可變長度的類型; ( 2)指令間指令碼一定不重復; ( 3)根據(jù)需要靈活變通。 指令字長與擴展方法 一、操作碼和地址碼間的權(quán)衡(操作碼有兩種編碼格式) 固定格式:操作碼長度固定,且集中放在指令字的一個字段中。 ? 例如,對同一容量 (如 64KB)的存儲器 ( 1)若取存儲單元為一字節(jié)長,則需要 16位地址碼, ( 2)若存儲單元長度為 32位,則只需 14位地址碼。若機器中字符碼長是 L位,則機器字長最好是 L, 2L, 4L, 8L等。 指令字長必須有足夠的長度。 ( 2)指令系統(tǒng)中指令的個數(shù) N與操作碼的位數(shù) n,必須滿足關(guān)系式: N≤2 n ( 1)地址碼:用來描述該指令的操作對象。它提供指令的操作控制信息。 兼容性: 兼容性一般是指計算機的體系結(jié)構(gòu)設(shè)計基本相同,機器之間具有相同的基本結(jié)構(gòu)、數(shù)據(jù)表示和共同的基本指令集合。 ( 2)勻齊性:是指一種操作性質(zhì)的指令可以支持各種數(shù)據(jù)類型。 規(guī)整性: 指令操作的對稱性和勻齊性,指令格式與數(shù)據(jù)格式的一致性。 有效性: 指利用該指令系統(tǒng)所提供的指令編制的程序能夠產(chǎn)生高效率。它不僅與計算機的硬件設(shè)計緊密相關(guān),而且直接影響到系統(tǒng)軟件設(shè)計的難易程度。嵌入?yún)R編指令采用 __asm關(guān)鍵字( 注意, __asm前是兩個下劃線;但 Visual C++ ∕線的格式 _asm,目的是與以前版本保持兼容)。所以,嵌入式匯編比模塊連接方式更簡單方便。它也分為嵌入?yún)R編和模塊調(diào)用兩種方式。微軟 Visual C++ ∕則是 Windows 。 C的相互調(diào)用可以分以下幾種情況: ? ( 1)匯編程序中訪問 c程序中的變量和函數(shù)?;旌暇幊痰年P(guān)鍵問題是建立不同語言之間的接口,在不同格式的兩種語言間提供有效的通訊方式,作出符合兩種語言調(diào)用約定的某種形式說明,實現(xiàn)兩種語言間的程序模塊互相調(diào)用、變量的相互傳送以及參數(shù)和返回值的正確使用。 獨立匯編模塊的匯編與C/C++混合編程 ? 兩種語言分別編寫?yīng)毩⒌某绦蚰K,分別產(chǎn)生目標代碼 OBJ文件,然后進行連接,形成一個完整的程序。Turbo C提供了六種存儲模式,分別是:微型模式( Tiny)、小型模式( Small)、緊湊模式( Compact)、中型模式( Medium)、大型模式( Large)和巨型模式( Huge)。 ? 存儲模式處理程序、數(shù)據(jù)、堆棧在主存中的分配和存取,決定代碼和數(shù)據(jù)的默認指針類型,例如段寄存器 CS、 DS、 SS、 ES的設(shè)置就與所采用的存儲模式有關(guān)。其中的 AX和 DX寄存器承擔了傳遞返回值的任務(wù)。這些寄存器經(jīng)保護后,可以利用,但退出前必須加以恢復。 ? 作為一個獨立的匯編語言子程序,當然要注意寄存器的保護和恢復。 ? 在 C語言程序中, C對所要調(diào)用的外部過程、函數(shù)、變量均采用 EXTERN予以說明,并且放在主調(diào)用程序之前,一般放在各函數(shù)體外部,說明形式如下: extern 返回值類型 函數(shù)名稱 (參數(shù)類型表 )。 ? 在 C語言程序中, C對所要調(diào)用的外部過程、函數(shù)、變量均采用 EXTERN予以說明,并且放在主調(diào)用程序之前,一般放在各函數(shù)體外部,說明形式如下: extern 返回值類型 函數(shù)名稱 (參數(shù)類型表 )。 /* 將寄存器 AX的內(nèi)容作為函數(shù)的返回值 */ ? } ? main() /* C語言主程序 */ ? { min(100,200)。一般來說,只要匯編語句能夠使用存儲器操作數(shù)(地址操作數(shù)),就可以采用一個 C語言程序中的符號;同樣,只要匯編語句可以用寄存器作為合法的操作數(shù),就可以使用一個寄存器變量。 C/C++程序中內(nèi)嵌匯編 ? 1. 嵌入?yún)R編語句的格式 Turbo C語言程序中,嵌入?yún)R編語言指令是在匯編語句前加一個 asm關(guān)鍵字,格式如下:
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1