DSP技术与原理复习之编程题.docx指令解释(每题 3 分,共 15 分)
1、
LD #0032H ,4 ,A
立即数 0032H 先左移 4 位后,再加载累加器 A.
2、
STM #1000H,*AR2
立即数 1000H 存储到 AR2 指向的地址单元
3、
MAC
#345 ,A ,B
立即数 345 与 T 寄存器内值相乘后与累加器
A 值相加,结果加载累加器 B.
4、 MVDD *AR3- , 100H
AR3 指向的地址单元的值传送给地址
100H
单元 , AR3
5、 LDM *AR1 ,A
AR3 指向的地址单元的值加载到累加器
A.
100个单元的堆栈。将栈底地址指针送 SP,对其初始化(共
5 分)
size .set 100
;
设置堆栈空间的大小为 100
stack .usect “STK ” ,size
;设置堆栈段的首地址和堆栈空间
STM #stack+size,SP
1. 分 别解释以下指令的功能。 (
6 分)
LD #80h ,
A;
把立即数 80H 装入累加器 A
LD 80h ,
A;
把 80H 为地址的数据装如累加器 A
LD #80h ,16 ,
A;
把立即数 80H 左移 16 位后装如累加器 A
说明以下各量的理论值(
4 分)
A : 2A
a1 的地址: 81H
内容:
1
AR1 : 88H
AR3 : 84H
1. 编程实现小数乘法,
要求将变量 temp1 装入累加器高 16 位与 temp2
相乘,
结果存入
答: SSBX FRCT
;
置 FRCT 标志位,准备小数乘法
中地址减一。
temp3 。(共 5 分)
LD temp1
MPYA temp2
STH temp3
2. 将数组 x[5]
,16 ,A ;将变量 temp1 装入累加器 A 的高 16 位
;完成 temp2 与累加器 A 的高 16 位相乘,结果放入 B 累加器,并将 temp2 装入 T 寄存器 ;将乘积结果的高 16 位存入变量 temp3
初始化为 {1,2,3,4,5} 。(共 10 分) 答: .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+
en d:
B
end
.end
1 .实现计算
z=x+y-w 的程序。
.title
""
.mmregs
STACK
.usect
"STACK
DSP技术与原理复习之编程题 来自淘豆网www.taodocs.com转载请标明出处.