返回介绍

实验二 常用指令操作实验

发布于 2023-05-14 20:35:30 字数 2148 浏览 0 评论 0 收藏 0

一.实验说明

在设计DSP应用系统时,指令组成了DSP系统的应用软件。由于种种原因,所编写的软件中总会存在一些问题,因此必须对软件进行调试,通过调试修改软件中不合理的地方。

在软件调试中,一个重要问题是观察指令执行的结果。例如,在DSP应用系统中输出一个信号波形,但发现输出的波形与预期的不同,这时就需要检查原因。由于DSP指令执行的速度相当快,所以就需要掌握调试中的指令响应观察技术,也就是通常使用的单步执行方法。

二.实验目的

1. 通过在TMS320LF2407 DSP实验开发系统中实际使用指令,初步学会如何使用实验中的指令。

2. 学习指令的功能和基本使用操作方法。

3. 学习DSP应用系统中的系统调试方法,学会单步调试的基本方法。

4. 学会如何观察指令的执行结果。

三.实验内容

1.熟悉常用汇编指令。

2.熟悉单步执行的调试方法。

3.熟悉在调试环境下观察指令的执行结果和相应寄存器内容。

四.实验步骤

1.立即数载入指令实验操作

立即数载入指令包括:

(1) 累加器载入立即数。

(2) 向辅助寄存器载入数。

(3) DP载入立即数。DP是状态寄存器的ST0(0~8)位,作为数据空间直接寻址时地址的高9位(A15~A7)。

本次练习中,需要完成如下工作:

(1) 向累加器装载立即数1234h。

(2) 向累加器装载立即数ABCDh并左移4位。

(3) 向辅助寄存器AR3-5装载立即数。

(4) 向DP的装载立即数。

可以看到,本次练习不仅是向某个寄存器装载数据,而且还包括向某个寄存器内容指向的某些数据存储单元装载数据。

实验时,可以先编写好上述指令,作为一个程序段进行编译。然后打开CPU寄存器观察窗口,利用单步执行命令单步执行程序。每完成一次单步执行操作,可以观察到相应寄存器内容的变化。

单步操作前可以通过CPU寄存器观察窗口对各相关寄存器进行修改,以便更清楚地观察到指令执行的结果。

2.直接寻址方式下的数据存取

对数据空间的直接寻址采用以下两种方式:

程序如下:

3.间接寻址方式下的数据存取

在本操作中,练习间接寻址中的操作数存储器操作。这是利用辅助寄存器ARx(x=0~7)对数据存储空间进行访问的方法。ARx的内容就是数据空间的地址,ARx加星号(*)前缀表示的是ARx中的地址所指向的存储器单元,而且保存在ARx中的地址在对存储单元访问前/后可以进行修改。具体有7种修改方式:

* ;访问后ARx中地址不变

* + ;访问后ARx中地址加1

* - ;访问后ARx中地址减1

* 0 + ;访问后ARx中地址加上AR0中的值

* 0 - ;访问后ARx中地址减去AR0中的值

* BRO + ;访问后ARx中地址加上AR0中的值,并反向进位

* BRO - ;访问后ARx中地址减去AR0中的值,并反向进位

程序编制说明如下:

(1) TS是T寄存器中存放的移位值;

(2) 语句AR3 = # 2000h和语句* AR3 = # 0AC01h完成了向地址为2000h的数据单元存放数据AC01h;

(3) 语句T = # 8和B = * AR3-<<TS-将2000h中的数据左移12位载入累加器B中,而且AR3中的地址值减1,成为1FFFh;

(4) 语句*, AR3 + 0 = # 1111h到语句*, AR3 (# 16) = # 5555h。

程序清单如下:

4.加减运算

使用加减运行指令时,应当注意有关寄存器的影响,主要有如下两个:

(1) ST1中符号扩展模式位SXM――的设置对加减运算的影响:

SXM = 0,符号不扩展

SXM = 1,符号扩展

(2) ALU运算模式位C16的设置及其对加减运算的影响:

C16 = 0,双精度(32位)运算

C16 = 1,16位运算

程序清单如下:

5.逻辑运算

程序清单如下:

6.移位运算

程序清单如下:

7.乘法运算

本指令操作主要是练习如何完成乘法操作,其中包括乘、加操作。

程序清单如下:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文