一本很好的汇编语言教程,跟大家一起分享 课程介绍 第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
运动控制技术是机电一体化的核心部分,提高运动控制技术水平对于提高我国的机电一体化技术具有至关重要的作用。运动控制技术的发展是制造自动化前进的旋律,是推动新的产业革命的关键技术。对于数控系统来说,最重要的是控制各个电机轴的运动,这是运动控制器接收并依照数控装置的指令来控制各个电机轴运动从而实现数控加工的,数据加工中的定位控制精度、速度调节的性能等重要指标都与运动控制器直接相关。目前对数控系统的研究都集中在插入PC的NC控制器的研究上,而其核心部分就是对步进、伺服电机进行控制的运动控制卡的研究。对PC-NC来说,运动控制卡的性能很大程度上决定了整个数控系统的性能,而微电子和数字信号处理技术的发展及其应用,使运动控制卡的性能得到了不断改进,集成度和可靠性大大提高。 本课题通过对运动控制技术的深入研究,并针对国内运动控制技术的研究起步较晚的现状,结合当前运动控制领域的具体需要,紧跟当前运动控制技术研究的发展趋势,吸收了数控技术和相关运动控制技术的最新成果,提出了基于PCI和FPGA的方案,研制了一款比较新颖的、功能强大的、具有很大柔性的四轴多功能运动控制卡。 本课题的具体研究主要有以下几方面: 首先,通过对运动控制卡及运动控制系统等行业现状的全面调研,和对运动控制技术的深入学习,在比较了几种常用的运动控制方案的基础上,提出了基于FPGA的运动控制设计方案,并规划了板卡的总体设计。 其次,根据总体设计,规划了板卡的结构,详细划分并实现了FPGA各部分的功能;利用光电隔离原理设计了数字输入/输出电路。 再次,利用FPGA的资源实现了PCI从设备接口,达到跟控制卡通信的目的,针对运动控制中的一些具体问题,如运动平稳性、实时控制以及多轴联动等,在FPGA上设计了四轴运动控制电路,定义了各个寄存器的具体功能,设计了功能齐全的加/减速控制电路、变频分配电路、倍频分频电路和三个功能各异的计数器电路等,自动降速点运动、A/B相编码器倍频计数电路等特殊功能。最后,进行了本运动控制卡的测试,从测试和应用结果来看,该卡达到预期的要求。
上传时间: 2013-07-27
上传用户:zgu489
指纹识别是在指纹图像上找到指纹的特征,通过计算机模糊比较的方法,把两个指纹的特征模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果。本文对现已存在的多种指纹识别算法进行编程比较,并对细化算法提出改进。同时采用基于ARM7TDMI内核的32位处理器S3C44B0作为主控制器,半导体电容传感器FPS200作为指纹数据采集设备,构建了自动指纹识别系统。论文完成主要工作如下: 1、指纹采集模块的设计:根据FPS200的相关寄存器资源和管脚特性,完成指纹传感器FPS200的电路设计;研究FPS200主要寄存器的功能和图像采集方式,给出FPS200在三种工作方式下的工作流程,并且对三种工作模式进行分析。 2、指纹识别算法研究:通过对现已存在的多种图像预处理算法进行编程实现和对比研究发现,细化后的图像多存在短线、断线、毛刺等干扰以及细化不彻底的现象,为此提出了新的修复算法:分析目标点周围纹线的走向趋势,选择去除或者保留周围的相连点,较好地解决了细化不彻底的问题;再对细化后的图像采用方形模板进行纹线跟踪,去除伪特征点,克服了逐步递进的纹线跟踪算法过于复杂、不易实现等问题。 3、采用Sansung公司基于ARM7TDMI内核的32位RISC处理器S3C44B0,构建了自动指纹识别系统。该系统主要包括电源管理部分、指纹图像采集模块、存储器模块、JTAG调试接口以及与外设连接的串行接口。硬件部分主要完成指纹采集模块接口的设计与开发,软件部分主要完成指纹图像采集程序、指纹识别算法程序和串口通信程序的开发,此外还通过串口实现指纹数据上传到上位机,在VB环境下实现了简易的人机交互软件,提供指纹图像的直观显示,用于对指纹识别程序进行测试,并对测试结果进行了分析。
上传时间: 2013-05-22
上传用户:Andy123456
FPGA能够减少电子系统的开发风险和开发成本,缩短上市时间,降低维护升级成本,广泛地应用在电子系统中.随着集成电路向着片上系统(SoC)的发展,需要设计出FPGA IP核用于SoC芯片的设计.该论文的工作围绕FPGA IP核的设计进行,在FPGA结构设计优化和FPGAIP接口方案设计两方面进行了研究.设计改进了适用于数据通路的FPGA新结构——FDP.设计改进了可编程逻辑单元(LC);对可编程连线作为"2层2类"的层次结构进行组织,进行了改进并确定了各种连线的通道宽度;结合对迷宫布线算法的分析以及benchmark电路实验的方法,提出了用于分段式网格连线的开关盒和连接盒新结构,提高连线的面积利用效率.在FPGA IP核的接口方案上,基于边界扫描测试电路提出了FPGA IP核的测试方案;结合扩展边界扫描测试电路得到的编程功和自动下载电路,为FPGA IP核提供了具有两种不同编程方法的编程接口.采用SMIC 0.35um 3层金属CMOS工艺,实现了一个10万系统门规模的FDP结构,并和编程、测试接口一起进行版图设计,试制了FDP100k芯片.FDP100k中包括了32×32个LC,128个可编程IO单元.在FDP100k的芯片测试中,对编程寄存器、各种可编程资源进行测试,并完成电路实现、性能参数测试以及IP核接口的测试,结果表明FPGA IP核的整体功能正确.
标签: FPGAIP
上传时间: 2013-04-24
上传用户:gokk
JPEG2000是新一代的静态图像压缩标准,它相比JPEG有很多新的特性,如渐进传输和感兴趣区域编码等,因而它具有广阔的应用前景,特别是在数码相机、PDA等便携式设备中。 JPEG2000的核心主要包括小波变换和基于最优化截断点的嵌入式块编码(EBCOT)算法,其计算复杂度远远高于JPEG,完全采用软件方案实现将会占用大量的处理器时间和内存开销,而且速度较慢,实时处理的能力较差。为了推广JPEG2000在便携式产品、消费类电子产品中的应用,打开巨大的潜在市场,研究硬件实现的算法实时处理方案具有重要的应用价值。 EBCOT算法是一个两层的编码引擎,其中的上下文编码的运算量约占到总运算量的50%,是提高编码速度的关键算法之一。由于上下文编码大部分都是逻辑运算,没有复杂的数学运算,但逻辑控制流程复杂繁琐,对存储器访问频繁,采用DSP或者其他的通用处理器通过指令控制实现该算法,未能显著提高编码速度。本文采用FPGA芯片,以电路逻辑的方式来实现该算法并进行优化,在研究和分析了上下文编码算法运算特点的基础上,设计了列判断和交错存储相结合的硬件实现方案,并采用硬件描述语言Verilog在寄存器传输级描述了相应的硬件电路。通过功能仿真和逻辑综合后,所获得的上下文编码模块最大时钟频率为101MHz,且能在130ms内完成对一幅512×512灰度图像的编码,性能比Jasper软件中的实现方案提高了75%。 JPEG2000的一个重要特性是其具有渐进传输的能力,而码流组织是获得渐进传输特性的技术关键。码流组织通过在输出码流中安排数据包的先后顺序来实现渐进传输的目的。本文对JPEG2000中实现渐进传输的机制进行了分析,并研究了码流组织的算法实现。 为了对JPEG2000算法实现进行验证,本文设计了基于FPGA和ARM的验证实验平台,其中FPGA主要完成算法中运算量较大的小波变换、上下文编码和算术编码,而ARM处理器则完成码流组织、数据打包以及和PC机的通信。本文在该平台上对所设计的上下文编码算法和码流组织模块的设计进行了验证,实验结果表明本文设计的算法模块功能正确,并在一定程度上提高了编码速度。
上传时间: 2013-04-24
上传用户:独孤求源
本文从AES的算法原理和基于ARM核嵌入式系统的开发着手,研究了AES算法的设计原则、数学知识、整体结构、算法描述以及AES存住的优点利局限性。 针对ARM核的体系结构及特点,对AES算法进行了优化设计,提出了从AES算法本身和其结构两个方面进行优化的方法,在算法本身优化方面是把加密模块中的字节替换运算、列混合运算和解密模块中的逆列混合运算中原来的复杂的运算分别转换为简单的循环移位、乘和异或运算。在算法结构优化方面是在输入输山接口上采用了4个32位的寄存器对128bits数据进行了并行输入并行输出的优化设计;在密钥扩展上的优化设计是采用内部扩展,即在进行每一轮的运算过程的同时算出下一轮的密钥,并把下一轮的密钥暂存在SRAM里,使得密钥扩展与加/解密运算并行执行;加密和解密优化设计是将轮函数查表操作中的四个操作表查询工作合并成一个操作表查询工作,同时为了使加密代码在解密代码中可重用,节省硬件资源,在解密过程中采用了与加密相一致的过程顺序。 根据上述的优化设计,基于ARM核嵌入式系统的ADS开发环境,提出了AES实现的软硬件方案、AES加密模块和解密模块的实现方案以及测试方案,总结了基于ARM下的高效编程技巧及混合接口规则,在集成开发环境下对算法进行了实现,分别得出了初始密钥为128bits、192bits和256bits下的加密与解密的结果,并得剑了正确验证。在性能测试的过程中应用编译器的优化选项和其它优化技巧优化了算法,使算法具有较高的加密速度。
上传时间: 2013-04-24
上传用户:liansi
该课题通过对开放式数控技术的全面调研和对运动控制技术的深入研究,并针对国内运动控制技术的研究起步较晚的现状,结合激光雕刻领域的具体需要,紧跟当前运动控制技术研究的发展趋势,吸收了世界开放式数控技术和相关运动控制技术的最新成果,采纳了基于DSP和FPGA的方案,研制了一款比较新颖的、功能强大的、具有很大柔性的四轴多功能运动控制卡.该论文主要内容如下:首先,通过对制造业、开放式数控系统、运动控制卡等行业现状的全面调研,基于对运动系统控制技术的深入学习,在比较了几种常用的运动控制方案的基础上,确定了基于DSP和FPGA的运动控制设计方案,并规划了板卡的总体结构.其次,针对运动控制中的一些具体问题,如高速、高精度、运动平稳性、实时控制以及多轴联动等,在FPGA上设计了功能相互独立的四轴运动控制电路,仔细规划并定义了各个寄存器的具体功能,设计了功能完善的加/减速控制电路、变频分配电路、倍频分频电路和三个功能各异的计数器电路等,完全实现了S-曲线升降速运动、自动降速点运动、A/B相编码器倍频计数电路等特殊功能.再次,介绍了DSP在运动控制中的作用,合理规划了DSP指令的形成过程,并对DSP软件的具体实现进行了框架性的设计.然后,根据光电隔离原理设计了数字输入/输出电路;结合DAC原理设计了四路模拟输出电路;实现了PCI接口电路的设计;并针对常见的干扰现象,提出了有效的抗干扰措施.最后,利用运动控制卡强大的运动控制功能,并针对激光雕刻行业进行大幅图形扫描时需要实时处理大量的图形数据的特别需要,在板卡第四轴完全实现了激光控制功能,并基于FPGA内部的16KBit块RAM,开辟了大量数据区以便进行大幅图形的实时处理.
上传时间: 2013-06-09
上传用户:youlongjian0
· 摘要: MATLAB是一种建立在向量、数组、矩阵基础上,面向科学和工程计算的高级语言,为科学研究和工程计算提供了一个方便有效的工具.该文简要介绍了B样条和B样条小波的构成,并利用MATLAB语言编写了绘制任意阶B样条和B样条小波图形的程序.
上传时间: 2013-04-24
上传用户:sqq
·内容简介 本书从51系列单片机的一般知识出发,将ARM处理器和51系列单片机进行对比,引导读者去理解和学习ARM处理器的知识。内容分为3部分:第1部分是前4章,从大家所熟悉的51系列单片机的基础知识开始,介绍ARM处理器的基本知识,包括ARM和51系列的对比、中断处理系统、寄存器和存储器结构等;第2部分是5~9章,详细比较ARM指令和51系列指令之间
上传时间: 2013-07-21
上传用户:WANGXIAN001
AVR/51 progisp下载器及其USBasp驱动(包含xp/win7 32/64位)
上传时间: 2013-07-17
上传用户:waizhang