一本很好的汇编语言教程,跟大家一起分享 课程介绍 第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
数据结构数据结构数据结构数据结构数据结构数据结构数据结构
上传时间: 2013-06-11
上传用户:love1314
本文提出了一种基于USB和FPGA的高性能数据采集模块USB12016(USB总线,A/D垂直分辨率为12位,存储容量为16兆)的软硬件设计与实现方法。该数据采集卡包括模拟输入、A/D转换、数据缓存、FPGA控制电路和USB总线接口等,在一张卡上实现了8通道模拟信号调理、采集、处理,并可实现多卡同步触发采集,具有高精度,低噪声,低失真和测试信号范围宽的特点。USB12016配有系统驱动控制程序软件,在Windows9X/2000版本的操作平台下运行,控制面板完全是虚拟仪器软面板,图形化界面十分友好。USB12016是USB接口技术、FPGA技术和嵌入式技术融为一体的结晶,已成功应用于军事测控领域。
上传时间: 2013-06-12
上传用户:CETM008
串口控件使用说明 本程序使用VC6.0的通用串口控件MSCOMM32.OCX来对发送到串口的数据进行采集处理。主要使用方法 串口设置:m_Comm.SetSettings(“波特率,校验方式,数据位数,停止位数”) 取串口数据:m_Comm.GetInput() 你只首先要确定一个mscomm32.ocx控件在system目录下并且该控件已经被windows注册,本程序才能正常运行。
上传时间: 2013-04-24
上传用户:aappkkee
随着科学技术的快速发展和数据采集系统的广泛应用,人们对数据采集系统的速度、精度、易操作性以及实时性的要求也在不断地提高。通用串行总线USB作为一种新型的微机总线接口规范,以其使用方便、易于扩展、速度快等优点而被广泛地应用于数据采集系统中。现场可编程门阵列最大的特点是结构灵活,开发周期较短,适合于实时信号处理,已被广泛应用于通信、数据采集、图像处理等诸多领域。 @@ 本文充分利用USB和FPGA的上述优点,设计了一种基于USB2.0技术和FPGA技术相结合的高速数据采集系统。 @@ 首先,对数据采集基本理论及系统相关技术进行了简单地介绍。 @@ 其次,对以ADC转换器(TLC5510)、FPGA芯片(EP1C6Q240C8)为控制器和USB接口芯片(CY7C68013A-56,简称FX2)为主的数据采集系统进行了硬件设计和分析,并在此设计的基础上给出相应的原理图、PCB。硬件设计主要包括FPGA与ADC和FX2之间的接口电路设计以及硬件逻辑设计。 @@ 再次,根据系统需求,对系统软件部分进行了设计,分三部分:一是为满足FX2在USB上的最大传输速率而编写的固件程序;二是在PC机中的WindowsXP系统下利用GPD编写USB设备驱动程序;三是充分了解FX2的主要功能特点,并编写出应用程序。 @@ 最后,对系统的软硬件进行了调试,给出了调试结果和分析,对出现的问题给出了解决方案。结果表明,系统符合设计要求。 @@关键词:USB2.0;FPGA;SOPC;数据采集;固件;
上传时间: 2013-06-21
上传用户:cath
SATA接口是新一代的硬盘串行接口标准,和以往的并行硬盘接口比较它具有支持热插拔、传输速率快、执行效率高的明显优势。SATA2.0是SATA的第二代标准,它规定在数据线上使用LVDS NRZ串行数据流传输数据,速率可达3Gb/s。另外,SATA2.0还具有支持NCQ(本地命令队列)、端口复用器、交错启动等一系列技术特征。正是由于以上的种种技术优点,SATA硬盘业已被广泛的使用于各种企业级和个人用户。 硬盘作为主要的信息载体之一,其信息安全问题尤其引起人们的关注。由于在加密时需要实时处理大量的数据,所以对硬盘数据的加密主要使用带有密钥的硬件加密的方式。因此将硬盘加密和SATA接口结合起来进行设计和研究,完成基于SATA2.0接口的加解密芯片系统设计具有重要的使用价值和研究价值。 本论文首先介绍了SATA2.0的总线协议,其协议体系结构包括物理层、链路层、传输层和命令层,并对系统设计中各个层次中涉及的关键问题进行了阐述。其次,本论文对ATA协议和命令进行了详细的解释和分析,并针对设计中涉及的命令和对其做出的修改进行了说明。接着,本论文对SATA2.0加解密控制芯片的系统设计进行了讲解,包括硬件平台搭建和器件选型、模块和功能划分、系统工作原理等,剖析了系统设计中的难点问题并给出解决问题的方法。然后,对系统数据通路的各个模块的设计和实现进行详尽的阐述,并给出各个模块的验证结果。最后,本文简要的介绍了验证平台搭建和测试环境、测试方法等问题,并分析测试结果。 本SATA2.0硬盘加解密接口电路在Xilinx公司的Virtex5 XC5VLX50T FPGA上进行测试,目前工作正常,性能良好,已经达到项目性能指标要求。本论文在SATA加解密控制芯片设计与实现方面的研究成果,具有通用性、可移植性,有一定的理论及经济价值。
上传时间: 2013-04-24
上传用户:JIUSHICHEN
随着计算机和自动化测量技术的日益发展,测量仪器和计算机的关系日益密切。计算机的很多成果很快就应用到测量和仪器领域,与计算机相结合已经成为测量仪器和自动测试系统发展的必然趋势。高度集成的现场可编程门阵列(FPGA)是超大规模集成电路和计算机辅助设计技术发展的结果,由于FPGA器件具备集成度高、体积小、可以利用基于计算机的开发平台,用编写软件的方法来实现专门硬件的功能等优点,大大推动了数字系统设计的单片化、自动化,缩短了单片数字系统的设计周期、提高了设计的灵活性和可靠性。 本文研究基于网络的高速数据采集系统的设计与实现问题。论文完成了以FPGA结构为系统硬件平台,uClinux为核心的系统的软件平台设计,进行信号的采集和远程网络监测的功能。 论文从软硬件两方面入手,阐述了基于FPGA器件进行数据采集的硬件系统设计方法,以及基于uClinux操作系统的设备驱动程序设计和应用程序设计。 硬件方面,FPGA采用Xilinx公司Spartan系列的XC3S500芯片,用verilog HDL硬件描述语言在Xilinx公司提供的ISE辅助设计软件中实现FPGA编程。将微处理器MicroBlaze、数据存储器、程序存储器、以太网控制器、数模转换控制器等数字逻辑电路通过CoreConnect技术用OPB总线集成在同一个FPGA内部,形成一个可编程的片上系统(SOPC)。采用基于FPGA的SOPC设计的突出优点是不必更换芯片就可以实现设计的改进和升级,同时也可以降低成本和提高可靠性。 软件方面,为了更好更有效地管理和拓展系统功能,移植了uClinux到MicroBlaze软处理器上,设计实现了平台上的ADC设备驱动程序和数据采集应用程序。并通过修订内核,实现了利用以太网TCP/IP协议来访问数据采集程序获得的数据。
上传时间: 2013-05-23
上传用户:晴天666
近年来,大容量数据存储设备主要是机械硬盘,机械硬盘采用机械马达和磁片作为载体,存在抗震性能低、高功耗和速度提升难度大等缺点。固态硬盘是以半导体作为存储介质及控制载体,无机械装置,具有抗震、宽温、无噪、可靠和节能等特点,是目前存储领域所存在问题的解决方案之一。本文针对这一问题,设计基于FPGA的固态硬盘控制器,实现数据的固态存储。 文章首先介绍硬盘技术的发展,分析固态硬盘的技术现状和发展趋势,阐述课题研究意义,并概述了本文研究的主要内容及所做的工作。然后从分析固态硬盘控制器的关键技术入手,研究了SATA接口协议和NANDFLASH芯片特性。整体设计采用SOPC架构,所有功能由单片FPGA完成。移植MicroBlaze嵌入式处理器软核作为主控制器,利用Verilog HDL语言描述IP核形式设计SATA控制器核和NAND FLASH控制器核。SATA控制器核作为高速串行传输接口,实现SATA1.0协议,根据协议划分四层模型,通过状态机和逻辑电路实现协议功能。NAND FLASH控制器核管理NANDFLASH芯片阵列,将NAND FLASH接口转换成通用的SRAM接口,提高访问效率。控制器完成NAND FLASH存储管理和纠错算法,实现数据的存储和读取。最后完成固态硬盘控制器的模块测试和整体测试,介绍了测试方法、测试工具和测试流程,给出测试数据和结果分析,得出了验证结论。 本文设计的固态硬盘控制器,具有结构简单和稳定性高的特点,易于升级和二次开发,是实现固态硬盘和固态存储系统的关键技术。
上传时间: 2013-05-28
上传用户:sssnaxie
虚拟仪器技术是以传感器、信号测量与处理、微型计算机等技术为基础而形成的一门综合应用技术。目前虚拟仪器大部分是基于PC机,利用PCI等总线技术传输数据,数据卡插拔不便,便携性差。随着嵌入式技术的飞速发展,嵌入式系统平台已经应用到各个领域,而市场上的嵌入式虚拟仪器系统还相当少,各种研究工作才刚刚起步,各种高性能的虚拟仪器和处理系统在现代工业控制和科学研究中已成为必不可少的部分。因此在我国开发具有较高性能、接口灵活、功能多样化、低成本的虚拟仪器装置势在必行。 针对目前虚拟仪器系统发展趋势和特点,采用FPGA技术,进行一种支持多种平台的高速虚拟仪器系统的设计与研究,并针对高速虚拟仪器系统中的一些技术难点提出解决方案。首先进行了系统的总体设计,确定了采用FPGA作为系统的控制核心,并选取了Labview作为PC平台应用程序开发工具,利用USB2.0接口来进行数据传输;同时选取嵌入式处理器S3C2410以及WinCE作为嵌入式系统硬软件平台。随后进行了各个具体模块的设计,在硬件方面,分别设计了前端处理电路,ADC电路以及USB接口电路。在软件方面,进行了FPGA控制程序的设计工作,实现了对各个模块和接口电路的控制功能。在上层应用程序的设计方面,设计了Labview应用程序,实现了波形显示和频谱分析等仪器功能,人机界面良好。在嵌入式平台上面,进行了WinCE下GPIO驱动程序设计,并在上层应用程序中调用驱动来进行数据的读取。为了解决高速ADC与数据缓存器的速度不匹配的问题,提出利用多体交叉式存储器结构的设计方案,并在FPGA内对控制程序进行了设计,对其时序进行了仿真。 最后对系统进行了联合调试工作,利用上层软件对输入波形进行采集。根据调试结果看,该系统对输入信号进行了较好的采样和存储,还原了波形,达到了预期效果。课题研究并且对设计出一种支持多平台的新型虚拟仪器系统,具有性能好、使用灵活,节省成本等特点,具有较高的研究价值和现实意义。
上传时间: 2013-04-24
上传用户:shwjl
数据采集是信号与信息系统中一个重要的组成部分,也是数字信号处理的关键环节。本论文主要介绍一种基于FPGA的数据采集系统,提出一种由高速A/D转换芯片、高性能FPGA和PCI总线接口组成的数据采集系统方案及其的硬件电路实现方法。该系统利用AD器件对信号进行放大、差分转换和模数转换,利用FPGA设计内部模块和时钟信号来进行电路控制及实现数据缓存、数据传递等功能,最后通过PCI逻辑接口把暂存在FPGA的数据传送到PC主机。FPGA作为采集系统的核心部件,完成了内部数字电路设计,使系统具有很高的可适应性、可扩展性和可调试性。 本论文从研究数据采集的理论出发,重点研究了A/D模数转换、FPGA芯片设计及PCI总结接口设计,完成了系统的各级电路硬件设计,并通过系统仿真验证了系统的可行性。
上传时间: 2013-04-24
上传用户:小杨高1