一本很好的匯編語言教程,跟大家一起分享 課程介紹 第1章 預備知識 1.1 匯編語言的由來及其特點 1 機器語言 2 匯編語言 3 匯編程序 4 匯編語言的主要特點 5 匯編語言的使用領域 1.2 數據的表示和類型 1 數值數據的表示 2 非數值數據的表示 3 基本的數據類型 1.3 習題 第2章 CPU資源和存儲器 2.1 寄存器組 1 寄存器組 2 通用寄存器的作用 3 專用寄存器的作用 2.2 存儲器的管理模式 1 16位微機的內存管理模式 2 32位微機的內存管理模式 2.3 習題 第3章 操作數的尋址方式 3.1 立即尋址方式 3.2 寄存器尋址方式 3.3 直接尋址方式 3.4 寄存器間接尋址方式 3.5 寄存器相對尋址方式 3.6 基址加變址尋址方式 3.7 相對基址加變址尋址方式 3.8 32位地址的尋址方式 3.9 操作數尋址方式的小結 3.10 習題 第4章 標識符和表達式 4.1 標識符 4.2 簡單內存變量的定義 1 內存變量定義的一般形式 2 字節變量 3 字變量 4 雙字變量 5 六字節變量 6 八字節變量 7 十字節變量 4.3 調整偏移量偽指令 1 偶對齊偽指令 2 對齊偽指令 3 調整偏移量偽指令 4 偏移量計數器的值 4.4 復合內存變量的定義 1 重復說明符 2 結構類型的定義 3 聯合類型的定義 4 記錄類型的定義 5 數據類型的自定義 4.5 標號 4.6 內存變量和標號的屬性 1 段屬性操作符 2 偏移量屬性操作符 3 類型屬性操作符 4 長度屬性操作符 5 容量屬性操作符 6 強制屬性操作符 7 存儲單元別名操作符 4.7 表達式 1 進制偽指令 2 數值表達式 3 地址表達式 4.8 符號定義語句 1 等價語句 2 等號語句 3 符號名定義語句 4.9 習題 第5章 微機CPU的指令系統 5.1 匯編語言指令格式 1 指令格式 2 了解指令的幾個方面 5.2 指令系統 1 數據傳送指令 2 標志位操作指令 3 算術運算指令 4 邏輯運算指令 5 移位操作指令 6 位操作指令 7 比較運算指令 8 循環指令 9 轉移指令 10 條件設置字節指令 11 字符串操作指令 12 ASCII-BCD碼調整指令 13 處理器指令 5.3 習題 第6章 程序的基本結構 6.1 程序的基本組成 1 段的定義 2 段寄存器的說明語句 3 堆棧段的說明 4 源程序的結構 6.2 程序的基本結構 1 順序結構 2 分支結構 3 循環結構 6.3 段的基本屬性 1 對齊類型 2 組合類型 3 類別 4 段組 6.4 簡化的段定義 1 存儲模型說明偽指令 2 簡化段定義偽指令 3 簡化段段名的引用 6.5 源程序的輔助說明偽指令 1 模塊名定義偽指令 2 頁面定義偽指令 3 標題定義偽指令 4 子標題定義偽指令 6.6 習題 第7章 子程序和庫 7.1 子程序的定義 7.2 子程序的調用和返回指令 1 調用指令 2 返回指令 7.3 子程序的參數傳遞 1 寄存器傳遞參數 2 存儲單元傳遞參數 3 堆棧傳遞參數 7.4 寄存器的保護與恢復 7.5 子程序的完全定義 1 子程序完全定義格式 2 子程序的位距 3 子程序的語言類型 4 子程序的可見性 5 子程序的起始和結束操作 6 寄存器的保護和恢復 7 子程序的參數傳遞 8 子程序的原型說明 9 子程序的調用偽指令 10 局部變量的定義 7.6 子程序庫 1 建立庫文件命令 2 建立庫文件舉例 3 庫文件的應用 4 庫文件的好處 7.7 習題 第8章 輸入輸出和中斷 8.1 輸入輸出的基本概念 1 I/O端口地址 2 I/O指令 8.2 中斷 1 中斷的基本概念 2 中斷指令 3 中斷返回指令 4 中斷和子程序 8.3 中斷的分類 1 鍵盤輸入的中斷功能 2 屏幕顯示的中斷功能 3 打印輸出的中斷功能 4 串行通信口的中斷功能 5 鼠標的中斷功能 6 目錄和文件的中斷功能 7 內存管理的中斷功能 8 讀取和設置中斷向量 8.4 習題 第9章 宏 9.1 宏的定義和引用 1 宏的定義 2 宏的引用 3 宏的參數傳遞方式 4 宏的嵌套定義 5 宏與子程序的區別 9.2 宏參數的特殊運算符 1 連接運算符 2 字符串整體傳遞運算符 3 字符轉義運算符 4 計算表達式運算符 9.3 與宏有關的偽指令 1 局部標號偽指令 2 取消宏定義偽指令 3 中止宏擴展偽指令 9.4 重復匯編偽指令 1 偽指令REPT 2 偽指令IRP 3 偽指令IRPC 9.5 條件匯編偽指令 1 條件匯編偽指令的功能 2 條件匯編偽指令的舉例 9.6 宏的擴充 1 宏定義形式 2 重復偽指令REPEAT 3 循環偽指令WHILE 4 循環偽指令FOR 5 循環偽指令FORC 6 轉移偽指令GOTO 7 宏擴充的舉例 8 系統定義的宏 9.7 習題 第10章 應用程序的設計 10.1 字符串的處理程序 10.2 數據的分類統計程序 10.3 數據轉換程序 10.4 文件操作程序 10.5 動態數據的編程 10.6 COM文件的編程 10.7 駐留程序 10.8 程序段前綴及其應用 1 程序段前綴的字段含義 2 程序段前綴的應用 10.9 習題 第11章 數值運算協處理器 11.1 協處理器的數據格式 1 有符號整數 2 BCD碼數據 3 浮點數 11.2 協處理器的結構 11.3 協處理器的指令系統 1 操作符的命名規則 2 數據傳送指令 3 數學運算指令 4 比較運算指令 5 超越函數運算指令 6 常數操作指令 7 協處理器控制指令 11.4 協處理器的編程舉例 11.5 習題 第12章 匯編語言和C語言 12.1 匯編語言的嵌入 12.2 C語言程序的匯編輸出 12.3 一個具體的例子 12.4 習題 附錄
上傳時間: 2013-07-05
上傳用戶:hw1688888
固態硬盤是一種以FLASH為存儲介質的新型硬盤。由于它不像傳統硬盤一樣以高速旋轉的磁盤為存儲介質,不需要浪費大量的尋道時間,因此它有著傳統硬盤不可比擬的順序和隨機存儲速度。同時由于固態硬盤不存在機械存儲結構,因此還具有高抗震性、無工作噪音、可適應惡劣工作環境等優點。隨著計算機技術的高速發展,固態硬盤技術已經成為未來存儲介質技術發展的必然趨勢。 本文以設計固態硬盤控制芯片IDE接口部分為項目背景,通過可編程邏輯器件FPGA,基于ATA協議并使用硬件編程語言verilog,設計了一個位于設備端的IDE控制器。該IDE控制器的主要作用在于解析主機所發送的IDE指令并控制硬盤設備進行相應的狀態遷移和指令操作,從而完成硬盤設備端與主機端之間基本的狀態通信以及數據通信。論文主要完成了幾個方面的內容。第一:論文從固態硬盤的基本結構出發,分析了固態硬盤IDE控制器的功能性需求以及寄存器傳輸、PIO傳輸和UDMA傳輸三種ATA協議主要傳輸模式所必須遵循的時序要求,并概括了IDE控制器設計的要點和難點;第二:論文設計了IDE控制器的總體功能框架,將IDE控制器從功能上分為寄存器部分、頂層控制模塊、異步FIFO模塊、PIO控制模塊、UDMA控制模塊以及CRC校驗模塊六大子功能模塊,并分析了各個子功能模塊的基本工作原理和具體功能設計;第三:論文以設計狀態機流程和主要控制信號的方式實現了各個具體子功能模塊并列舉了部分關鍵代碼,同時給出了主要子功能模塊的時序仿真圖;最后,論文給出了基于PIO傳輸模式和基于UDMA傳輸模式的具體指令操作流程實現,并通過SAS邏輯分析儀和QuartusⅡ對IDE控制器進行了功能測試和分析,驗證了本論文設計的正確性。
上傳時間: 2013-07-31
上傳用戶:liangrb
通用異步收發器(Universal Asynchronous Receiver Transmitter,UART)是一種能同時支持短距離和長距離數據傳輸的串行通信接口,被廣泛應用于微機和外設之間的數據交換。像8251、NS8250、NS16550等都是常用的UART芯片,但是這些專用的串行接口芯片的缺點是數據傳輸速率比較慢,難以滿足高速率數據傳輸的場合,而更重要的就是它們都具有不可移植性,因此要利用這些芯片來實現PC機和FPGA芯片之間的通信,勢必會增加接口連線的復雜程度以及降低整個系統的穩定性和有效性。 本課題就是針對UART的特點以及FPGA設計具有可移植性的優勢,提出了一種基于FPGA芯片的嵌入式UART設計方法,其中主要包括狀態機的描述形式以及自頂向下的設計方法,利用硬件描述語言來編制UART的各個子功能模塊以及頂層模塊,之后將其集成到FPGA芯片的內部,這樣不僅能解決傳統UART芯片的缺點而且同時也使整個系統變得更加具有緊湊性以及可靠性。 本課題所設計的LIART支持標準的RS-232C傳輸協議,主要設計有發送模塊、接收模塊、線路控制與中斷仲裁模塊、Modem控制模塊以及兩個獨立的數據緩沖區FIFO模塊。該模塊具有可變的波特率、數據幀長度以及奇偶校驗方式,還有多種中斷源、中斷優先級、較強的抗干擾數據接收能力以及芯片內部自診斷的能力,模塊內分開的接收和發送數據緩沖寄存器能實現全雙工通信。除此之外最重要的是利用IP模塊復用技術設計數據緩沖區FIFO,采用兩種可選擇的數據緩沖模式。這樣既可以應用于高速的數據傳輸環境,也能適合低速的數據傳輸場合,因此可以達到資源利用的最大化。 在具體的設計過程中,利用Synplify Pro綜合工具、ModelSim仿真工具、ISE集成的軟件開發環境中對各個功能模塊進行綜合優化、仿真驗證以及下載實現。各項數據結果表明,本課題中所設計的UART滿足預期設計目標。
上傳時間: 2013-08-02
上傳用戶:rocketrevenge
本文完成了對MIPS-CPU的指令集確定,流水線與架構設計,代碼編寫,并且在x86計算機上搭建了稱為gccmips_elf的仿真系統,完成了對MIPS-CPU硬件系統的模擬仿真,最終完成FPGA芯片的下載與實現。 @@ 本文完成了包含34條指令的MIPS-CPU指令集的制定,完成了整個MIPS-CPU的架構設計與5級流水線級數的確定。制定了整個CPU的主控制模塊的狀態轉移圖;根據MIPS-CPU的指令集的模式,完成了對不同模式下的指令的分析,給出了相應的取指,譯碼,產生新的程序存儲器尋址地址,執行,數據存儲器與寄存器文件回寫的控制信號,完成取指令模塊,譯碼模塊,執行模塊,數據回寫等模塊代碼的編寫,從而完成了流水線模塊的代碼設計。 @@ 重點分析了由于流水線設計而引入的競爭與冒險,分析了在不同流水線階段可能存在的競爭與冒險,對引起競爭與冒險的原因進行了確定,并通過增加一些電路邏輯來避免競爭與冒險的發生,完成了競爭與冒險檢測電路模塊以及數據回寫前饋電路模塊的代碼編寫,從而解決了競爭與冒險的問題,使設計的5級流水線得以暢順實現。 @@ 完成了MIPS-CPU的仿真系統平臺的搭建,該仿真器用來對應用程序進行編譯,鏈接與執行,生成相應匯編語言程序以及向量文件(16進制機器碼);并且同時產生相關的Modelsim仿真,及Quartus II下載驗證的文件。本設計利用該仿真系統來評估設計的MIPS-CPU的硬件系統,模擬仿真結果證明本文設計的MIPS-CPU可以實現正常功能。本論文課題的研究成功對今后從事專用RISC-CPU設計的同行提供了有益的參考。 @@ 最終將設計的MIPS-CPU下載到ALTERA公司的FPGA-EP1C6Q240芯片,并且借助ALTERA公司提供的Quartus II軟件進行了編譯與驗證,對設計的MIPS-CPU的資源使用,關鍵路徑上的時序,布線情況進行了分析,最終完成各個指標的檢查,并且借助Quartus II軟件內嵌的Signal Tap軟件進行軟硬件聯合調試,結果表明設計的MIPS-CPU功能正常,滿足約束,指標正確。 @@關鍵詞 MIPS;流水線;競爭與冒險;仿真器;FPGA
上傳時間: 2013-07-31
上傳用戶:gjzeus
3D加速引擎是3D圖形加速系統的重要組成部分,以往在軟件平臺上對3D引擎的研究,實現了復雜的渲染模型和渲染算法,但這些復雜算法與模型在FPGA上綜合實現具有一定難度,針對FPGA的3D加速引擎設計及其平臺實現需要進一步研究。 本文在研究3D加速引擎結構的基礎上,實現了基于FPGA的圖像處理平臺,使用模塊化的思想,利用IP核技術分析設計實現了3D加速管道及其他模塊,并進行了仿真、驗證、實現。 圖像處理平臺選用Virtex-Ⅳ FPGA為核心器件,并搭載了Hynix HY5DU573222F-25、AT91FR40162S、XCF32P VO48及其他組件。 為滿足3D加速引擎的實現與驗證,設計搭建的圖像處理平臺還實現了DDR-SDRAM控制器模塊、VGA輸出模塊、總線控制器模塊、命令解釋模塊、指令寄存器模塊及控制寄存器模塊。 3D加速引擎設計包含3D加速渲染管道、視角變換管道、基元讀取、頂點FIFO、基元FIFO、寫內存等模塊。針對FPGA的特性,簡化、設計、實現了光照管道、紋理管道、著色管道和Alpha融合管道。 最后使用Modelsim進行了仿真測試和圖像處理平臺上的驗證,其結果表明3D加速引擎設計的大部分功能得到實現,結果令人滿意。
上傳時間: 2013-07-30
上傳用戶:lepoke
在現代電子系統中,數字化已經成為發展的必然趨勢,接收機數字化是電子系統數字化中的一項重要內容,對數字化接收機的研究具有重要的意義。隨著數字化理論和微電子技術的迅速發展,高速的中頻數字化接收機的實現已經成為可能。本文研究了一種基于FPGA的軟件無線電數字接收平臺的設計,并著重研究了其中數字中頻處理單元的設計和實現。FPGA器件具有設計靈活、開發周期短和開發成本低等優點,所以廣泛應用于各種通信系統中。相比于傳統的DSP串行結構,FPGA能夠進行流水線性設計,對數據進行并行處理,所以FPGA在進行數據量大,要求實時處理的系統設計時有很大的優勢。 本文首先首先分析了軟件無線電當前的發展趨勢及技術現狀,針對存在的處理速度跟不上的DSP瓶頸問題,提出了中頻軟件無線電的FPGA實現方案。本文以FPGA實現為重點,在深入分析軟件無線電相關理論的基礎上,著重研究和完成了中頻軟件無線電數字接收平臺兩大模塊的FPGA實現:數字下變頻相關模塊和數字調制解調模塊。其中,在深入研究數字下變頻實現結構的基礎上,首先對數字下變頻模塊的數控振蕩器(NCO)采用了直接頻率合成技術(DDS)實現,其頻率分辨率高,靈活,易于實現;高效抽取濾波器組由積分梳狀濾波器(CIC),半帶濾波器(HB),FIR濾波器組成。對積分梳狀濾波器(CIC)本文采用了Hogenaur“剪除”理論對內部寄存器的位寬進行改進,極大地節約了資源,提高了運行速率。對FIR濾波器和半帶濾波器采用了(DA)分布式算法,它的運行速度只與數據的寬度有關,只有加減法運算和二進制除法,既縮減了系統資源又大大節省了運算時間,實現了高效的實時處理。對數字調制解調模塊,重點研究和完成了2ASK和2FSK的調制解調的FPGA實現,模塊有很好的通用性,能方便地移植到其它的系統中。在文章的最后還對整個系統進行了Matlab仿真,驗證了系統設計思想的正確性。在系統各個關鍵模塊的設計過程中,都是先依據一定的設計指標進行verilog編程,然后再在Quartus軟件中編譯,時序仿真測試,并與Matlab仿真結果進行對比,驗證設計的正確性。
上傳時間: 2013-05-18
上傳用戶:450976175
隨著信息時代的到來,用戶對數據保護和傳輸可靠性的要求也在不斷提高。由于信道衰落,信號經信道傳輸后,到達接收端不可避免地會受到干擾而出現信號失真。因此需要采用差錯控制技術來檢測和糾正由信道失真引起的信息傳輸錯誤。RS(Reed—Solomon)碼是差錯控制領域中一類重要的線性分組碼,由于它編解碼結構相對固定,性能強,不但可以糾正隨機差錯,而且對突發錯誤的糾錯能力也很強,被廣泛應用在數字通信、數據存儲系統中,以滿足對數據傳輸通道可靠性的要求。因此設計一款高性能的RS編解碼器不但具有很大的應用意義,而且具有相當大的經濟價值。 本文首先介紹了線形分組碼及其子碼循環碼、BCH碼的基礎理論知識,重點介紹了BCH碼的重要分支RS碼的常用編解碼算法。由于其算法在有限域上進行,接著介紹了有限域的有關理論。基于RS碼傳統的單倍結構,本文提出了一種八倍并行編碼及九倍并行解碼方案,并用Verilog HDL語言實現。其中編碼器基于傳統的線性反饋移位寄存器除法電路并進行八倍并行擴展,譯碼器關鍵方程求解模塊基于修正的歐幾里德算法設計了一種便于硬件實現的脈動關鍵方程求解結構,其他模塊均采用九倍并行實現。由于進行了超前運算、流水線及并行處理,使編解碼的數據吞吐量大為提高,同時延時更小。 本論文設計了C++仿真平臺,并與HDL代碼結果進行了對比驗證。Verilog HDL代碼經過modelsim仿真驗證,并在ALTERA STRATIX3 EP3SL15OF1152C2 FPGA上進行綜合驗證以及靜態時序分析,綜合軟件為QUATURSⅡ V8.0。驗證及測試表明,本設計在滿足編解碼基本功能的基礎上,能夠實現數據的高吞吐量和低延時傳輸,達到性能指標要求。本論文在基于FPGA的RS(255,223)編解碼器的高速并行實現方面的研究成果,具有通用性、可移植性,有一定的理論及經濟價值。
上傳時間: 2013-04-24
上傳用戶:思琦琦
MP3音樂是目前最為流行的音樂格式,因其音質、復雜度與壓縮比的完美折中,占據著廣闊的市場,不僅在互聯網上廣為流傳,而且在便攜式設備領域深受人們喜愛。本文以MPEG-1的MP3音頻解碼器為研究對象,在實時性、面積等約束條件下,研究MP3解碼電路的設計方法,實現FPGA原型芯片,研究MP3原型芯片的驗證方法。 論文的主要貢獻如下: (1)使用算法融合方法合并MP3解碼過程的相關步驟,以減少緩沖區存儲單元的容量和訪存次數。如把重排序步驟融合到反量化模塊,可以減少一半的讀寫RAM操作;把IMDCT模塊內部的三個算法步驟融合在一起進行設計,可以省去存儲中間計算結果的緩存區單元。 (2)反量化、立體聲處理等模塊中,采用流水線設計技術,設置寄存器把較長的組合邏輯路徑隔開,提高了電路的性能和可靠性;使用連續訪問公共緩存技術,合理規劃各計算子模塊的工作時序,將數據計算的時間隱藏在訪存過程中;充分利用頻率線的零值區特性,有效地減少數據計算量,加快了數據處理的速度。 (3)設計了MP3硬件解碼器的FPGA原型芯片。采用Verilog HDL硬件描述語言設計RTL級電路,完成功能仿真,以Altera公司Stratix II系列的EP2S180 FPGA開發板為平臺,實現MP3解碼器的FPGA原型芯片。MP3硬件解碼器在Stratix II EP2S180器件內的資源利用率約為5%,其中組合邏輯查找表ALUT為7189個,寄存器共有4024個,系統頻率可達69.6MHz,充分滿足了MP3解碼過程的實時性要求。實驗結果表明,MP3音頻解碼FPGA原型芯片可正常播放聲音,解碼音質良好。
上傳時間: 2013-07-01
上傳用戶:xymbian
“計算機組成原理”是計算機專業的一門核心課程。傳統的計算機組成原理實驗是在指令格式、尋址方式、運算器、控制器、存儲器等都相對固定的情況下進行,學生主要進行功能實現和驗證,缺少自主設計和創新過程。 為改變這種狀況,須更新現有的計算機組成原理實驗系統。采用FPGA芯片作為載體,使用EDA開發工具,用硬件描述語言實現不同的硬件邏輯,再與硬件的輸入輸出接口線路相連,最終組成一臺可用于組成實驗教學的完整計算機系統。這期間學生將掌握組成原理實驗系統的各個部件的功能及其相互之間如何協作。本實驗系統能夠讓學生完成有關計算機組成原理的部件實驗和整機實驗:部件實驗包括加法器、乘法器、除法器、算術邏輯運算單元、控制器、存儲器等;整機實驗可以獨立實現各部件的功能描述。該系統能夠幫助學生鞏固課堂知識并增強設計能力。 為實現上述目的,依據EDA技術的開發流程和方法,建立了一個完整的體系,其中包括控制模塊、內存模塊、運算器模塊、通用寄存器組及其控制部件、程序計數器、地址寄存器、指令寄存器、時序部件、數據控制部件、狀態值控制部件,以及為幫學生調試而專門設計的輸出觀察部件。在Quartus Ⅱ開發環境下,使用Altera公司FPGA芯片,采用VHDL,語言設計并實現了上述模塊。經過仿真測試,所實現的各功能模塊作為獨立部件時能完成各自功能:而將這些部件組合起來的整機系統,可以執行程序段和進行各種運算處理,達到了設計要求。
上傳時間: 2013-06-01
上傳用戶:hebmuljb
隨著以太網技術的不斷發展,網絡的傳輸速度已經由最初的10M發展到現在的10,000M。用可編程邏輯器件(FPGA)實現以太網控制器與其它SOC系統的互連成為當前的研究熱點。本文闡述了MAC層的FPGA設計、仿真及測試;介紹了整個系統的內部結構、模塊劃分,并對各個模塊的設計過程進行了詳細闡述,接著介紹了開發環境和驗證工具,同時給出測試方案、驗證數據、實現結果及時序仿真波形圖。 對MAC層的主要功能模塊如:發送模塊、接收模塊、MAC流程控制模塊、寄存器模塊、MⅡ接口模塊和主機接口模塊以及CRC,CSMA/CD,HASH表等算法給出了基于FPGA及硬件描述語言的解決方法。 本課題針對以下三個方面進行了研究并取得一定的成果: 1)FPGA開發平臺的硬件實現。選用Xilinx公司的XC3S1000-FT256-4-C和ATMEL公司的ARM9200作為測試的核心器件,采用LXT971芯片作為物理層芯片,AT91RM9200作為數據輸入源和雙blockram作為幀緩存搭建FPGA硬件驗證開發平臺。 2)基于FPGA實現以太網控制器。用VerilogHDL語言構建以太網控制器,實現CSMA/CD協議、10M/100M自適應以及與物理層MⅡ接口等。 3)采用片上系統通用的WS接口。目的是便于與具有通用接口的片上系統互連,也為構建SOC上處理器提供條件。 本論文實現了一個基于WS總線接口可裁減的以太網MAC控制器IP軟核,為設計具有自主知識產權的以太網MAC控制器積累了經驗。同時,為與其它WS接口的控制器實現直接互連創造了條件,對高層次設計這一先進ASIC設計方法也有了較為深入的認識。
上傳時間: 2013-07-17
上傳用戶:bruce