第三章 基本指令实验
- 格式:doc
- 大小:1.43 MB
- 文档页数:12
一、实验目的1. 理解基本顺序指令的概念和作用。
2. 掌握基本顺序指令的使用方法。
3. 通过实验,加深对基本顺序指令的理解和掌握。
二、实验原理基本顺序指令是指在程序设计中,按照一定的顺序执行的一系列指令。
它们是程序的基本组成部分,用于实现各种功能。
基本顺序指令主要包括赋值指令、数据输入输出指令、条件判断指令等。
三、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 编程语言:C++四、实验步骤1. 创建一个新的C++项目,命名为“基本顺序指令实验”。
2. 在项目中添加一个新的源文件,命名为“main.cpp”。
3. 在“main.cpp”文件中编写以下代码:```cpp#include <iostream>int main() {int a = 10; // 赋值指令int b = 5; // 赋值指令int sum; // 赋值指令std::cout << "请输入两个整数:" << std::endl;std::cin >> a >> b; // 数据输入指令sum = a + b; // 赋值指令std::cout << "两个整数的和为:" << sum << std::endl; // 数据输出指令if (a > b) { // 条件判断指令std::cout << "a大于b" << std::endl;} else if (a < b) {std::cout << "a小于b" << std::endl;} else {std::cout << "a等于b" << std::endl;}return 0;}```4. 编译并运行程序,观察输出结果。
一、实验目的1. 熟悉PLC(可编程逻辑控制器)的基本指令编程方法。
2. 掌握PLC在交通灯控制系统中的应用。
3. 理解交通灯控制系统的逻辑原理,提高实际工程应用能力。
二、实验环境1. PLC实验装置:三菱FX系列PLC1台2. 编程软件:GX Developer3. 输入输出模块:开关量输入电路板1块4. 交通灯电路:交通灯控制电路图三、实验原理1. 交通灯控制系统原理:交通灯控制系统主要由信号灯、传感器、控制器等组成。
信号灯负责控制交通流,传感器负责检测交通状况,控制器根据交通状况控制信号灯的亮灯状态。
2. PLC基本指令:PLC基本指令包括逻辑运算指令、定时器指令、计数器指令等。
逻辑运算指令用于实现逻辑控制,定时器指令用于实现定时功能,计数器指令用于实现计数功能。
四、实验步骤1. 设计交通灯控制电路图:根据交通灯控制系统的原理,设计交通灯控制电路图,包括信号灯、传感器、PLC输入输出端子等。
2. 编写PLC程序:根据交通灯控制电路图,使用PLC编程软件编写交通灯控制程序。
(1)定义输入输出:在编程软件中定义PLC的输入输出端子,包括传感器输入端子和信号灯输出端子。
(2)编写逻辑控制程序:根据交通灯控制系统的逻辑原理,编写逻辑控制程序。
(3)编写定时器程序:根据交通灯控制系统的定时要求,编写定时器程序。
(4)编写计数器程序:根据交通灯控制系统的计数要求,编写计数器程序。
3. 编译程序:将编写好的PLC程序编译成可执行文件。
4. 上传程序:将编译好的PLC程序上传到PLC实验装置。
5. 模拟运行:在PLC实验装置上模拟运行交通灯控制系统,观察信号灯的亮灯状态是否符合预期。
五、实验结果与分析1. 实验结果:通过模拟运行,观察信号灯的亮灯状态,发现信号灯的亮灯状态符合预期,实现了交通灯控制系统的基本功能。
2. 实验分析:(1)逻辑控制程序:通过编写逻辑控制程序,实现了交通灯控制系统的基本逻辑,如直行、左转、右转信号灯的切换。
(整理)PLC实验报告.PLC实验报告第三章:实验任务书§3-1 基本实验实验⼀: 基本逻辑指令实验⼀、实验⽬的: 掌握可编程序控制器的操作⽅法,熟悉基本指令以及实验设备的使⽤⽅法。
⼆、实验设备 1.可编程控制器2.编程器或计算机编程软件(cx-p)3 .SAC-PC可编程序控制器教学实验设备三、实验任务: 按照下⾯给出的控制要求编写梯形图程序, 输⼊到可编程序控制器中运⾏,根据运⾏情况进⾏调试、修改程序,直到通过为⽌。
1.⾛廊灯两地控制I/O分配:0(01000)⾛廊灯声光显⽰区2.⾛廊灯三地控制I/O分配:0(01000)⾛廊灯声光显⽰区3.圆盘正反转控制1 电机反转旋转区反转端⼦4.⼩车直线⾏驶正反向⾃动往返控制实验⼆: 计时器指令实验实验⽬的: 熟悉计时器指令以及实验设备的使⽤⽅法。
实验设备: 略。
实验任务: 按照下⾯给出的控制要求编写梯形图程序。
1.通电延时控制输⼊ 0 ON OFF输出 0 ONOFF2.断电延时控制输⼊ 0 ONOFF输出 0 ONOFF3.通电断电延时控制输⼊0 ONOFF 输出0 ON OFF4.闪光报警控制输⼊0 ONOFF输出0 ONOFF 1秒2秒实验三: 计数器指令实验实验⽬的: 熟悉计数器指令。
实验任务: 按照下⾯给出的控制要求编写梯形图程序。
1.按钮计数控制按钮按下3次,信号灯亮;再按2次,灯灭。
2.⽤计数器构成计时器(有断电记忆功能)3.圆盘旋转计数、计时控制圆盘电机起动后, 旋转⼀周(对应光电开关产⽣8个计数脉冲)后,停1秒,然后再转⼀周……,以此规律重复, 直到按下停⽌按钮时为⽌。
4.测扫描频率⽤计数器、⾼速计时器测CPU每秒扫描程序次数。
⽤编程器监控⽅式,观察计数器每秒所记录下的程序扫描次数。
实验四: 微分指令、锁存器指令实验实验⽬的: 熟悉微分指令、锁存器指令。
实验任务:1.按钮操作叫响提⽰有按钮操作时,⽆论时间长短,蜂鸣器发出1秒声响。
实训课题三基本指令的使用
一、实训目的
1 理解并掌握27个基本指令的含义和使用;
2 电机正反转等编程方法;
二、实训仪器设备
1 PLC综合实训装置一台;
2 PC机一台;
3 编程软件一套。
三、实训指导
1、27个基本指令
基本指令一览表
图1.3-1 基本指令
四、实训内容--编程训练
1、编写电动机起保停电路的控制程序,并接线调试。
2、用基本指令实现电机正反转控制。
请比较课本上第三章中电机正反转控制与课后实训3-1中高速正反转控制的不同之处;
3、按下开始按钮后,一盏灯亮2S,停2S,反复循环。
4、用主控开关指令编车库门的手、自动控制程序。
控制要求:车库门有自动和手动控制两种方式;通过选择开关来决定控制状态是手动或自动;手动时:通过两个控制按钮X1和X2来控制门的上升、下降;自动时:按下按钮X3时,门自动上升,到达上限位后延时6s自动下降,降到下限位后停止。
注意:当处于手动操作状态时,自动程序不起作用;当处于自动操作状态时,手动程序不起作用;
五、实训报告
1、写出正确的梯形图及列出正确的助记符程序表。
2、总结27个基本指令的难点。
一、实验目的1. 熟悉实验基本指令的使用方法。
2. 掌握常用指令的编写和调试技巧。
3. 培养实验操作的规范性和准确性。
二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 实验设备:个人电脑三、实验内容1. 实验一:Hello World(1)实验目的学习C语言的基本语法,编写一个简单的“Hello World”程序。
(2)实验步骤1)打开Visual Studio 2019,创建一个新的C++项目。
2)在项目主界面中,选择“源文件”,然后点击“添加新项”。
3)在弹出的对话框中,选择“C++文件”,命名为“hello.cpp”。
4)在“hello.cpp”文件中,编写以下代码:```c#include <iostream>using namespace std;int main() {cout << "Hello World!" << endl;return 0;}```5)保存文件,并返回到项目主界面。
6)点击“生成”菜单,选择“生成解决方案”,生成可执行文件。
7)运行程序,观察结果。
(3)实验结果程序输出“Hello World!”,实验成功。
2. 实验二:变量和运算符(1)实验目的学习C语言中的变量和运算符,编写一个计算两个整数相加的程序。
(2)实验步骤1)打开Visual Studio 2019,创建一个新的C++项目。
2)在项目主界面中,选择“源文件”,然后点击“添加新项”。
3)在弹出的对话框中,选择“C++文件”,命名为“add.cpp”。
4)在“add.cpp”文件中,编写以下代码:```c#include <iostream>using namespace std;int main() {int a = 10;int b = 20;int sum = a + b;cout << "The sum of " << a << " and " << b << " is " << sum << endl;return 0;}```5)保存文件,并返回到项目主界面。
实验一、寻址方式与基本指令实验一、实验目的1.熟悉8086寻址方式及基本指令功能,进一步理解和巩固课学习内容。
2.掌握汇编语言程序设计上机过程和汇编语言源程序结构。
3.熟悉Microsoft的DEBUG调试工具的使用方法。
二、实验预习要求1.认真阅读教科书第三章,了解并熟悉汇编语言程序的上机步骤及DEBUG调试工具的使用方法。
2.复习8086操作数寻址方式及基本指令功能(数据传送、算术运算和逻辑运算等)。
3.了解实验内容,并在实验前根据课堂所学知识回答有关问题(个别取决于程序实际运行环境的问题外),以便在实验时进行验证。
三、实验内容1.读懂下列源程序,使用EDIT生成名为EX11.ASM的源程序,汇编生成EX11.OBJ文件和EX11.LST文件,连接生成EX11.EXE文件;用EDIT打开EX11.LST文件,了解.LST文件包含的信息;使用DEBUG调试工具单步执行EX11.EXE程序,注意观察IP值的变化,并回答下列问题。
1)程序装入后,代码段寄存器CS的内容为H,代码段第一条可执行指令“MOV AX,DATA”对应的机器代码为H,它是一个字节指令,注意观察执行该指令时IP的变化情况,该指令源操作数DATA的寻址方式是,其值为。
2)执行完“MOV DS,DATA”指令后,数据段寄存器DS的内容为H,源程序在数据段中定义的数据库82H、68H和88H被装入的存储单元的物理地址分别为H,H和H。
3)程序中第一条“ADD AL,[BX]”指令对应的机器代码H,它是一个字节指令,注意观察执行该指令时IP的变化情况,该指令中源操作数的寻址方式为,该操作数所在存储单元的逻辑地址(DS):(BX)为,物理地址为H;执行完该指令后(AL)= H,CF= ,OF= ,ZF= ,SF= ,AF= ,PF= ;若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?若计算结果正确,结果是正数还是负数?4)执行完第二条“ADD AL,[BX]”指令后,(AL)= H,CF= ,OF= ,ZF= ,SF= ,AF= ,PF= ;若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?5)指令“MOV SUM,AL”中,目的操作数的寻址方式为,该指令执行完后,注意观察(DS):0003H单元中值的变化,该单元的值变为H。
指令实验报告指令实验报告一、引言计算机指令是计算机系统中的基本操作单位,它们决定了计算机能够执行的任务和操作。
指令集架构是计算机体系结构的重要组成部分,对计算机系统的性能和功能起到了至关重要的作用。
本实验旨在通过对指令集架构的实验研究,深入了解指令的执行过程和机器指令的设计原则。
二、实验目的本实验的主要目的是通过设计和实现一系列机器指令,来掌握指令的编码方式、指令的执行过程以及指令的设计原则。
通过实验,可以加深对计算机体系结构的理解,提高对计算机指令的使用和优化能力。
三、实验内容1. 设计一组机器指令集,包括算术运算指令、逻辑运算指令、条件分支指令和数据传输指令等。
2. 实现指令集的编码和解码器,将指令转化为计算机可以识别和执行的二进制码。
3. 搭建计算机系统,包括中央处理器(CPU)、存储器和输入输出设备。
4. 编写指令的执行程序,模拟指令的执行过程,并进行测试和验证。
四、实验步骤1. 设计机器指令集。
根据实验要求和需求,设计一组满足功能要求的机器指令集,并确定指令的格式和编码方式。
2. 实现指令的编码和解码器。
根据指令集的设计,编写编码和解码器的代码,将指令转化为计算机可以理解的二进制码,并将其解码为可执行的指令。
3. 搭建计算机系统。
根据实验要求,搭建计算机系统,包括CPU、存储器和输入输出设备等,确保计算机系统能够正常工作。
4. 编写指令执行程序。
根据指令集的设计和编码方式,编写指令的执行程序,模拟指令的执行过程,并进行测试和验证。
五、实验结果与分析通过实验,我们成功设计和实现了一组机器指令集,并完成了指令的编码和解码器的开发。
在搭建计算机系统后,我们编写了指令的执行程序,并进行了测试和验证。
实验结果表明,指令的执行程序能够正确地执行指令,并输出正确的结果。
通过对实验结果的分析,我们可以得出以下结论:1. 指令的编码方式对指令的执行效率和系统性能有重要影响。
合理设计指令的编码方式可以提高指令的执行效率和系统的性能。
实验三基本指令的使用
(一)实验目的与要求
1、加深对语法规则的认识,为后续编程打下基础
2、对指令的执行情况进行分析并通过上机验证
(二)实验重点与难点
1、汇编程序的格式要求
2、汇编指令执行结果的察看
(三)实验类型:验证性实验
(四)实验学时:2 学时
(五)实验主要内容
1、实验中提供一个程序框架,文件名为sy3.asm,同学们打开该文件后,在文件中的空
行处按下面的要求填入相应内容。
2、在程序中按顺序加入以下功能指令
将AX、BX分别置初始值8234H和9040H
用直接寻址方式将vax1单元的值送入CX
将vax2单元的偏移量送入SI
用BX和SI的基址变址寻址方式读取一个数据传送给DX
将ax,bx,cx,dx的值依次入栈
将当前的栈顶单元内容出栈送给DI
将AX、BX做加法运算,值存入BX
将BX的值加上20
将vax1单元的值和DI的值相加,结果存在内存中。
3、将程序编译,连接成功生成相应的exe文件
4、用debug的T命令章步执行该程序,察看各指令执行后的结果以及最后三条指令执行后
标志位的值并记录。
5、在实验报告中将补充的指令写出来,并将每条指令执行后其目的操作数的值及最后三条
指令执行后标志位的值记录。
基本指令的应用实验原理1. 引言在计算机科学中,指令是计算机执行特定操作的一组指示。
指令是计算机程序的基本构建模块,通过组合不同的指令,可以完成各种复杂的任务。
在本文中,我们将探讨基本指令的应用实验原理。
2. 实验目的本实验的目的是了解基本指令的应用,并通过实际操作来加深对指令的理解。
通过这些实验,我们可以掌握如何编写和执行基本指令,从而为进一步学习计算机科学打下坚实的基础。
3. 实验步骤以下是实验中常用的基本指令及其应用实验原理的一些列点:•加载指令:用于将数据从存储器加载到寄存器中,以供后续指令使用。
加载指令的原理是通过地址寻址将数据从存储器读取到寄存器中。
•存储指令:用于将数据从寄存器存储到存储器中,以便后续操作使用。
存储指令的原理是通过地址寻址将数据从寄存器写入到存储器中。
•算术指令:用于进行基本的算术运算,例如加法、减法、乘法和除法等。
算术指令的原理是通过执行特定的算术运算来得到结果。
•逻辑指令:用于进行逻辑运算,例如与、或、非、异或等。
逻辑指令的原理是通过执行特定的逻辑运算来得到结果。
•转移指令:用于改变程序的控制流程,例如无条件跳转、条件跳转和循环等。
转移指令的原理是通过改变指令的执行顺序来实现程序的分支和循环。
4. 实验原理基本指令的实验原理是通过编写和执行特定的指令来实现特定的操作。
在计算机中,指令通常是以二进制形式表示的。
计算机通过解码和执行这些二进制指令来完成各种任务。
指令的编写通常是由程序员完成的。
程序员使用特定的程序设计语言来编写指令,然后将程序翻译成计算机可以执行的机器代码。
编写指令需要考虑指令的格式、操作数的类型和寻址方式等。
指令的执行是由计算机硬件完成的。
计算机根据当前指令的二进制编码来执行相应的操作,并更新寄存器和存储器中的数据。
执行指令需要考虑指令的时序、数据的传输和运算等。
5. 实验结果通过实验,我们可以获得以下结果: - 加载指令可以成功将数据从存储器加载到寄存器中。
第三章 基本指令实验§3.1 [实验3.1] 循环操作一、实验目的1. 掌握循环操作指令的运用;2. 掌握用汇编语言编写DSP 程序的方法。
二、实验设备1.一台装有CCS 软件的计算机;2. DSP 实验箱的TMS320C5416主控板;3. DSP 硬件仿真器。
三、实验原理TMS320C54x 具有丰富的程序控制与转移指令,利用这些指令可以执行分支转移、循环控制以及子程序操作。
本实验要求编写一程序完成 ∑==51i i x y 的计算。
这个求和运算可以通过一个循环操作指令BANZ 来完成。
BANZ 的功能是当辅助寄存器的值不为0时转移到指定标号执行。
例如:STM #4, AR2loop:ADD *AR3+, A BANZ loop, *AR2– ;当AR2不为零时转移到loop 行执行。
假设AR3中存有x 1到x 5五个变量的地址,则上述简单的代码就完成了这五个数的求和。
四、实验步骤1. 学习有关指令的使用方法;2. 在CCS 环境中打开本实验的工程(Ex3_1.pjt ),阅读源程序;3. 编译并重建 .out 输出文件(Rebuild All …),然后通过仿真器把执行代码(.out 的文件)下载到DSP 芯片中;4.在“end:B end”代码行设置断点(当光标置于改行时,单击工具条上的Toggle Breakpoint图标,此时该行代码左端会出现一个小红点或双击此行),单击运行;5.选择“View”->“memory”,起始地址设为“0x0060”,观察内存数值的变化。
应能看到五个加数的值及其求和值。
注意查看0X0060--0X0065单元中计算值显示的十六进制结果。
6. 停止程序的运行(单击);7.尝试改变对变量的初始赋值,或者增加或减少变量数目,重复上述3~6步过程,验证程序运行结果。
五、思考题1.总结迭代次数与循环计数器初值的关系(在本实验的代码中,用AR2作为循环计数器,设其初值为4,共执行了5次加法。
);2.学习其它转移指令。
§3.2 [实验3.2] 双操作数乘法一、实验目的1. 掌握TMS320C54x 中的双操作数指令;2. 掌握用汇编语言编写DSP 程序的方法。
二、实验设备1.一台装有CCS 软件的计算机;2. DSP 实验箱的TMS320C5416主控板;3. DSP 硬件仿真器。
三、实验原理TMS320C54x片内的多总线结构,允许在一个机器周期内通过两个16位数据总线(C 总线和D 总线)寻址两个数据和系数。
双操作数指令是用间接寻址方式获得操作数的,并且只能用AR2到AR5的辅助寄存器。
双操作数指令占用较少的程序空间,而获得更快的运行速度。
现举一例说明双操作数指令的用法。
试求y=mx+b ,则用单操作数指令的代码应该如下:LD @m, TMPY @x, A ; 单操作数乘法指令ADD @b, A STL A, @y 若用双操作数乘法指令则改为:STM @m, AR2STM @x, AR3MPY *AR2, *AR3, A ; 双操作数乘法指令ADD @b, A STL A, @y表面上从代码的行数来看,用双操作数乘法指令似乎没有什么显著优势,但是双操作数指令可以节省机器周期,这在某些迭代运算过程中是十分有用的;迭代次数越多,节省的机器时间越多。
本实验要计算的乘法累加∑==101i i i x a z 就是双操作数指令的一种应用场合。
四、实验步骤1. 学习有关双操作数乘法指令的使用方法;2. 在CCS 环境中打开本实验的工程(Ex3_2.pjt ),阅读源程序;3.编译并重建.out 输出文件,然后通过仿真器把执行代码(.out的文件)下载到DSP芯片中;4.在“end:B end”代码行设置断点(或双击此行便可完成断点设制),单击运行;5.选择“View”->“memory”,起始地址设为“0x0060”,观察内存数值a,x和z的变化。
注意查看0X0060--0X0075单元中计算值显示的十六进制结果。
6. 停止程序的运行(单击);7.改变对变量a i和x i的初始赋值,重复上述过程,验证程序运行结果。
五、思考题1.试用单操作数指令完成上述计算;2.学习其它双操作数指令。
§3.3 [实验3.3] 并行运算一、实验目的1.掌握TMS320C54x中的并行运算指令;2.掌握用汇编语言编写DSP程序的方法。
二、实验设备1.一台装有CCS软件的计算机;2. DSP实验箱的TMS320C5416主控板;3. DSP硬件仿真器。
三、实验原理TMS320C54x片内有1条程序总线,3条数据总线和4条地址总线。
这3条数据总线(CB、DB和EB)将内部各单元连接在一起。
其中,CB和DB总线传送从数据存储器读出的操作数,EB总线传送写到存储器中的数据。
并行运算就是同时利用D总线和E总线。
其中,D总线用来执行加载或算术运算,E总线用来存放先前的结果。
并行指令有并行加载和乘法指令,并行加载和存储指令,并行存储和乘法指令,以及并行存储和加/减法指令4种。
所有并行指令都是单字单周期指令。
并行运算时存储的是前面的运算结果,存储之后再进行加载或算术运算。
这些指令都工作在累加器的高位,且大多数并行运算指令都受ASM(累加器移位方式位)影响。
现举一个并行指令为例:ST src, Ymem ; Ymem = src << (ASM-16)|| LD Xmem, dst ; dst = Xmem <<16这个并行加载和存储指令实现了存储ACC和加载累加器并行执行。
其它的并行指令请读者查阅相关资料。
本实验中要求用并行运算指令编写程序完成z = x + y和f = e + d的计算。
四、实验步骤1.学习有关并行指令的使用方法;2.在CCS环境中打开本实验的工程(Ex3_3.pjt),阅读源代码Ex3_3.asm;3.编译并重建.out 输出文件,然后通过仿真器把执行代码(.out的文件)下载到DSP芯片中;4.单击运行;5.选择“View”->“memory”,起始地址设为“0x0060”,观察内存数值的变化。
应能看到z=x+y和f=d+e的结果。
注意查看0X0060--0X0065单元中计算值显示的十六进制结果。
6. 停止程序的运行(单击);7.尝试改变对变量x, y, d和e的初始赋值,重复上述过程,验证程序运行结果。
五、思考题1.学习其它并行指令,理解其工作原理。
§3.4 [实验3.4] 小数运算一、实验目的1. 掌握TMS320C54x 中小数的表示和处理方法;2. 掌握用汇编语言编写DSP 程序的方法。
二、实验设备1.一台装有CCS 软件的计算机;2. DSP 实验箱的TMS320C5416主控板;3. DSP 硬件仿真器。
三、实验原理两个16位整数相乘,乘积总是“向左增长”,这意味着多次相乘后乘积将会很快超出定点器件的数据范围。
而且要将32位乘积保存到数据存储器,就要开销2个机器周期以及2个字的程序和RAM 单元;并且,由于乘法器都是16位相乘,因此很难在后续的递推运算中,将32位乘积作为乘法器的输入。
然而,小数相乘,乘积总是“向右增长”,这就使得超出定点器件数据范围的是我们不太感兴趣的部分。
在小数乘法下,既可以存储32位乘积,也可以存储高16位乘积,这就允许用较少的资源保存结果,也便于用于递推运算中。
这就是为什么定点DSP 芯片都采用小数乘法的原因。
小数的表示方法: TMS320C54x 采用2的补码表示小数,其最高位为符号位,数值范围为 (–1~1)。
一个十进制小数(绝对值)乘以32768后,再将其十进制整数部分转换成十六进制数,就能得到这个十进制小数的2的补码表示,例如:0.5乘以32768得16384,再转换成十六进制就得到4000H ,这就是0.5的补码表示形式。
在汇编语言程序中,由于不能直接写入十进制小数,因此如果要定义一个小数0.707,则应该写成word 32768*707/1000,而不能写成32768*0.707。
在进行小数乘法时,应事先设置状态寄存器ST1中的FRCT 位(小数方式位)为“1”,这样,在乘法器将结果传送至累加器时就能自动地左移1位,从而自动消除两个带符号数相乘时产生的冗余符号位。
使用的语句是SSBX FRCT 在本实验中,要求编写程序完成 ∑==41i i i x a y 的计算,其中的数据均为小数: a1=0.1 a2=0.2 a3=–0.3 a4=0.2x1=0.8 x2=0.6 x3=–0.4 x4=–0.2注意源代码中小数的表示。
四、实验步骤1.在CCS环境中打开本实验的工程(Ex3_4.pjt),阅读源代码Ex3_4.asm;2.编译并重建.out 输出文件,然后通过仿真器把执行代码(.out的文件)下载到DSP芯片中;3.单击运行;4.选择“View”->“memory”,起始地址设为“0x0060”,观察内存数值的变化。
注意查看0X0060--0X0068单元中计算值显示的十六进制结果。
其中计算结果为y=0.24=1EB7H;5. 停止程序的运行(单击);6.尝试改变变量的赋值,重复上述过程,验证程序运行结果。
五、思考题a)以375⨯为例分析两个带符号数相乘时的冗余符号位是如何产生的,理解为什么要设5.0-.0定FRCT(小数)位。
(注解: 冗余符号位是两个代符号数相乘时存储器自动留出符号位的空间因此而产生;设置FRCT 是为了减去多出来的一个符号位.)§3.5 [实验3.5] 长字运算一、实验目的1.掌握TMS320C54x中的长字指令;2.掌握用汇编语言编写DSP程序的方法。
二、实验设备1.一台装有CCS软件的计算机;2. DSP实验箱的TMS320C5416主控板;3. DSP硬件仿真器。
三、实验原理TMS320C54x可以利用32位的长操作数进行长字运算。
长字指令如下:DLD Lmem, dstDST src, LmemDADD Lmem, src [,dst]DSUB Lmem, src [,dst]DRSUB Lmem, src [,dst]除了DST指令外,都是单字单周期指令,也就是在单个周期内同时利用C总线和D总线得到32位操作数。
DST指令存储32位数要用E总线2次,因此需要2个机器周期。
长操作数指令中的一个重要问题是,高16位和低16位操作数在存储器中如何排列。
一般情况下,高16位操作数放在存储器中的低地址单元,低16位操作数放在存储器中的高地址单元。
例如一个长操作数16782345H,它在存储器中的存入方式是:(0060H)=1678H(高字),(0061H)=2345H(低字)。