ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:132.24KB ,
资源ID:9497412      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9497412.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(复习资料10.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

复习资料10.docx

1、复习资料10第三章(1) 加法指令举例【例3.1】 ADD *AR3+, 14, A;将AR3所指的数据存储单元内容,左移14位与A相加,结果放A中,AR3加1。 (2) 减法指令(13条)表3.3.5 说明:SUBS用于无符号数的减法运算; SUBB用于带借位的减法运算(如32位扩展精度的减法); SUBC为条件减法 . SUBC Smen, Src 使用SUBC重复16次减法,就可以完成除法功能。 被除数-(除数15):够减:被除数左移,商+1;不够减:被除数左移,商+0; 注:被除数和商共用一个R B:随着B的左移被除数逐渐退出,商从右左逐渐进入。减法指令举例【例3.2】利用SUBC完成

2、整数除法(TEMP1/TEMP2) LD TEMP1, B ;将被除数TEMP1装入B累加器的低16位 RPT #15 ;重复SUBC指令16次 SUBC TEMP2, B ;使用SUBC指令完成除法 STL B, TEMP3 ;将商(B累加器的低16位)存入变量TEMP3 STH B, TEMP4 ;将余数(B累加器的高16位)存入变量TEMP4(3) 乘法指令(10条)表3.3.6 说明: 不同的乘法指令完成不同的功能 MPY:普通乘指令;MPYR:带四舍五入指令;MPYA: A累加器高端参与乘法; MPYU:无符号乘法;SQUR:平方; 小数乘法 :将FRCT设置为1,系统自动将乘积结果

3、左移1位。【例3.3】MPY Smen, dst; T*Smem A, Smem所在的单数据存储器地址为13(0Dh) 例如: MPY 13,A(4) 乘加和乘减指令(15条)表3.3.7【例3.3】 MAC *AR5+,A ;A+(AR5)*TA, AR5= AR5+1 (5)长操作数指令(6条)表3.3.8【例3.4】DADD Lmen, src ,dst;If C16=0 dst= Lmem + src (长字运算:AR3+2)例如:DADD *AR3+, A, B【例3.8】CMPM Smen,#1k;比较Smem与常数1k是否相等,若相等TC=1,否则TC=0 例如:CMPM *AR

4、4+, 0404h说明: FIRS Xmem,Ymem, pmad; B=B+A*pmad / A=(Ymem +Xmem)VECS PAGE 0 .text : EPROM PAGE 0 .data : EPROM PAGE 0 .bss : SPRAM PAGE 1 .STACK :DARAM PAGE 1 实现20个数据先从EPROM的0E000Hh0E013h传送到数据存储器SPRAM的0060h0073h单元,实现数据的初始化,再从0060h0073h单元传送到0074h0087h单元,实现数据搬移,其示意图如图4.7所示。注意,实际看到的是十六进制数。 1、 *单字运算【例4.16

5、】 试编一程序,计算的值,并找出4项乘积 aixi (i=1,2,3,4)中的最大值,放入累加器A中。 .title “exp16.asm” .mmregsSTACK .usect “STACK”, 10h ;堆栈的设置 .bss a, 4 ;为变量分配10个字的存储空间 .bss x, 4 .bss y1, 1 .bss y2, 1 .def start .data table: .word 1, 5, 3, 4 .word 8, 6, 7, 2 .textstart: STM #0, SWWSR ;插入个等待状态 STM #STACK+10h,SP ;设置堆栈指针 STM #a, AR1

6、RPT #7 MVPD table, *AR1+ CALL SUM ;调用乘累加子程序 CALL MAX ;调用求最大值子程序End: B endSUM: STM #a, AR3 STM #x, AR4 RPTZ A, #3 MAC *AR3+, *AR4+, A STL A, y1 ;变量y1存放乘累加的值 RETMAX: STM #a, AR1 STM #x, AR2 STM #2,AR3 LD *AR1+, T MPY *AR2+, A ;第一个乘积在累加器A中Loop: LD *AR1+, T MPY *AR2+, B ;其他乘积在累加器B中 MAX A ;累加器A和B比较,选大的存在

7、A中 BANZ loop, *AR3- ;此循环中共进行3次乘法和比较 STL A, y2 ;变量y2存放的最大值 RET .end假设.bss为变量a、x和y分配的10个字的存储空间,以数据存储器的0060H为起始地址,结果y167(43h),最大值y230(1Eh)。*【例4.17】 实现16位定点加减法、16位定点乘法、16位定点整数除法的程序。 .title “exp17.asm”DAT0 .set 60hDAT1 .set 61hDAT2 .set 62hDAT3 .set 63h .textADD3 .macro P1,P2,P3,ADDRP ;宏定义: ADDRP = P1 +

8、P2 + P3 LD P1,A ADD P2,A ADD P3,A STL A,ADDRP .endm_c_intoo: B startStart: LD #000h,DP STM #1000h,SP SSBX INTMBk0: ST #0012h,DAT0 LD #0023h,A ADD DAT0,A NOPBk1: ST #0054h,DAT0 LD #0002h,A SUB DAT0,A NOPBk2: ST #0345h,DAT0 STM #0002h,T MPY DAT0,A NOPBk3: ST #1000h,DAT0 ST #0041h,DAT1 RSBX SXM LD DAT0

9、,A RPT #15 SUBC DAT1,A STL A,DAT2 STH A,DAT3 NOP .end bk5: ST #0034h,DAT0 ST #0243h,DAT1 ST #1230h,DAT2 ADD DAT0,DAT1,DAT2,DAT3 ;宏调用DAT3=DAT0+DAT1+DAT2 NOP .end程序执行时,可在NOP指令处加断点,当执行到这条加了断点的语句时,程序将自动暂停。可以通过“存贮器窗口”或“寄存器窗口”检查计算结果。实验 。加法结果:A=0000,0000,35h减法结果:A=FFFF,FFFF,Aeh乘法结果:A=0000,0006,8Ah除法结果:商 DA

10、T3=003Fh,余数DAT3=0001h第六章【例6.1】 利用定时器Timer0在XF引脚产生周期为1s的方波。分析:设f=100MHz,定时最大值是:10(ns)*24*216=10(ms),要输出1s的方波,1和0分别为500ms。可定时5ms,再在中断程序中加个100计数器,定时器周期=10ns(1+9)(1+49999)=5ms。CounterSet .set 100 ;定义计数次数PERIOD .set 49999 ;定义计数周期 .asg AR1,Counter ;AR1做计数指针,重 新命名以便识别 STM #CounterSet,Counter ;设计数器初值 STM #0

11、000000000010000B,TCR ;停止计数器 STM #PERIOD,TIM ;给TIM设定初值49999 STM #PERIOD,PRD ;PRD与TIM一样 STM #0000001001101001B,TCR;开始定时器 STM #0008H,IMR ;开TIME0的中断 RSBX INTM ;开总中断End: NOP B End中断服务程序:TINT0_ISRTINT0_ISR: PSHM ST0 ;保护ST0,因要改变TC BANZ Next,*Counter- ;计数器不为0,计数器减1,退出中断STM #CounterSet,Counter ; BITF *AR2,#1 ;数器为0, 根据当前XF的状态, ;分别到setXF或ResetXF BC ResetXF,TC 计setXF: SSBX XF ;置XF为高 ST #1,*AR2 B NextResetXF: RSBX XF ;置XF为低 ST #0, *AR2Next: POPM ST0 RETE End

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2