一本很好的匯編語言教程,跟大家一起分享 課程介紹 第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
本文介紹了基于軟PLC(Programmable Logic Controller,可編程控制器)的嵌入式技術起源和背景,綜述了基于軟PLC的嵌入式系統的關鍵技術和優點,最后介紹了其設計和實現的方法。 基于軟PLC的嵌入式系統的研究與實現分為開發系統和運行系統(又稱為虛擬機系統)。本文概述了開發系統,其運行于PC機的操作系統如Windows或者Linux等,為用戶提供一個大眾化的編程環境,它包含編輯器、編譯器、連接器、調試器和通信接口幾個部分。編輯界面友好,可以讓用戶方便的使用LD、ST和FBD三種語言編寫程序,編譯器和連接器將源程序文件編譯和連接成虛擬機系統可執行的目標代碼文件;分析了開發系統,其中詳細描述了編譯模塊的編制過程,實現了將指令表語言轉換為運行系統能夠識別的C/C++指令的功能;詳細地研究了梯形圖轉換為指令表語言,以及由指令表語言向梯形圖語言的算法和數據結構。調試器借助于虛擬機運行系統提供的服務可完成對應用程序的調試糾錯;討論了uCLinux操作系統和編譯調試技術,以及采用ModBus/TCP工業通信協議的通信接口用于開發系統和運行系統之間的通信。 另一方面,本文分析了虛擬機運行系統,它運行于安裝了uCLinux的ARM7平臺上,包括運行內核模塊、系統管理模塊和通信接口模塊。由于uCLinux沒有MMU和本身對實時性沒有什么要求,而針對基于軟PLC的嵌入式系統的研究與實現要求,本文在對其進行了uCLinux小型化研究的同時探討了雙內核實時性方案,解決了uCLinux實時性不足的問題。運行內核模塊調度和執行應用程序并管理時鐘。系統管理模塊管理系統狀態和內存。通信模塊用于開發系統及I/O設備通信。在此基礎上,對基于軟PLC的嵌入式系統的進行了設計與實現,并通過試驗將編譯的目標代碼傳遞到基于軟PLC的嵌入式運行系統中,實現了控制功能,驗證了生成目標代碼的正確性和開發系統的可行性,實現了編輯界面友好,系統開放,性價比較高的軟PLC嵌入式系統,達到了預期的目標,具有一定理論和應用價值。
上傳時間: 2013-04-24
上傳用戶:jiiszha
激光打標是指利用高能量密度的激光束在物件表面作永久性標刻。激光打標以其“打標速度快、性能穩定、打標質量好”等優勢,獲得了日益廣泛的應用。傳統的激光打標系統一般是基于ISA總線或PCI總線的,運動控制卡必須插在計算機的PCI插槽內,且不支持熱捅拔,影響了控制卡的穩定性;以單片機為主控制器的激光打標控制卡雖然成本低、運行可靠,但由于其運算速度慢、存儲容量有限,限制了它的應用范圍。 運動控制卡是激光打標系統的核心組成部分。本文設計了一種新型的基于USB總線,以FPGA為主控單元的振鏡掃描式激光打標控制卡,它利用了USB總線高速、穩定、易用和FPGA資源豐富、處理能力強、易擴展等優點,將PC機強大的信息處理能力與運動控制卡的運動控制能力相結合,具有信息處理能力強、開放程度高、使用方便的特點。 本文首先介紹了激光打標的原理,激光打標技術的發展現狀以及激光打標系統的組成結構。在對USB總線技術作了簡要介紹后,詳細討論了激光打標控制卡的硬件電路設計,包括USB接口電路,FPGA主控單元電路,D/A單元電路,存儲器電路,I/O接口電路等。接著對USB接口單元的固件程序和FPGA中USB接口功能模塊、D/A寫控制功能模塊和SRAM讀寫控制功能模塊的程序做了詳細設計,通過軟硬件調試,控制卡實現了USB通信,輸出兩路模擬信號,SRAM數據讀寫,數字量輸入輸出等功能。
上傳時間: 2013-04-24
上傳用戶:prczsf
現場可編程門陣列(FPGA,Field Programmable Gate Array)是可編程邏輯器件的一種,它的出現是隨著微電子技術的發展,設計與制造集成電路的任務已不完全由半導體廠商來獨立承擔。系統設計師們更愿意自己設計專用集成電路(ASIC,Application Specific Integrated Circuit).芯片,而且希望ASIC的設計周期盡可能短,最好是在實驗室里就能設計出合適的ASIC芯片,并且立即投入實際應用之中。現在,FPGA已廣泛地運用于通信領域、消費類電子和車用電子。 本文中涉及的I/O端口模塊是FPGA中最主要的幾個大模塊之一,它的主要作用是提供封裝引腳到CLB之間的接口,將外部信號引入FPGA內部進行邏輯功能的實現并把結果輸出給外部電路,并且根據需要可以進行配置來支持多種不同的接口標準。FPGA允許使用者通過不同編程來配置實現各種邏輯功能,在IO端口中它可以通過選擇配置方式來兼容不同信號標準的I/O緩沖器電路。總體而言,可選的I/O資源的特性包括:IO標準的選擇、輸出驅動能力的編程控制、擺率選擇、輸入延遲和維持時間控制等。 本文是關于FPGA中多標準兼容可編程輸入輸出電路(Input/Output Block)的設計和實現,該課題是成都華微電子系統有限公司FPGA大項目中的一子項,目的為在更新的工藝水平上設計出能夠兼容單端標準的I/O電路模塊;同時針對以前設計的I/O模塊不支持雙端標準的缺點,要求新的電路模塊中擴展出雙端標準的部分。文中以低壓雙端差分標準(LVDS)為代表構建雙端標準收發轉換電路,與單端標準比較,LVDS具有很多優點: (1)LVDS傳輸的信號擺幅小,從而功耗低,一般差分線上電流不超過4mA,負載阻抗為100Ω。這一特征使它適合做并行數據傳輸。 (2)LVDS信號擺幅小,從而使得該結構可以在2.5V的低電壓下工作。 (3)LVDS輸入單端信號電壓可以從0V到2.4V變化,單端信號擺幅為400mV,這樣允許輸入共模電壓從0.2V到2.2V范圍內變化,也就是說LVDS允許收發兩端地電勢有±1V的落差。 本文采用0.18μm1.8V/3.3V混合工藝,輔助Xilinx公司FPGA開發軟件ISE,設計完成了可以用于Virtex系列各低端型號FPGA的IOB結構,它有靈活的可配置性和出色的適應能力,能支持大量的I/O標準,其中包括單端標準,也包括雙端標準如LVDS等。它具有適應性的優點、可選的特性和考慮到被文件描述的硬件結構特征,這些特點可以改進和簡化系統級的設計,為最終的產品設計和生產打下基礎。設計中對包括20種IO標準在內的各電器參數按照用戶手冊描述進行仿真驗證,性能參數已達到預期標準。
上傳時間: 2013-05-15
上傳用戶:shawvi
現代社會信息量爆炸式增長,由于網絡、多媒體等新技術的發展,用戶對帶寬和速度的需求快速增加。并行傳輸技術由于時鐘抖動和偏移,以及PCB布線的困難,使得傳輸速率的進一步提升面臨設計的極限;而高速串行通信技術憑借其帶寬大、抗干擾性強和接口簡單等優勢,正迅速取代傳統的并行技術,成為業界的主流。 本論文針對目前比較流行并且有很大發展潛力的兩種高速串行接口電路——高速鏈路口和Rocket I/O進行研究,并以Xilinx公司最新款的Virtex-5 FPGA為研究平臺進行仿真設計。本論文的主要工作是以某低成本相控陣雷達信號處理機為設計平臺,在其中的一塊信號處理板上,進行了基于LVDS(Low VoltageDifferential Signal)技術的高速LinkPort(鏈路口)設計和基于CML(Current ModeLogic)技術的Rocket I/O高速串行接口設計。首先在FPGA的軟件中進行程序設計和功能、時序的仿真,當仿真驗證通過之后,重點是在硬件平臺上進行調試。硬件調試驗證的方法是將DSP TS201的鏈路口功能與在FPGA中的模擬高速鏈路口相連接,進行數據的互相傳送,接收和發送的數據相同,證明了高速鏈路口設計的正確性。并且在硬件調試時對Rocket IO GTP收發器進行回環設計,經過回環之后接收到的數據與發送的數據相同,證明了Rocket I/O高速串行接口設計的正確性。
上傳時間: 2013-04-24
上傳用戶:戀天使569
人臉識別技術繼指紋識別、虹膜識別以及聲音識別等生物識別技術之后,以其獨特的方便、經濟及準確性而越來越受到世人的矚目。作為人臉識別系統的重要環節—人臉檢測,隨著研究的深入和應用的擴大,在視頻會議、圖像檢索、出入口控制以及智能人機交互等領域有著重要的應用前景,發展速度異常迅猛。 FPGA的制造技術不斷發展,它的功能、應用和可靠性逐漸增加,在各個行業也顯現出自身的優勢。FPGA允許用戶根據自己的需要來建立自己的模塊,為用戶的升級和改進留下廣闊的空間。并且速度更高,密度也更大,其設計方法的靈活性降低了整個系統的開發成本,FPGA 設計成為電子自動化設計行業不可缺少的方法。 本文從人臉檢測算法入手,總結基于FPGA上的嵌入式系統設計方法,使用IBM的Coreconnect掛接自定義模塊技術。經過訓練分類器、定點化、以及硬件加速等方法后,能夠使人臉檢測系統在基于Xilinx的Virtex II Pro開發板上平臺上,達到實時的檢測效果。本文工作和成果可以具體描述如下: 1. 算法分析:對于人臉檢測算法,首先確保的是檢測率的準確性程度。本文所采用的是基于Paul Viola和Michael J.Jones提出的一種基于Adaboost算法的人臉檢測方法。算法中較多的是積分圖的特征值計算,這便于進一步的硬件設計。同時對檢測算法進行耗時分析確定運行速度的瓶頸。 2. 軟硬件功能劃分:這一步考慮市場可以提供的資源狀況,又要考慮系統成本、開發時間等諸多因素。Xilinx公司提供的Virtex II Pro開發板,在上面有可以供利用的Power PC處理器、可擴展的存儲器、I/O接口、總線及數據通道等,通過分析可以對算法進行細致的劃分,實現需要加速的模塊。 3. 定點化:在Adaboost算法中,需要進行大量的浮點計算。這里采用的方法是直接對數據位進行操作它提取指數和尾數,然后對尾數執行移位操作。 4. 改進檢測用的級聯分類器的訓練,提出可以迅速提高分類能力、特征數量大大減小的一種訓練方法。 5. 最后對系統的整體進行了驗證。實驗表明,在視頻輸入輸出接入的同時,人臉檢測能夠達到17fps的檢測速度,并且獲得了很好的檢測率以及較低的誤檢率。
上傳時間: 2013-07-01
上傳用戶:84425894
C語言寫的12864液晶驅動程序,具有顯示漢字,動畫顯示,畫任意坐標的點,畫任意兩點直間的直線,畫任意大小圓等功能,程序都是本人自己開發的,有問題可以問我。
上傳時間: 2013-05-18
上傳用戶:zxh1986123
隨著現代計算機技術、微電子技術的進一步結合和發展,可編程邏輯技術已成為當前電子設計領域中最具活力和發展前途的技術。通過采用FPGA/EDA技術,對通信卡的PCI接口、E1接口、外部邏輯電路進行集成,并利用目前通用計算機強大的數字信息處理能力,可大大簡化CTI硬件的設計,降低制造成本,提高系統可靠性。 據此,本論文提出了基于FPGA/EDA技術的PCI-E1接口設計方法,文中對PCI總線接口、E1接口及兩接口的互連等相關技術進行了深入分析,對各功能模塊和系統進行了VHDL建模與仿真。 同時,論文還介紹了基于ALTERACyclone系列FPGA芯片的PCI-E1接口硬件平臺的設計原理和基于DriverWorks的WDM驅動程序的設計方法。 本論文涉及的軟件、硬件系統已經開發、調試完成。測試結果表明:1、論文所研究的PCI接口(主/從設備)在進行配置讀/寫、I/O讀寫、存儲器讀寫及總線的猝發數據傳送等操作中,各項性能符合PCI2.3規范的要求。 2、論文所研究的E1接口支持成幀和不成幀兩種傳輸方式:在成幀模式下,信息的有效傳送速率為31×64Kbit/s;在不成幀的模式下,信息的有效傳送速率為2.048Mbit/s。E1輸出口各項參數符合CCITT相關規范要求。 3、論文所研究的PCI-E1接口在與現網設備、模塊的對接測試中,性能穩定。基于本論文的產品已經正式發布。國內部分廠家已對該產品進行了多方面的綜合測試,并計劃將其應用到實際的生產和研究中。 本論文對于CTI硬件的設計是一項嘗試和革新。測試和應用證明該方法行之有效,符合設計目標,具有較廣闊的應用前景。
上傳時間: 2013-06-02
上傳用戶:wpwpwlxwlx
隨著存儲技術的迅速發展,存儲業務需求的不斷增長,獨立的磁盤冗余陣列可利用多個磁盤并行存取提高存儲系統的性能。磁盤陣列技術采用硬件和軟件兩種方式實現,軟件RAID(Redundant Array of Independent Disks)主要利用操作系統提供的軟件實現磁盤冗余陣列功能,對系統資源利用率高,節省成本。硬件RAID將大部分RAID功能集成到一塊硬件控制器中,系統資源占用率低,可移植性好。 分析了軟件RAID的性能瓶頸,使用硬件直接完成部分計算提高軟件RAID性能。針對RAID5采用FPGA(Field Programmable Gate Array)技術實現RAID控制器硬件設計,完成磁盤陣列啟動、數據緩存(Cache)以及數據XOR校驗等功能。基于硬件RAID的理論,提出一種基于Virtex-4的硬件RAID控制器的系統設計方案:獨立微處理器和較大容量的內存;實現RAID級別遷移,在線容量擴展,在線數據熱備份等高效、用戶可定制的高級RAID功能;利用Virtex-4內置硬PowerPC完成RAID服務器部分配置和管理工作,運行Linux操作系統、RAID管理軟件等。控制器既可以作為RAID控制卡在服務器上使用,也可作為一個獨立的系統,成為磁盤陣列的調試平臺。 隨著集成電路的發展,芯片的體積越來越小,電路的布局布線密度越來越大,信號的工作頻率也越來越高,高速電路的傳輸線效應和信號完整性問題越來越明顯。RAID控制器屬于高速電路的范疇,在印刷電路板(Printed Circuit Block, PCB)實現時分別從疊層設計、布局、電源完整性、阻抗匹配和串擾等方面考慮了信號完整性問題,并基于IBIS(I/O Buffer Information Specification)模型進行了信號完整性分析及仿真。
上傳時間: 2013-04-24
上傳用戶:jeffery
隨著ASIC設計規模的增長,功能驗證已成為整個開發周期的瓶頸。傳統的基于軟件模擬和硬件仿真的邏輯驗證方法已難以滿足應用的要求,基于FPGA組的原型驗證方法能有效縮短系統的開發周期,可提供更快更全面的驗證。由于FPGA芯片容量的增加跟不上ASIC設計規模的增長,單芯片已無法容納整個設計,所以常常需要對設計進行邏輯分割,將子邏輯塊映射到FPGA陣列中。 本文對邏輯驗證系統的可配置互連結構和ASIC邏輯分割算法進行了深入的研究,提出了FPGA陣列的非對稱可配置互連結構。與現有的對稱互連結構相比,該結構能提供更多的互連通道,可實現對I/O數量、電平類型和互連路徑的靈活配置。 本文對邏輯分割算法進行了較深入的研究。針對現有的兩類分割算法存在的不足,提出并實現了基于設計模塊的邏輯分割算法,該算法有三個重要特征:1)基于設計代碼;2)以模塊作為邏輯分割的最小單位;3)使用模塊資源信息指導邏輯分割過程,避免了設計分割過程的盲目性,簡化了邏輯分割過程。 本文還對并行邏輯分割方法進行了研究,提出了兩種基于不同任務分配策略的并行分割算法,并對其進行了模擬和性能分析;驗證了采用并行方案對ASIC邏輯進行分割和映射的可行性。 最后基于改進的芯片互連結構,使用原型系統驗證方法對某一大規模ASIC設計進行了邏輯分割和功能驗證。實驗結果表明,使用改進后的FPGA陣列互連結構可以更方便和快捷地實現ASIC設計的分割和驗證,不但能顯著提高芯片間互連路徑的利用率,而且能給邏輯分割乃至整個驗證過程提供更好的支持,滿足現在和將來大規模ASIC邏輯驗證的需求。
上傳時間: 2013-06-12
上傳用戶:極客