一本很好的汇编语言教程,跟大家一起分享 课程介绍 第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
LCD液晶菜单 最大支持253级菜单 每增加一级菜单消耗4字节RAM 方便移植
标签: Driver_menu 7565 ST
上传时间: 2013-05-29
上传用户:fairy0212
在数字电视系统中,MPEG-2编码复用器是系统传输的核心环节,所有的节目、数据以及各种增值服务都是通过复用打包成传输流传输出去。目前,只有少数公司掌握复用器的核心算法技术,能够采用MPEG-2可变码率统计复用方法提高带宽利用率,保证高质量图像传输。由于目前正处广播电视全面向数字化过渡期间,市场潜力巨大,因此对复用器的研究开发非常重要。本文针对复用器及其接口技术进行研究并设计出成形产品。 文中首先对MPEG-2标准及NIOS Ⅱ软核进行分析。重点研究了复用器中的部分关键技术:PSI信息提取及重构算法、PID映射方法、PCR校正及CRC校验算法,给出了实现方法,并通过了硬件验证。然后对复用器中主要用到的AsI接口和DS3接口进行了分析与研究,给出了设计方法,并通过了硬件验证。 本文的主要工作如下: ●首先对复用器整体功能进行详细分析,并划分软硬件各自需要完成的功能。给出复用器的整体方案以及ASI接口和DS3接口设计方案。 ●在FPGA上采用c语言实现了PSI信息提取与重构算法。 ●给出了实现快速的PID映射方法,并根据FPGA特点给出一种新的PID映射方法,减少了逻辑资源的使用,提高了稳定性。 ●采用Verilog设计了SI信息提取与重构的硬件平台,并用c语言实现了SDT表的提取与重构算法,在FPGA中成功实现了动态分配内存空间。 ●在FPGA上实现了.ASI接口,主要分析了位同步的实现过程,实现了一种新的快速实现字节同步的设计。 ●在FPGA上实现了DS3接口,提出并实现了一种兼容式DS3接口设计。并对帧同步设计进行改进。 ●完成部分PCB版图设计,并进行调试监测。 本复用器设计最大特点是将软件设计和硬件设计进行合理划分,硬件平台及接口采用Verilog语言实现,PSI信息算法主要采用c语言实现。这种软硬件的划分使系统设计更加灵活,且软件设计与硬件设计可同时进行,极大的提高了工作效率。 整个项目设计采用verilog和c两种语言完成,采用Altera公司的FPGA芯片EP1C20,在Quartus和NIOS IDE两种设计平台下设计实现。根据此方案已经开发出两台带有ASI和DS3接口的数字电视TS流复用器,经测试达到了预期的性能和技术指标。
上传时间: 2013-08-03
上传用户:gdgzhym
性价比超高的U盘读写模块-PB375A PB375A是一个傻瓜化、简单化的U盘读写解决方案。您无需了解繁琐USB HOST底层协议和FAT文件系统,只需要将您的系统mcu与模块通过SPI或者UART通信,操作几个简单命令,便可完成读写创建删除文件等等功能,让您的系统非常简单快速的增加U盘读写功能。该解决方案是目前国内性价比最高的解决方案。可以根据您的需求提供芯片或者模块,为您不断压缩成本,占领市场先机。 基本不需要占用单片机系统的存储空间,最少只需要几个字节的RAM 和几百字节的代码。 价格 :相比51MCU+SL811/CH375方案有着极其强的价格优势 功能:新建、删除、读写数据,打开关闭文件 检测U盘是否存在,满足单片机及嵌入式系统读写操作U盘的要求。 技术特征 # ● 用于嵌入式系统/单片机读写U 盘、闪盘、闪存盘、USB 移动硬盘、USB 读卡器等。 ● 支持符合USB 相关规范基于Bulk-Only 传输协议的各种U 盘/闪存盘/外置硬盘。 ● 支持文件系统FAT12 和FAT16 及FAT32 ● 文件操作功能:新建、删除、读写数据,打开关闭文件等。 ● SPI接口,支持3.3V电平 ● 单芯片解决方案,该模块只需要一个主控芯片外加少量的电容电阻便可,相对于51MCU+SL811/CH375的模块,无论模块尺寸还是成本都有着极大的优势。 ● 模块尺寸:31mm*36mm ● 该模块可根据要求进行定制 # 丰富的例程代码帮助您更好的开发 # 更多详情请查看资料或与我们联系
上传时间: 2013-04-24
上传用户:安首宏A
随着软硬件技术的不断发展,嵌入式系统的应用越来越广泛,嵌入式技术也全面渗透到日常生活的每一个角落。掌上汉语学习机系统的开发是为满足对汉语学习有需要的人群。随着经济、技术的不断提高,中国逐渐走向国际化,汉语学习人员的人数也不断增加,开发出一款掌上汉语学习机系统是有充分的市场需求的。 系统的开发环境是基于ARM-Linux开发平台,并应用了嵌入式开发的相关关键技术,包括嵌入式图形用户界面系统MiniGUI和嵌入式数据库SQLite,系统开发的目的是在这些技术的基础上,为需要学习汉语的人员提供一款界面友好、功能丰富的语言学习工具。 本文主要讲述的是掌上汉语学习机系统的软件开发过程以及开发过程中涉及的开发环境及开发技术。随着手持设备的硬件条件的提高,嵌入式系统对轻量级GUI的需求越来越迫切,图形用户界面的支持是实现一个完善的语言学习系统的基础,本文首先从图形用户界面的历史、技术特点、结构模型、发展状况等方面做了介绍,然后介绍了MiniGUI的体系结构和版本,以及移植的方法和过程,还详细阐述了应用程序开发中对MiniGUI函数库的使用和调用方法。同时一个简单实用的数据库的支持会为系统中的数据处理和组织提供方便,本项目中有六个字典和其它学习程序,对数据的处理也相当多,本文介绍了嵌入式数据库的知识和Sqlite数据库在项目中的使用和开发技术。最后,以系统中的单位换算模块为例详细介绍了应用程序的开发过程。本文的内容涉及了嵌入式Linux软件开发的主要技术,在ARM-Linux嵌入式开发领域具有很强的实践意义。
上传时间: 2013-06-15
上传用户:songrui
数字通信系统中,在实际信道上传输数字信号时,由于信道传输特性不理想及噪声的影响,接收端所收到的数字信号不可避免地会发生错误。为了减小误码率,提高接收质量,必须采用差错控制编码。对于数字视频通信系统这类高码率,高要求的系统,为了提供优良的图象质量,采用差错控制编码尤为重要。 本文采用的DVB-T系统差错控制技术是针对于数字视频通信而设计的,提出了纠错编码结合交织技术的实现方案,即RS(204,188,8)截短码、卷积交织、卷积码三种技术的级联。各技术中的参数设计为输入的MPEG-2传输流(TS流)提供了便利,在编码后可以保持传输流的帧结构和同步字节不改变,使接收端的同步捕获和同步跟踪成为可能。 本文首先简要介绍了差错控制技术,DVB-T系统,以及硬件实现所用到的FPGA实现方法。然后分别研究RS码、卷积交织、卷积码的编解码原理,并提出了三类技术的硬件实现方案。其中,重点论述了RS码解码的硬件实现。将RS码解码分为四个模块:伴随式计算,BM迭代,钱搜索和错误值计算,分别讲述每个模块的电路设计方案并给出仿真结果。最后,将该差错控制系统应用于一个输出速率恒定的实际数字视频通信系统中,按系统需要,加入了接口电路和速率控制的设计。
上传时间: 2013-04-24
上传用户:gcs333
2000年10月2日,美国国家标准与技术研究所宣布采用Rijndael算法作为高级加密标准,并于2002年5月26日正式生效,AES算法将在今后很长一段时间内,在信息安全中扮演重要角色。因此,对AES算法实现的研究就成为了国内外的热点,会在信息安全领域得到广泛的应用。用FPGA实现AES算法具有快速、灵活、开发周期短等优点。 本论文就是针对AES加、解密算法在同一片FPGA中的优化实现问题,在深入分析了AES算法的整体结构、基本变换以及加、解密流程的基础上,对AES算法的加、解密系统的FPGA优化设计进行了研究。主要内容为: 1.确定了实现方案以及关键技术,在比较了常用的结构后,采用了适合高速并行实现AES加、解密算法的结构——内外混合的流水线结构,并给出了总体的设计框图。由于流水线结构不适用于反馈模式,为了达到较高的运算速度,该系统使用的是电码本模式(ECB)的工作方式; 2.对各个子模块的设计分别予以详细分析,结合算法本身和FPGA的特点,采用查表法优化处理了字节代换运算,列混合运算和密钥扩展运算。同时,考虑到应用环境的不同,本设计支持数据分组为128比特,密钥长度为128比特、192比特以及256比特三种模式下的AES算法加、解密过程。完成了AES加、解密算法在同一片FPGA中实现的这个系统的优化设计; 3.利用QLJARTUSII开发工具进行代码的编写工作和综合编译工作,在 MODELSIM中进行仿真并给出仿真结果,给出了各个模块和整个设计的仿真测试结果; 4.和其他类似的设计做了横向对比,得出结论:本设计在保证了速度的基础上实现了资源和速度的均衡,在性能上具有较大的优势。
上传时间: 2013-05-25
上传用户:wcl168881111111
利用混沌的对初值和参数敏感、伪随机以及遍历等特性设计的加密方案,相对传统加密方案而言,表现出许多优越性能,尤其在快速置乱和扩散数据方面.目前,大多数混沌密码倾向于软件实现,这些实现方案中数据串行处理且吞吐量有限,因而不适合硬件实现.该论文分别介绍了适合FPGA(现场可编程门阵列)并行实现的序列密码和分组密码方案.序列密码方案,对传统LFSR(线性反馈移位寄存器)进行改进,采用非线性的混沌方程代替LFSR中的线性反馈方程,进而构造出基于混沌伪随机数发生器的加密算法.分组密码方案,从图像置乱的快速性考虑,将两维混沌映射扩展到三维空间;同时,引入另一种混沌映射对图像数据进行扩散操作,以有效地抵抗统计和差分攻击.对于这两种方案,文中给出了VHDL(硬件描述语言)编程、FPGA片内功能模块设计、加密效果以及硬件性能分析等.其中,序列密码硬件实现方案,在不考虑通信延时的情况下,可以达到每秒61.622兆字节的加密速度.实验结果表明,这两种加密算法的FPGA实现方案是可行的,并且能够得到较高的安全性和较快的加密速度.
上传时间: 2013-04-24
上传用户:yx007699
5月1日凌晨发布第一测试版 功能介绍: 1.生成中英文数字混合的字符串的字模数据. 2.可选择字体,大小,并且可独立调整文字的长和宽,生成任意形状的字符。 3.各种旋转,翻转文字功能 4.任意调整输出点阵大小,并任意调整字符在点阵中的位置。 5.字模数据输出可自定义各种格式,系统预设了C语言和汇编语言两种格式,并且可自己 定义出新的数据输出格式;每行输出数据个数可调。 6.支持四种取模方式:逐行(就是横向逐行取点),逐列(纵向逐列取点),行列(先 横向取第一行的8个点作为第一个字节,然后纵向取第二行的8个点作为第二个字节……), 列行(先纵向取第一列的前8个点作为第一个字节,然后横向取第二列的前8个点作为第二个 字节……) 7.支持阴码(亮点为1),阳码(亮点为0)取模 8.支持纵向(第一位为低位)(,倒向第一位为高位)取模 9.输出数制可选16进制或10进制 10.可生成索引文件,用于在生成的大量字库中可快速检索到需要的汉字 11.动态液晶面板彷真,可调节彷真面板象素点大小和颜色 12.图形模式下可任意用鼠标作画,左键画图,右键擦图。 12.旋转,翻转,平移等字符模式下的功能也可用与对BMP图象的处理 版本为pctolcd1.94 5月1日晚上发布第二测试版 更新如下: 1.增加锁定点阵大小功能,例如可锁定24X24点阵大小,然后调节独立调节字点阵的大小 2.增加热键功能,可用光标配合Ctrl,Shift对文字大小和位置修改 3.增加精简输出格式选项 4.把文字输入框换成了文字输入组合框,这样就可以保存历史纪录。 5.输出数据会自动清除以前的数据 6.可隐藏自定义格式,简化操作 7.一些小的BUG修正。 版本为pctolcd2.03 5月3日凌晨发布第三测试版 更新如下: 1.增加了一些小东西,例如演示动画一类的,我懒的一一写了 2.改掉一些可恶的小BUG,例如点阵输入框的自动完成。 3.增加大量文字处理和导入TXT文本文件功能,并且可以去除文本中的空白和重复字符, 可以对文本进行排序,适合于生成小字库。我这里测试是3万多字的TXT文件在2分钟内转成16X16点阵的字库文件。 版本号为pctolcd2.53 由于本软件侧重于对字符的处理,所以在图象方面功能较弱,请见晾。 5月8日发布正式版 正式版已经开始朝着液晶字库生成软件的方向进化了,我在后来的更新中把主要精力也放 在这部分,由于我目前还没有发现有同类的软件具备这个功能,也无法得到任何的参考,只能 自己摸索前进,所以如果还有不方便的地方请大家多提意见. 具体更新如下: 1.重写大部分的内核代码以配合汉字库生成的功能,目前这个内核已经进行了反复的测试, 相信稳定性和速度较前一版本有了巨大的提高. 2.去掉那个比较愚蠢的热键区了,因为用处不大 3.增加汉字库生成功能,这是最重要的改进之处,下文将详细介绍. 4.修正许多小BUG,使软件更加成熟些. 5月12日发布完美版 这次发布的PCtoLCD2002完美版与前一版本相比没有增加太多的功能,因为我觉得现有的这些功能已经足够用于生成各种字模的需要了,所以完美版的主要工作是反复测试,精心去除各种BUG,以及调节一些细微之处,目的当然就是追求完美!不过世上不会有真正完美的东西,这个软件也不例外,而且这个软件从头至尾全部是我一个人编写完成,精力有限,难免会顾此失彼,如果大家发现了这个版本中存在的BUG,请及时告诉我。 更新说明: 1。界面采用新的字体,不会再有那种难看的黑色粗体字,比以前的要漂亮多了。 2。加入全面的提示帮助,尽量减少普通用户的各种疑惑。 3。修正生成文件的扩展名的一些BUG,不会总是加上FON的扩展名了。 4。修正生成字模数据的一些格式BUG,现在生成的C51格式字模数据基本上可以直接粘贴到源程序中使用而不需要修改了 5。加入新的字模数据格式调整项,允许用户更自由的定制自己需要的数据格式 6。最重要的更新:全面支持保存当前设置功能,用户设置的字模格式,主窗口状态和字库生成窗口选项信息均可保存,下一次打开窗口时不用重新设置。 7。修正了新建图象时会自动跳到图形模式的BUG 8。增加输出紧凑格式数据选项,可以生成不包含空白行的字模数据。 9。完善了每行数据显示个数的功能,可以任意设置每行显示的数据个数,并同时可以设置每行索引数据显示个数。 10。修正了取模说明的一些错误,并改动了格式。 11。现在当用户选择10进制输出时,会自动去掉生成字模数据前的“0x",或后面的“H”,选择16进制时则会自动加上。 12。对各个窗体重新设计以全面适应最大化的需要,如果您觉得当前窗口不够大,可以最大化使用。 13。增加生成英文点阵字库功能,可自动生成ASCII码从0-127的任意点阵字库,使用方法同生成国标点阵字库功能。 14。再次优化代码,去掉各种调试信息,使程序速度再快一些。 15。还有许多细微的调整我记不清了…… 需要注意的地方: 在测试的过程中我发现了一个问题:在WIN98或WINME下当用户直接生成特大点阵的字模时(例如320*320,1024*768的汉字字模),此时由于数据量非常庞大,而WIN98/WINME会有64K的数据容量限制,所以在主窗口中是无法得到全部的字模数据的,这时您需要使用字库生成功能,通过形成一个数据文件才能得到完整的字模数据。 我认为到现在这个软件功能已经很完善了,但可能使用上有点不方便,如果你有什么不明白 的地方,可以发帖子或发MAIL询问
上传时间: 2013-07-26
上传用户:sssnaxie
本文从AES的算法原理和基于ARM核嵌入式系统的开发着手,研究了AES算法的设计原则、数学知识、整体结构、算法描述以及AES存住的优点利局限性。 针对ARM核的体系结构及特点,对AES算法进行了优化设计,提出了从AES算法本身和其结构两个方面进行优化的方法,在算法本身优化方面是把加密模块中的字节替换运算、列混合运算和解密模块中的逆列混合运算中原来的复杂的运算分别转换为简单的循环移位、乘和异或运算。在算法结构优化方面是在输入输山接口上采用了4个32位的寄存器对128bits数据进行了并行输入并行输出的优化设计;在密钥扩展上的优化设计是采用内部扩展,即在进行每一轮的运算过程的同时算出下一轮的密钥,并把下一轮的密钥暂存在SRAM里,使得密钥扩展与加/解密运算并行执行;加密和解密优化设计是将轮函数查表操作中的四个操作表查询工作合并成一个操作表查询工作,同时为了使加密代码在解密代码中可重用,节省硬件资源,在解密过程中采用了与加密相一致的过程顺序。 根据上述的优化设计,基于ARM核嵌入式系统的ADS开发环境,提出了AES实现的软硬件方案、AES加密模块和解密模块的实现方案以及测试方案,总结了基于ARM下的高效编程技巧及混合接口规则,在集成开发环境下对算法进行了实现,分别得出了初始密钥为128bits、192bits和256bits下的加密与解密的结果,并得剑了正确验证。在性能测试的过程中应用编译器的优化选项和其它优化技巧优化了算法,使算法具有较高的加密速度。
上传时间: 2013-04-24
上传用户:liansi