首页 > 知识点
       汇编语言程序示例
知识路径:  > 嵌入式系统软件基础知识  > 嵌入式系统程序设计  > 嵌入式程序设计语言  > 汇编语言(指令系统、寻址方式、伪指令、宏指令等)  > 汇编语言程序设计  > 汇编语言程序
考试要求:掌握      相关知识点:5个      


>>  更多  本知识点历年真题      
        下面分别以ARM和x86汇编语言为例,通过示例简要介绍汇编语言程序的基本格式。
               ARM汇编语言程序示例
               ARM汇编语言以段(section)为单位来组织源文件。段是相对独立的、具有特定名称的、不可分割的指令或数据序列。段又可以分为代码段和数据段,代码段存放执行代码,数据段存放代码运行时需要用到的数据。一个ARM源程序至少需要一个代码段,大的程序可以包含多个代码段和数据段。
               ARM汇编语言源程序经过汇编处理后生成一个可执行的映像文件(类似于Windows系统下的EXE文件)。该映像文件通常包括以下的三个部分:
               .一个或多个代码段,代码段通常是只读的。
               .零个或多个包含初始值的数据段,这些数据段通常是可读写的。
               .零个或多个不含初始值的数据段,这些数据段被初始化为0,通常是可读写的。
               链接器根据一定的规则将各个段安排到内存的不同位置,源程序中相邻的段在可执行映像文件中不一定是相邻的。
               x86汇编语言程序示例
               不同平台有不同的汇编语言相对应,实际应用系统中,开发人员可能会用汇编来实现部分功能以获得更高的性能。下面用一个程序段简要说明x86汇编语言程序的简单示例。
               设要利用某16位嵌入式CPU进行A/D采集,所设计的硬件电路(此处略)利用8255控制器C口中的PC0输出控制信号,利用PC7读入AD574的状态信号,再利用8255的A口和B口读入AD574转换好的12位数据。其中,8255控制器各个管脚及地址控制描述如下表所示。
               
               8255控制器各个管脚功能定义表
               根据相应硬件设计编写对应的数据采集程序,首先需要对8255进行初始化,然后进行数据采集。
               初始化8255程序段如下,先对8255(寻址其A口为C000H、寻址其控制寄存器为C003H)的工作模式进行配置。在给出的配置情况下,必须使得8255的A1 A0=11,即工作在寻址控制器模式下,同时保证8255的片选有效,即必须使得A15=A14=1,A13 =A12=A11=…=A2=0,因此给DX寄存器的地址为C003H,使8255的A口8位、B口8位及C口的高4位均设置为输入,C口的低4位设置为输出,将控制字写入8255的控制寄存器。
               
               在进行数据采集过程中,需要先通过8255的C口进行AD574的转换控制,要对C口操作,就需要设置A1 A0=10,再考虑到片选的有效性,需要给DX的地址是C002H。在进行一次数据转换时需要在PC0产生一个上升沿,所以要给C口输出配置为00H和01H。
               当从C口取出状态字后,需要借助C口的最高位STS进行转换完毕的状态判断,因此取出数据保存在AL寄存器,需要将其与80H进行与操作来判断最高位的完成状态。
               当判断结果是有效数据时候,需要分别从8255的A口和B口进行数据的获取,因此需要分别配置A口和B口的地址,依次为C000H和C001H。
               在进行12位数据合并时,需要通过与操作取出低4位数据,与#0FH进行与操作即可。
               数据采集程序段如下,
               
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

QQ 486577830

点击这里给我发消息

商务合作

QQ 486577830

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2026 All Rights Reserved 软考在线版权所有