下载此文档

第4章程序编写和调试环境简介.ppt


文档分类:IT计算机 | 页数:约38页 举报非法文档有奖
1/38
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/38 下载此文档
文档列表 文档介绍
第4章: 程序编写和调试环境简介
程序的编写
简介
调试一个程序的简单步骤
头文件和命令文件
程序的编写
汇编伪指令分成7类(根据功能):
定义段的伪指令;
初始化常数的伪指令;
调准段程序计数器的伪指令;
引用其他文件的伪指令;
条件汇编伪指令;
在汇编时定义符号的伪指令;
执行其他功能的伪指令。
程序的编写
1. 段定义伪指令
作用:把汇编语言程序的各个部分划分在适当的段中。
.asect 创建具有绝对地址的初始化命名段;
.bss 为未初始化的变量保留空间;
.sect 定义已初始化的带命名段,其后的数据存入该段;
.text 该段包含了可执行的代码;
.usect 在一个未初始化的有命名的段中为变量保留空间。
.data 通常包含了初始化的数据;
段是通过叠加方式来建立的。,()。,。,,它可以连续地被分配到内存中。
程序的编写

. 在当前段中保留特点的位。汇编器用0填充这些保留位。用户可以通过把位数乘16来保留规定的字数。,指向保留位的第一个字;,指向保留位的最后一个字。
.byte 把一个或多个8位的值放入当前段的连续字中。,。
.field 将单个数值置入当前字规定的位数中。
. 计算以IEEE格式表示的单精度(32位)浮点数,并存放在当前段的连续字中,高位先存。.float能自动按域的边界排列,.bfloat不能。
. 把一个或多个16位数存放到当前段的连续字中。.int为无符号整型量,.word为带符号整型量。
. 把32位数存放到当前段连续的两个字中,高位字先存。.long能自动按长字的边界排列,.blong 却不能。
.string 把8位的字符从一个或多个字符串中传送到当前段中。
程序的编写
3. 段程序计数器(SPC)定位指令
.align 使SPC对准1字(16位)~128字的边界,这保证了紧接着该指令的代码从一个整字或页的边界开始。如果SPC已经定位于选定的边界,它就不会增加了。.align伪指令的操作数必须等于20~216之间的一个2的幂值(尽管超过27的值没有意义)。不同的操作数代表了不同的边界定位要求。
操作数为1是让SPC对准字边界;
操作数为2是让SPC对准长字(偶地址)边界;
操作数为128是让SPC对准页边界;
不带操作数时,其默认值为128,即对准页边界。
.even 调准SPC,使其指向下一个完整字。,。,,并把未用的位填0。
程序的编写
4. 引用其他文件的伪指令
.copy/.include 伪指令告诉汇编器开始从其他文件中读源语句。当汇编读完以后,继续从当前文件中读源语句。,。
.def 确认一个在当前模块中定义的且能被其他模块使用的符号,汇编器把这个符号存入符号表中。
.ref 确认一个在当前模块中使用但在其他段中定义的符号。汇编器把这个符号标注成一个未定义的外部符号,且把它装入目标符号表中,以便链接器能还原它的定义。
.global 表明一个外部符号,使其他模块在连接时可以使用。如果在当前段定义了该符号,那么该符号就可以被其他模块使用,;如果在当前段没有定义该符号,则使用了其他模块定义的符号,。一个未定义的全局符号只有当它在程序中使用的时候,链接器才对其进行处理。
程序的编写
5. 控制条件汇编的伪指令
.if/.elseif/.else/.endif 这些指令告诉汇编器,根据表达式的值条件汇编一块代码。.if 表示一个条件块的开始,如果条件为真就汇编紧接着的代码;.,,就汇编紧接着的代码;.endif结束该条件块。
.loop/.break/.endloop 告诉汇编器按照表达式的值循环汇编一块代码。.loop标注一块循环代码的开始;.break告诉汇编器当表

第4章程序编写和调试环境简介 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数38
  • 收藏数0 收藏
  • 顶次数0
  • 上传人中国课件站
  • 文件大小0 KB
  • 时间2011-08-29
最近更新