第4章 'C54x的汇编语言程序设计


第4章 TMS320C54x汇编语言程序设计
2.标号 在使用标号时,标号的值是段程序计数器SPC的 当前值。 例如,若使用.word伪指令初始化几个字,则标 号将指到第一个字。
【例4.1.2】 标号格式举例。 … … ;假设汇编了某个其他代码 9 000000 10 000040 000A Start: .word 0Ah,3,7 000041 0003 标号,值为40h 000042 0007
第4章 TMS320C54x汇编语言程序设计
(1) 指令的操作数前缀 ② 用“*”作前缀
使用“*”符号作为前缀,汇编器将操作数作为 间接地址,即把操作数的内容作为地址。 例如: Label: LD * AR3, B 操作数*AR3指定一个间接地址。该指令将引导 汇编器找到寄存器AR3的内容作为地址,然后将该地 址中的内容装入指定的累加器B中。
Begin: 标 号
LD #NANHUA,AR1 ; 将1加载到AR1 助记符 操作数 注 释
第4章 TMS320C54x汇编语言程序设计
1. 源文件格式
语句的书写规则:
① 所有语句必须以标号、空格、星号或分号 (*或;)开始; ② 标号是可选项,若使用标号,则标号必须 从第一列开始; ③ 所有包含有汇编伪指令的语句必须在一行 完成指定; ④ 各部分之间必须用空格分开,Tab字符与空 格等效;
第4章 TMS320C54x汇编语言程序设计
(1) 指令的操作数前缀 ③ 用“@”作前缀
使用“@”符号作为前缀,汇编器将操作数作为 直接地址,即操作数由直接地址码赋值。 例如: Label: LD @ x, A
只要DP=0,将直接地址x中的内容装入指定的累 加器A中。
第4章 TMS320C54x汇编语言程序设计
1. ‟C54x应用软件开发流程
‟C54x应用软件的开发可在TI公司提供的开发环境中进行, 用户可以用C/C++语言或汇编语言编写源文件,经C编译器、 汇编器生成COFF格式的目标文件,再用链接器进行链接,生 成在’C54x上可执行的目标代码,然后利用调试工具对可执 行的目标代码进行仿真和调试。 当调试完成后,通过Hex代码转换工具,将调试后的可执 行目标代码转换成EPROM编程器能接受的代码,并将该代码固 化到EPROM中或加载到用户的应用系统中,以便DSP目标系统 脱离计算机单独运行。
和TC等,可编写汇编语言源程序。
2. 汇编 当汇编语言源程序编写好以后,可利用’C54x 的汇编器ASM500,对一个或多个源程序分别进行汇 编,并生成列表文件(.lst)和目标文件(.obj)。
第4章 汇编语言程序开发工具
3 汇编语言程序的编辑、汇编和链接过程
2. 汇编 常用的汇编命令:
asm500
第4章 TMS320C54x汇编语言程序设计
4.操作数 操作数是指指令中参与操作的数值或汇编伪指
令定义的内容,紧跟在助记符的后面,由一个或多个
空格分开。 操作数之间必须用逗号“,”分隔; 操作数可以是常数、符号或表达式; 操作数中的常数、符号或表达式可用来作为 地址、立即数或间接地址;
第4章 TMS320C54x汇编语言程序设计
4.操作数 (1) 指令的操作数前缀 汇编器允许指定的常数、符号或表达式作为地 址、立即数或间接地址。 作为操作数的前缀有三种情况: 使用“#”符号作为操作数的前缀; 使用“*”符号作为操作数的前缀; 使用“@” 符号作为操作数的前缀。
第4章 TMS320C54x汇编语言程序设计
第4章 TMS320C54x汇编语言程序设计
3.助记符 助记符用来表示指令所完成的操作,可以是汇 编语言指令、汇编伪指令、宏伪指令。 助记符指令:一般用大写,不能从第一列开始 ;
汇编伪指令:用来为程序提供数据和控制汇编进程。 以句号“.”开始,且用小写; 宏伪指令:用来定义一段程序,以便宏调用来调用这 段程序。以句号“.”开始,且用小写; 宏调用:用来调用由宏伪指令定义的程序段。
TMS320C54x
第4章 TMS320C54x汇编语言程序设计
2. ‟C54x的开发工具
TI公司提供的DSP开发环境和工具主要包括以下
三个部分:
代码生成工具
代码调试工具 实时操作系统
第4章 TMS320C54x汇编语言程序设计
2. ‟C54x的开发工具
(1)代码生成工具:
C编译器:用来将C/C++语言源程序自动编译为 ’C54x的汇编语言源程序。 汇编器:用来将汇编语言源文件汇编成机器语 言COFF目标文件。 链接器:将汇编生成的、可重新定位的COFF目 标模块组合成一个可执行的COFF目标模块。 文档管理器:允许用户将一组文件(源文件或 目标文件)集中为一个文档文件库。
2. ‟C54x的开发工具
(2)代码调试工具:
C/汇编语言源码调试器:与软件仿真器、评 价模块、软件开发系统、软件仿真器等配合使用。
软件仿真器:是一种模拟DSP芯片各种功能并
在非实时条件下进行软件调试的调试工具,它不需 目标硬件支持,只需在计算机上运行。 初学者工具DSK:是TI公司提供给初学者进行 DSP编程练习的一套廉价的实时软件调试工具。
常用的汇编器命令:
lnk500 %1.cmd
%1.cmd: 链接命令文件名,该文件须指明目标文件、 lnk500: 调用链接器命令 输入文件、输出文件、链接选项和存储器配置要求等。
第4章 TMS320C54x汇编语言程序设计
4.2 汇编语言程序的编写方法
TMS320C54x汇编语言源程序由源语句组成。这些 语句可以包含汇编语言指令、汇编伪指令和注释。程 序的编写必须符合一定的格式,以便汇编器将源文件 转换成机器语言的目标文件。 汇编语言源程序的格式、各种常数、符号、字符
第4章 TMS320C54x汇编语言程序设计
1. ‟C54x应用软件开发流程 开发过程的目的是产生一个可以由’C54x目标系 统执行的模块。
宏源文件 C源文件 存档器 汇编 源文件 C编译器 宏库 汇编器 汇编 源文件 存档器 COFF 目标文件
建库工具
目标 文件库
链接器
运行时 支持库 调试工具
可执行的 COFF文件 HEX代码 转换工具 EPROM 编程器 绝对地址 列表器 交叉引用 列表器
%1
-s
-1 -x
生成一个 交叉汇编表 生成一个 列表文件.lst 将程序所有定义的符号放 在目标文件的符号表中
源文件名 调用汇编器命令
第4章 汇编语言程序开发工具
3 汇编语言程序的编辑、汇编和链接过程
3. 链接 所谓链接,就是利用’C54x的链接器LNK500, 根据链接器命令文件(.cmd)对已汇编过的一个或多 个目标文件(.obj)进行链接,生成输出文件(.out) 和存储器映像文件(.map) 。
(1) 指令的操作数前缀 ① 用“#” 作前缀 使用“#”号作为前缀,汇编器将操作数作为 立即数处理。即使操作数是寄存器或地址,也将作 为立即数。 如果操作数是地址,汇编器将把地址处理为一 个数值,而不使用地址的内容。 例如: Label:
ADD # 99, B
操作数# 99是一个立即数。
第4章 TMS320C54x汇编语言程序设计
示意图
. cmd 链接命 令文件
.asm 源文件 .obj 目标文件 .out 输出文件文本辑器汇编器-l
链接器
-m
-o
调试程序
. lst 列表文件
. map 存储器 映像文件
十六进制 转换程序 HEX500
第4章 汇编语言程序开发工具
3 汇编语言程序的编辑、汇编和链接过程
1. 编辑
利用各种文本编辑器,如笔记本、WORD、EDIT
2.标号
所有汇编指令和大多数汇编伪指令都可以选用标 号,供本程序或其它程序调用。 ① 标号必须从语句的第1列写起,其后为冒号 “:” ② 标号为任选项,若不使用标号,则语句的 第一列必须是空格、星号或分号; ③ 标号是由字母、数字以及下划线和美元符 号等组成,最多可达32个字符; ④ 标号分大小写,且第一个字符不能是数字。
对于完成一般功能的代码,这两种语言都可使用,但对
于一些运算量很大的关键代码,最好采用汇编语言来完成, 以提高程序的运算效率。 (2) 选择开发工具和环境 ’C54x提供了两种开发环境。即非集成开发环境和集成 开发环境CCS。
第4章 TMS320C54x汇编语言程序设计
4.1 TMS320C54x软件开发过程
第4章 TMS320C54x汇编语言程序设计基础 内容提要
汇编语言程序设计是应用软件设计的基础,主要 任务是利用汇编指令和伪指令编写源程序以完成指定 的功能。
本章将结合例子介绍介绍代码生成工具,包 括‟C54x软件开发流程、汇编语言程序的编写、编辑、 汇编和链接过程、COFF段的一般概念、汇编器和链接 器处理段的方法以及程序的重定位和TMS320C54x汇 编语言源程序设计的基本方法。
第4章 TMS320C54x汇编语言程序设计
3 汇编语言程序的编辑、汇编和链接过程
汇编语言源程序可以在任何一种文本编辑器中 进行。如笔记本、WORD、EDIT、TC等。 当汇编语言源程序编写完成后,还必须经过汇 编和链接后才能运行。
第4章 汇编语言程序开发工具
3 汇编语言程序的编辑、汇编和链接过程
第4章 TMS320C54x汇编语言程序设计
4.2.1 汇编语言源程序格式
1. 源文件格式 助记符指令源语句的每一行通常包含4个部分: 标号区、助记符区、操作数区和注释区。 助记符指令语法格式: [标号][:]
NANHUA
助记符
.set 1
[操作数]
[; 注释]
; 符号NANHUA=1
【例4.1.1】 助记符指令源语句举例。
第4章 TMS320C54x汇编语言程序设计
合集下载

汇编语言程序设计(第四版)第4章【课后答案】

汇编语言程序设计(第四版)第4章【课后答案】

汇编语言程序设计(第四版)第4章【课后答案】汇编语言程序设计第四版【课后习题答案】--囮裑為檤第4章基本汇编语言程序设计〔习题4.1〕例题4.2如果要求算术右移8位,如何修改程序。

〔解答〕思路:首先由最高位字节向次低位字节传送……次低位字节向最低位字节传送(共7次);再判最高位字节符号位,如为0,送00h到最高位字节;如为1,送ffh到最高位字节。

传送可参考例题4.2,不过应从第一号字节送第零号字节,……最高位字节向次低位字节传送;也可以用循环来完成:.model small.stack 256.dataqvar dq 1234567887654321h.code.startupmov cx,7mov si,1again: mov al, byte ptr qvar[si]mov byte ptr qvar[si-1],alinc siloop againtest al,80hjz ezzmov bl,0ffhjmp doneezz: mov bl,0done: mov byte ptr qvar[7],bl.exit 0end〔习题4.2〕例题4.2如果要求算术左移7位,如何用移位指令实现。

〔解答〕思路:可设计外循环体为8个字节左移一次,方法是:最低位字节算术左移一次,次低位字节至最高位字节依次带CF 位循环左移一次(内循环共8次),外循环体控制执行7次即可。

.model small.stack 256.dataqvar dq 1234567887654321h.code.startupmov dx, 7 ;外循环次数mov ax, byte ptr qvar[0] ;最低位字节送axlpp: shl ax, 1 ;最低位字节左移一次,其d7移入CF位mov si, 1mov cx, 7 ;内循环次数again: rcl byte ptr qvar[si], 1 ;高位字节依次左移P50inc siloop againdec dxjnz lpp.exit 0.end〔习题4.3〕将AX寄存器中的16位数连续4位分成一组,共4组,然后把这4组数分别放在AL、BL、CL和DL寄存器中。

第四章 C54xDSP汇编语言与混合编程

第四章 C54xDSP汇编语言与混合编程

例:00000000B=0(十进制) 0101010B=42 (十进制) 2、八进制整型常数 后缀加Q或q;或前缀加0 例:10Q=8(十进制) 0226=150 (十进制) 3、十进制整型常数 无后缀 例:1000=1000(十进制) -32768=-32768 (十进制)
4、十六进制整型常数 后缀加H或h;或前缀加0x 例:10H=16(十进制) 0x12=18 (十进制) 5、浮点常数 浮点数表示方法:[+|-][nn].[nn[E|e[+|-]nn]] nn代表十进制数字串,浮点数前可带+或-,必须制定小数 点。 例:4.e5为有效浮点数,但4e5为非法浮点数。 4.0 .4 -.314e13 +314.59e-2
堆栈的使用方法
在用堆栈之前,要在RAM中开辟一个堆栈区.方法: size .set 120 stack .usect “STACK”, size STM # stack + size, SP 前两句是在RAM中定义一个名为STACK的保留空间, 共120个单元.第三句将这个空间的高地址赋给SP. 设置好就可以用了 CALL pmad RET
2、初始化段 .text [段起点] .data [段起点] .sect “段名”[,段起点] 其中,段起点是可选项,若定义就是为段程序计数器(SPC) 定义一个起始值,若缺省,则SPC为0。 3、子段 子段语法:基段名:子段名 例如:在.text段内建立一个名为_fuct的子段 .sect “.text: _fuct”
.lst列表文件
注意: 汇编器遇到.text, .data, .sect命令时立即停止汇编至当前块 中,且开始汇编至相应的块中。当会期遇到.bss, .usect命 令并不结束当前块的开始一个新块,只是暂时离开但前块。 .lst列表文件由四部分组成 第一部分(field1):源程序的行号 第二部分(field2):段程序计数器 第三部分(field3):目标代码 第一部分(field1):源程序

第4章--TMS320C54x软件开发1

第4章--TMS320C54x软件开发1
Macname .macro[parameter 1][,…,parameter n]
…… [.mexit] .endm
返回本节
宏定义例子: Add3 .macro P1,P2,P3,ADDRP LD *(P1),A ADD *(P2), A ADD *(P3), A STL A,*(ADDRP) 宏调用例子 :
9
BC aloop, AGEQ
10
.data
11 ivals .word 0cch,0ddh,0eeh
12 var2 .usect “newvars”, 2
13 inbuf .usect “newvars”, 8
14
.text
15 mpy: LD 0Ah, B
16 mloop: MPY #0A, B
链接器对段旳处理有两个功能。首先,它将汇编 器产生旳COFF目旳文件(.obj文件)中旳多种段 作为输入段,当有多种文件进行链接时,它将输 入段组合起来,在可执行旳COFF输出模块中建 立各个输出段。其次,链接器为输出段选择存储 器地址。
图4-4 链接器默认旳存储器分配 返回本节
4.3 常用汇编伪指令
段命令应用举例
.text 100d f010 0001 f842 0001 110a f166 000a f868 0006
.data 0044 0055 0088 0456 00cc 00dd 00ee
.vectors 0044 0088
.bss 保存8个字
.newvars 保存10个字
解释:本例共5个段 .text:具有7个字旳代码 .data:7个字旳数据 .vectors:已初始化命名段
MEMORY: 对存储器进行分配 SECTIONS :对各段在存储器旳位置进行分配

第4章_TMS320C54x的软件开发过程

第4章_TMS320C54x的软件开发过程

2015年6月26日
DSP原理及应用
8
第4章 TMS320C54x的软件开发过程
2. ’C54x的开发工具
(2)代码调试工具:
C/汇编语言源码调试器:与软件仿真器、评价模块 、软件开发系统、软件模拟器等配合使用。 软件仿真器:一种模拟DSP芯片各种功能并在非实时 条件下进行软件调试的调试工具,它不需目标硬件支持 ,只需在计算机上运行。
2015年6月26日 DSP原理及应用 7
第4章 TMS320C54x的软件开发过程
2. ’C54x的开发工具
(1)代码生成工具:
绝对制表程序(Absolute lister):将链接后的 目标文件作为输入,生成.abs输出文件。 交叉引用制表程序(Cross-reference lister): 利用目标文件生成一个交叉引用清单,列出链接的源文件 中的符号以及它们的定义和引用情况。
2015年6月26日 DSP原理及应用 6
第4章 TMS320C54x的软件开发过程
2. ’C54x的开发工具
(1)代码生成工具:
助记符指令—代数式指令翻译器(Mnemonic-toalgbraic translator utility):将包含助记符指令的汇 编语言源文件转换成包含代数式指令的汇编语言源文件。 建库实用程序(Library-build utility):建立用 户自己使用的、并用C/C++语言编写的支持运行的库函数。 十六进制转换程序(Hex conversion utility): 可以很方便地将COFF目标文件转换成TI、Intel、Motorola 等公司的目标文件格式。
集成开发环境(CCS):提供了环境设置、源文件编 辑、程序调试、跟踪和分析的工具,可帮助用户在软件 环境下完成编辑、编译、链接、数据分析等工作。

第4章_'C54x的汇编语言程序设计

第4章_'C54x的汇编语言程序设计

DSP原理及应用
4.1.3 汇编源程序中的符号
通常,标号是局部变量,在一个文件中
局部使用的标号必须是唯一的。 助记符操作码和汇编伪指令名(不带前缀 “.”)为有效标号。 标号分大小写。 例如:ABC,Abc,abc是3个不同的符 号。
DSP原理及应用
4.1.4 汇编源程序中的表达式
【例4.1.4】 段伪指令的使用。
15 ************************************ 16 * 开始汇编到命名的初始化段 * 17 * var_defs * 18 ************************************ 19 000000 .sect “var_defs” 20 000000 0011 .word 17,18 000001 0012 21
7
【例4.1.4】 段伪指令的使用。
8 9 10 11 000000 12 000000 000001 13 000002 000003 14 ************************************ * 开始汇编到.data段 * ************************************ .data 0009 .word 9,10 000A 000B .word 11,12 000C
第4章 TMS320C54x汇编语言 程序设计


4.1 概述
4.1.1 汇编语言源程序格式 汇编语言程序以.asm为扩展名,可以用任意的编辑 器编写源文件。

一条语句占源程序的一行,长度可以是源文件编辑 器格式允许的长度,但汇编器每行最多读200个字符。 因此,语句的执行部分必须限制在200个字符以内。
以选用标号,供本程序或其它程序调用。 ① 标号必须从语句的第1列写起,其后 的冒号“:”可任选; ② 若不使用标号,则语句的第一列必须 是空格、星号或分号; ③ 标号是由字母、数字以及下划线和美 元符号等组成,最多可达32个字符; ④ 标号分大小写,且第一个字符不能是 数字。

第四章_TMS320C54x的软件开发_2

第四章_TMS320C54x的软件开发_2

【例4.5】 MEMORY命令的使用。 MEMORY { PAGE 0: ROM: origin=0c00h, length=1000h; origin=80h, length=200h;
PAGE 1:
}
SCRATCH: origin=60h, length=20h;
ONCHIP:
上述MEMORY命令所定义的系统的存储器配置如下: PAGE 0为程序存储器,名ROM,起始地址0C00H,长度4K字。 PAGE l为数据存储器,名SCRATCH,起始地址60H,长32字。 PAGE l为数据存储器,名ONCHIP,起始地址80H,长度512字。
把程序中的内容都汇编到.text段。
③汇编器对不同类型段的处理不同。
1. 未初始化段
• 未初始化段(Uninitialized sections)由.bss和.usect伪指令 建立。 • 未初始化段就是在目标存储器中的保留空间,以供程 序运行过程中的变量作为临时存储空间使用。
• 在目标文件中,这些段中没有确切的内容,通常它们
4.4.1 COFF文件中的段
段(Sections)是COFF文件中最重要的概念。 段——就是在编写汇编语言源程序时,采用的代码块或
数据块,它占据存储器的某个连续空间。
① 在编写汇编语言源程序时,程序是按段组织的; ② 每行汇编语句从属一个段,由伪指令标明该段的属性;
③ 一个目标文件中的每个段都是分开的和各不相同的。
1. MEMORY命令 作用:定义系统中所包含的各种形式的存储器,以及 它们占据的地址范围。 句法: MEMORY {
PAGE0: name 1[(attr)]: orign=constant, length=constant; PAGEl:name n[(attr)]: orign=constant, length=constant;

第04.1章 C54xDSP汇编语言


5、替代符号 可将字符串(变量)赋给符号,这时符号名与该变量等效, 成为字符串的别名。这种用来代表变量的符号称为替代符号。 与符号常量不同,替代符号可以被重新定义。
例: .asg “high”, AR2
6、局部标号
;寄存器AR2
局部标号是一种特殊的标号,使用的范围和影响是临时性 的。局部标号两种定义方法: (1)用$n来定义,n为0~9的十进制数字。 (2)用name?来定义,name是任何一个合法的符号名。
4、十六进制整型常数 后缀加H或h;或前缀加0x 例:10H=16(十进制) 0x12=18 (十进制)
5、浮点常数 浮点数表示方法:[±][n].[n][E|e][±][n] n代表一串十进制数,浮点数前可带+或-,必须指定小数 点。 例:99.e8为有效浮点数,但99e8为非法浮点数。 4.0 .4 -.314e13 +314.59e-2
自动化技术系 姜运芳
E-mail:jiangyf@
第四章 TMS320C54xDSP 汇编语言与混合编程
主要内容
汇编语言程序的编写方法 汇编指令 寻址方式 公共目标文件格式 汇编语言程序设计 混合编程

汇编语言程序的编写方法

汇编语言源程序格式

代数指令语法格式:
[标号区][:]
指令
[;注释区]
;符号SYM1=2 ;将2装入AR1 ;初始化字( 016H )
代数指令举例: SYM1 .set 2 start: AR1= #SYM1 .word 016H
汇编语言中的常数与字符串

汇编器支持8种类型常数,每个常数在汇编器内部都使用
32位保存,常数不作符号扩展。
指令系统中的符号和缩写

第4章 C54软件开发


ivals var2 inbuff mpy:
0AH,B
1 000000 2 000000 0044 000001 0055 000002 0066 3 000000 4 000003 0456 5 000000 6 000000 100D 7 000001 F010 000002 0001 8 000003 F842 000004 0001' 9 000004 10 000004 00CC 000005 00DD 000006 00EE 11 000000 12 000002 13 000005 14 000005 15 000005 110A 16 000006 17 000006 F066 000007 000A 18 000008 F868 000009 0006' 19 000000 20 000000 0044 000001 0088 21 22
初始化一或多个16位整数 初始化一或多个 位整数 初始化一或多个16位整数 初始化一或多个 位整数 初始化一或多个16位整数 初始化一或多个 位整数
初始化一或多个双精度浮点数
初始化一或多个32位整数 初始化一或多个 位整数 初始化一或多个字符串
常用汇编伪指令
类别
伪指令
. copy .include
.def .ref .global
常用汇编伪指令
类别 伪指令
.title .list .nolist 格式化输 出清单 .mlist .mnolist .length .width …
功能
指定文件标题 允许列表所选源语句 禁止列表所选源语句 允许列表宏扩展和循环块 禁止列表宏扩展和循环块 指定列表页长度 指定列表页宽度 …
name ---.bss .data .text X Z _VECSTART

第四章_TMS320C54x的软件开发_1


5.浮点数常量 由整数、小数点、小数部分和指数部分组成 浮点数常量:由整数 小数点、 浮点数常量 由整数、 +(-)nnn.nnnE(e)+(-)nnn 整数 小数 指数 有效的浮点数常量: 有效的浮点数常量 3.0、3.14、-0.314e13、+314.59e-2 、 、 、 6.字符常量 由单引号括住的一个或两个字符组成。它在机器内 字符常量:由单引号括住的一个或两个字符组成。 字符常量 由单引号括住的一个或两个字符组成 部由8位 码来表示一个字符。 部由 位ASCII码来表示一个字符。 码来表示一个字符 有效的字符常量: 内部表示为61h), '''D' (内部表示为 内部表示为2744h) 有效的字符常量:'a' (内部表示为 内部表示为 内部表示为 7.汇编时常量 用.set伪指令给一个符号赋值。 汇编时常量:用 伪指令给一个符号赋值 伪指令给一个符号赋值。 汇编时常量 例如: 例如: shift .set 3 将常数值3赋给符号 赋给符号shift ; 将常数值 赋给符号 LD #shift, A ; 再将 赋给 累加器 再将3赋给 赋给A累加器
.usect
.text
.def .ref .mmregs
确认一个在当前模块中定义, 能其他模块引用的符号 确认一个在其他模块中定义, 但能在本模块引用的符号 将DSP各寄存器名定义为全局 符号,这样就可以直接根据符 号引用寄存器
1. 段定义伪指令(5条) 段定义伪指令( 条 就是在编写汇编语言源程序时, 代码块或 段——就是在编写汇编语言源程序时,采用的代码块或数 就是在编写汇编语言源程序时 采用的代码块 据块,它占据存储器的某个连续空间。 据块,它占据存储器的某个连续空间。 在编写汇编语言源程序时,程序是按段组织的; ① 在编写汇编语言源程序时,程序是按段组织的; ② 每行汇编语句从属一个段,由伪指令标明该段的 每行汇编语句从属一个段, 属性; 属性; 一个目标文件中的每个段都是分开的和各不相同的。 ③ 一个目标文件中的每个段都是分开的和各不相同的。 作用:把汇编语言程序的各个部分划分在适当的段中。 作用:把汇编语言程序的各个部分划分在适当的段中。

单片机第4章汇编语言程序设计

将汇编语言程序汇编成目标程序后,还要进行 调试,排除程序中的错误。只有通过上机调试并得 出正确结果的程序,才能认为是正确的程序。
4.2 伪指令
伪指令是在机器汇编中告诉汇编程序 如何汇编、对汇编过程进行控制的命令。 伪指令与汇编语言指令不同,只在源程序 中出现,不产生任何机器代码,在程序的 运行过程中不起作用,故称为“伪指令”。
处理 判断 连接
2.绘制程序流程图 简单的问题可由文字说明, 当问题复杂时,将文字说明的步骤以图形符号表示, 称流程图。
3.编写源程序 用汇编语言把流程图所表明的 步骤描述出来,实现流程图中每一框内的要求,从 而编制出一个有序的指令流,即汇编语言源程序。
4.汇编、调试 汇编语言是用指令助记符代替机 器码的编程语言,所编写的程序是不能在计算机上 直接执行的,因此利用它所编写的汇编语言程序必 须转换为单片机能执行的机器码形式的目标程序才 能运行,我们把这一过程称为汇编,进行汇编的程 序称为汇编程序。
4. 定义字伪指令DW
[标号:] DW 16位字数据表
该指令的功能与DB相似, 区别仅在于从指定地
址开始存放的是指令中的16位数据, 而不是字节串。
每个16位数据要占两个存储单元, 高8 位先存(低位
地址), 低 8 位后存(高位地址)。
1403H 3CH
ORG 1400H DATA1:DW 324AH,3CH
散转程序是分支程序的一种, 它可根据运算结果或输入数 据将程序转入不同的分支。MCS - 51 指令系统中有一条跳转指 令JMP@A+DPTR,用它可以很容易地实现散转功能。该指令 把累加器的8位无符号数与16位数据指针的内容相加, 并把相加 的结果装入程序计数器PC,控制程序转向目标地址去执行。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档