单片机与DSP汇编语言的区别.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机与DSP汇编语言的区别

单片机与DSP汇编语言的区别单片机与DSP在硬件上的不同就在一定程度上决定了两者汇编语言的不同。DSP微处理器的主要特点有:1.DSP内部采用程序空间和数据空间分开的哈佛结构,允许同时取指令和取操作数,还允许在程序空间和数据空间互相传送数据。2.许多DSP芯片内部都采用多总线结构,这样可以保证在一个机器周期内多次访问程序空间和数据空间。3.DSP每执行一次指令,需要通过预取指、取指、译码、寻址、取操作数和执行等流水线阶段。4.DSP内部包括多个处理器单元,他们可以在一个指令周期内同时进行运算。5.具有特殊的DSP指令,比如TMS320C54xx中的MACD(乘法、累加和数据移动)指令等。6.还有指令周期短、运算精度高,硬件配置强等特点。单片微型计算机(Single Chip Microcomputer)简称单片机,又称微控制器(Microcontroller Unit)或嵌埋式控制器(Embeded Controller),是将计算机的基本部件微型化,使之集成一块芯片上的微机。片内含有CPU、ROM、RAM、并行I/O、串行I/O、定时器/计数器、中断控制、系统时钟及系统总线等。根据以上DSP与单片机的特点,我们就可以看出单片机多用于一些简单的数字信号处理,而DSP更适合于数字信号处理软件和硬件资源,用于比较复杂的数字信号处理算法。所以要满足两者处理器在不同程度上的需求,两者的汇编语言也就对应的不相同了。本文以MCS-51单片机和TMS320C54系列DSP来比较两者在汇编语言上的不同之处。一、寻址方式的区别在汇编语言的指令格式上两者相同,都是标号:指令操作数1,操作数2,操作数3;注释。但DSP汇编语言指令的数据传递是从左至右,单片机是从右至左。在寻址方式上,DSP有七种寻址方式,立即数寻址、绝对地址寻址(数据存储器寻址、程序存储器地址寻址、端口地址寻址、*(lk)寻址)、累加器寻址、直接寻址、间接寻址(单操作数寻址、循环寻址、位倒序寻址、双操作数寻址)、存储器映射寄存器寻址,堆栈寻址。单片机有8种寻址方式,寄存器寻址、直接寻址、立即寻址、寄存器间接寻址、基址寄存器加变址寄存器间接寻址、相对寻址、位寻址、页面寻址。可见两者在寻址方式上大有不同。下边对相同的寻址方式分别在DSP和单片机上的区别。对于DSP的立即寻址,指令中必须有一个立即操作数。立即数有两种方式,一种是短立即数(3、5、8或9的数据),另一种是长立即数(16位的数据)。立即数可以包含在单字和双字指令中,单字指令中立即数是3、5、8或9的数据,双字指令中立即数是16位的数。例:LD #25,A对于单片机的立即数寻址,立即数寻址方式中操作数包含在指令字节中,操作码后紧跟的是一字节或两字节操作数(立即数),即操作数以指令字节形式存放在程序存储器中,在编写程序时用“#”表示。例:MOV A,5AHMOV A,#5AH由对比和例子可以看出,两者在立即数寻址上写法格式不同,用的指令也不同,相同点是都用“#”符号表示立即数寻址。对于直接寻址,DSP在直接寻址方式中,指令代码包含了数据存储地址的低7位。这7位作为偏移地址与数据页指针DP或者堆栈指针SP共同组成了一个16位的数据存储地址。直接寻址用符号或常数来确定偏移值。例:把存储单元SAMPLE中的内容加到累加器B中去。ADD SAMPLE,B而单片机的直接寻址,直接寻址方式在指令中直接给出操作数所在存储单元的地址,该地址指出了参与运算或传送的数据所在的字节单元或位的地址,直接寻址方式访问以下三种空间:1.特殊功能寄存器。2.内部数据存储的低128字节。3.位地址空间。用于操作的称为直接寻址,用于访问字节的称为直接字节寻址。例:把片内RAM中的5AH这个地址单元的内容送到累加器A。MOV A,5AHfv对比这两种相同的寻址方式,可以看出两者最直观的区别是格式的不同,DSP是将操作数放在存储地址之前,单片机则相反。在DSP中直接寻址还可以利用堆栈指针作为数据存储地址,同时指令也不同,DSP利用相对应的指令,单片机则一般都是MOV作为传送指令。两者对直接寻址都没有特殊的符号表示。对于寄存器间接寻址,DSP的间接寻址有4种类型:单操作数寻址、循环寻址、位倒序寻址和双操作数寻址。在间接寻址中,64K×16位数据空间都可以通过辅助寄存器中的16位地址进行访问。C54xx系列DSP有8个16位辅助寄存器(AR0-AR7)。两个辅助寄存器算数单元可以根据辅助寄存器的内容操作,完成无符号的16位数据操作数,可以再一条指令中访问两个数据存储单元。例:*ARx-(访问后ARx中的地址减1)、*ARx(lk)等,操作语法有很多种,实现的功能也不相同。单片机的寄存器间接寻址,是把指定寄存器中的内容作为地址,由该地址所指定的单元内容作为操作数,

文档评论(0)

138****7331 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档