- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言编程举例 ;第一节 汇编语言编程的基本方法 ;例: 设计一存储空间为100个单元的堆栈。
size .set 100 ;设置堆栈空间的
;大小为100
stack .usect “STK”,size ;设置堆栈段的首地址
;和堆栈空间
STM #stack+size,SP ;将栈底地址指针送
; SP,对其初始化;例: 编写求解加、减法的程序,计算z=x+y-w。
SUM1:LD @x,A ;将x地址的内容送A
ADD @y,A ;将y地址的内容与A中x值相加
SUB @w,A ;将A中的内容与w 相减,得z
STL A,@z ;将A的的计算值存入z 地址中
例: 写求解直线方程的程序,计算y=mx+b。
SUM2:LD @m,T ;将m 地址的内容送T
MPY @x,A ;将x地址的内容与T中的m相 乘,结果送A
ADD @b,A ;将A中的mx与b 地址的内容 相加,结果送A
STL A,@y ;将A的的计算结果存入y 地址中;传送速度比加载和存储指令要快;
传送数据不需要通过累加器;
可以寻址程序存储器;
与RPT指令相结合(重复时,这些指令都变成单周期指令),可以实现数据块传送。;(1)数据存储器←→数据存储器 这类指令有:
MVDK Smem,dmad ;指令的字数/执行周期 2/2
MVKD dmad,Smem ;Smem=dmad 2/2
MVDD Xmem,Ymem ;Ymem=Xmem 1/1
(2)程序存储器←→数据存储器 这类指令有:
MVPD pmad,Smem ;Smem=pmad 2/3
MVDP Smem,pmad ;pmad=Smem 2/4
pmad为16位立即数程序存储器地址;
dmad为16位立即数数据存储器地址;
Smem为数据存储器地址;
Xmem、Ymem为双操作数数据存储器地址,Xmem从DB数据总线上读出。Ymem从CB数据总线上读出。;(3)数据存储器←→MMR 这类指令有:
MVDM dmad,MMR ;指令的字数/执行周期 2/2
MVMD MMR,dmad ;dmad=MMR 2/2
MVMM mmrx,mmry ;mmry=mmrx 1/1
(4)程序存储器(Acc)←→数据存储器 包括:
READA Smem ;Smem=prog(A) 1/5
WRITA Smem ;prog(A)= Smem 1/5
mmrx,mmry为AR0~AR7或SP;
MMR为任何一个存储器映象寄存器;;例:将数组x[5] 初始化为{1,2,3,4,5}。
.data ;定义初始化数据段起始地址
TBL: .word 1,2,3,4,5 ;为标号地址TBL
;开始的5个单元赋初值
.sect “.vectors” ;定义自定义段,并获
;得该段起始地址
B START;无条件转移到标号为START的地址
.bss x,5 ;为数组x分配5个存储单元
.text ;定义代码段起始地址
START:STM #x,AR5 ;将x的首地址存入AR5
RPT #4 ;设置重复执行5次下条指令
MVPD TBL,*AR5+ ;将TBL开始的5个值传给x;例: 将数据存储器中的数组x[10]复制到数组y[10]。
.title “cjy1.asm” ;为汇编源程序取名
.mmregs ;定义存储器映象寄存器
STACK .usect “STACK”,30H;设置堆栈
.bss x,10 ;为数组x分配10个存储单元
.bss y,10 ;为数组y分配10个存储单元
.data
table:.wo
原创力文档


文档评论(0)