汇编语言编程举例

汇编语言编程举例

ID:5642094

大小:987.00 KB

页数:115页

时间:2017-11-15

汇编语言编程举例_第1页
汇编语言编程举例_第2页
汇编语言编程举例_第3页
汇编语言编程举例_第4页
汇编语言编程举例_第5页
资源描述:

《汇编语言编程举例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、汇编语言编程举例汇编语言编程的基本方法DSP在信号发生器上的应用用DSP实现FIR滤波器汇编语言编程举例汇编语言编程的基本方法汇编语言编程的基本方法1.堆栈的使用1.压入数据时,堆栈从高地址向低地址增长。2.压栈时指针先减,SP-1,再压入数据;3.出栈时,先弹出数据后,再SP+1。4.如要用堆栈,必须先设置,后使用。要点例设计一存储空间为100个单元的堆栈。size.set100;设置堆栈空间的;大小为100stack.usect“STK”,size;设置堆栈段的首地址;和堆栈空间STM#stack+size,SP;将栈底地址指针送;SP,完成初始化1.堆栈的使用汇编语言编程的基本方法例编

2、写求解加、减法的程序,计算z=x+y-w。SUM1:LD@x,A;将x地址的内容送AADD@y,A;将y地址的内容与A中x值相加SUB@w,A;将A中的内容与w相减,得zSTLA,@z;将A的的计算值存入z地址中2.加、减法和乘法运算汇编语言编程的基本方法例写求解直线方程的程序,计算y=mx+b。SUM2:LD@m,T;将m地址的内容送TMPY@x,A;将x地址的内容与;T中的m相乘,结果送AADD@b,A;将A中的mx与b地址的内容;相加,结果送ASTLA,@y;将A的的计算结果;存入y地址中2.加、减法和乘法运算汇编语言编程的基本方法传送速度比加载和存储指令要快;传送数据不需要通过累加器

3、;可以寻址程序存储器;与RPT指令相结合(重复时,这些指令都变成单周期指令),可以实现数据块传送。3.数据块传送特点汇编语言编程的基本方法(1)数据存储器←→数据存储器这类指令有:MVDKSmem,dmad指令的字数/执行周期2/2MVKDdmad,Smem;Smem=dmad2/2MVDDXmem,Ymem;Ymem=Xmem1/1(2)程序存储器←→数据存储器这类指令有:MVPDpmad,Smem;Smem=pmad2/3MVDPSmem,pmad;pmad=Smem2/4pmad为16位立即数程序存储器地址;dmad为16位立即数数据存储器地址;Smem为数据存储器地址;Xmem、Ym

4、em为双操作数数据存储器地址,Xmem从DB数据总线上读出。Ymem从CB数据总线上读出。3.数据块传送汇编语言编程的基本方法(3)数据存储器←→MMR这类指令有:MVDMdmad,MMR;指令的字数/执行周期2/2MVMDMMR,dmad;dmad=MMR2/2MVMMmmrx,mmry;mmry=mmrx1/1(4)程序存储器(Acc)←→数据存储器包括:READASmem;Smem=prog(A)1/5WRITASmem;prog(A)=Smem1/5mmrx,mmry为AR0~AR7或SP;MMR为任何一个存储器映象寄存器;3.数据块传送汇编语言编程的基本方法例将数组x[5]初始化为

5、{1,2,3,4,5}。.data;定义初始化数据段起始地址TBL:.word1,2,3,4,5;为标号地址TBL;开始的5个单元赋初值.sect“.vectors”;定义自定义段,并获;得该段起始地址BSTART;无条件转移到标号为START的地址.bssx,5;为数组x分配5个存储单元.text;定义代码段起始地址START:STM#x,AR5;将x的首地址存入AR5RPT#4;设置重复执行5次下条指令MVPDTBL,*AR5+;将TBL开始的5个值传给x(1)程序存储器→数据存储器3.数据块传送汇编语言编程的基本方法例将数据存储器中的数组x[10]复制到数组y[10]。.title“c

6、jy1.asm”;为汇编源程序取名.mmregs;定义存储器映象寄存器STACK.usect“STACK”,30H;设置堆栈.bssx,10;为数组x分配10个存储单元.bssy,10;为数组y分配10个存储单元.datatable:.word1,2,3,4,5,6,7,8,9,10.defstart;定义标号start.text(2)数据存储器→数据存储器3.数据块传送汇编语言编程的基本方法start:STM#0,SWWSR;复位SWWSRSTM#STACK+30H,SP;初始化堆指针STM#x,AR1;将目的地首地址赋给AR1RPT#19;设定重复传送的次数为20次MVPDtable,*

7、AR1+;程序存储器传送到数;据存储器STM#x,AR2;将x的首地址存入AR2STM#y,AR3;将y的首地址存入AR3RPT#19;设置重复执行20次下条指令MVDD*AR2+,*AR3+;将地址x开始的20个值;复制到地址y开始的20个单元end:Bend.end3.数据块传送汇编语言编程的基本方法用间接寻址方式获得操作数,且辅助寄存器只用AR2~AR5;占用程序空间小;运行速度快。4.双操作数乘法特点

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。