汇编语言程序设计实验报告
汇编语言程序设计实验报告

微机原理实验报告实验名称汇编语言程序设计一、实验目的1、掌握Lab6000p实验教学系统基本操作;2、掌握8088/8086汇编语言的基本语法结构;3、熟悉8088/8086汇编语言程序设计基本方法二、实验设备装有emu8086软件的PC机三、实验内容1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。
编程并显示结果:如果数组是无符号数,求出最大值,并显示;如果数组是有符号数,求出最大值,并显示。
2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:”3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的ASCII是:”4、两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。
在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子程序)5、键盘输入一个小写字母(a~z),转换成大写字母显示:请输入一个小写字母(a~z):转换后的大写字母是:6、实现4字节无符号数加法程序,并显示结果,如99223344H +99223344H = xxxxxxxxH四、实验代码及结果实验代码见代码附录1.1程序运行结果图1 无符号最大值结果截图1.1 程序运行结果图2 有符号最大值截图2.0 程序运行结果图3 BCD码显示3.0 程序运行结果图4 ASCII码显示4.0 程序运行结果图5 移动次数显示5.0 程序运行结果图6 大小写转化6.0 程序运行结果图7 相加结果显示五、分析与总结。
汇编语言指令及伪指令练习的实验报告总结(范文)

汇编语言指令及伪指令练习的实验报告总结汇编语言指令及伪指令练习的实验报告总结篇一:汇编语言实验报告福建农林大学金山学院课程名称:姓名:系:专业:年级:学号:指导教师:职称: (程序设计类课程) 实验报告汇编语言 201X~201X学年第二学期实验项目列表福建农林大学金山学院实验报告系:专业:年级:姓名:学号:实验课程:汇编语言实验室号:_ _1#605 实验设备号: I3 实验时间:201X.4.25指导教师签字:成绩:实验一汇编程序的汇编及运行1.实验目的和要求 (1)熟悉汇编程序的汇编、连接、执行过程;(2)生成LST文件,查看L ST文件;(3)生成BJ文件,修改语法错误;(4)生成EXE文件;(5)执行程序。
2.实验环境 IBM—PC机及其兼容机;实验的软件环境是:操作系统: DS2.0以上;调试程序: DEBUG.CM;文本编程程序: EDIT.EXE、PS.EXE;宏汇编程序:MA SM.EXE(或AS M .EXE);连接装配程序:L INK .EXE;交叉引用程序:CREF.EXE(可有可无)。
3.实验内容及实验数据记录(1)将数据段输入,取名 1.txt,保存在MASM文件夹下。
生成LST文件,(不必连接、运行)用EDI T查看1.LS T文件。
试回答: DA1,DA2的偏移量分别是多少?C UNT的值为多少?DATA SEGME NT RG 20HNUM1=8 NUM2=NUM1+10H DA1 DB ‘I BM PC’ CUN T EQU $-DA1 DATA END S DA2 DB 0AH, 0DH EN D(2)输入有错误的文件,修改错误语句。
(MASM没有出现错误即可。
不必连接、运行。
)D ATA SEGMEN T VAR1 DB0, 25, DH,300 VAR2DB 12H, A4H, 6BH VAR3 DB ’ABCD EF’ VAR4 D 1H, 5678H VAR5 D 10H DUP(?) D ATA ENDS C DE SEGMENT ASSUME CS: CDE, DE: DATA MV D S, AX LEASI, VAR5 M V BX, FFSE T VAR2 MV[SI], 0ABH MV AX, VA R1+2 MV [B X], [SI] M V VAR5+4,VAR4 MV AH, 4CH INT21H ENDS E ND START B EING MV AX, DATA CDE(3)输入正确的程序,汇编、连接、运行 STACKS SEGMENT S TACK D 128DUP(?) EN DS SEGMENT ENDS SEGM ENT ASSUME CS: CDES,DS: DATAS STACKS DA TAS DATASCDES STRIN G DB ‘ELCM E!’, 13, 10, ‘$’ STA RT: MV AX, DATAS MV DS, AX LEA DX, S TRING MV A H, 9 INT 21H MV AH,4CH INT 21H CDES END S END STAR T4.算法描述及实验步骤 1)首先,用记事本输入各段程序,并储存成源程序,保存在MASM目录下。
汇编语言实验报告

合肥工业大学实验报告课程:汇编语言程序设计专业班级:学号:姓名:实验一Debug程序的使用一. 实验目的1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。
2、掌握8086/8088的寻址方式及多字节数据的处理方法。
二. 实验内容1、利用DEBUG程序中的“E”命令,将两个多字节数“12345678H”和“FEDCBA98H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。
2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H 单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。
要求:本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。
三. 实验过程和程序基础题:1、利用DEBUG程序中的“E”命令,将两个多字节数“12345678H”和“FEDCBA98H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。
2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。
附加题:1. 从DS:0000H开始的5个16位带符号数分别记为x,y,z,v,w,用E命令初始化为:540,1,-1,1080,0, 试求w=(v-(x*y+z-540))/x2. 完成BX中1的个数的统计。
3. 用串操作指令将DS:0000开始20个字节初始化为:0CCH。
并将这20个字节的内容复制到其后的20个字节里。
四. 实验结果(包括必要的截图)基础题 1:基础题 2:附加题 1:附加题 2:附加题 3:五. 实验体会1. 在汇编语言中,变量的其实都是地址。
2. 在Debug中,数值都是16进制的。
3. 在读写内存中的数据时,必须指出数据类型是byte还是word。
《汇编语言》实验报告(一)

五、使用说明(包括:程序的使用方法,调用方式,操作步骤等;要求输入信息的类型及格式;出错信息的含义及程序的适用范围等。)
六、实验中遇到ห้องสมุดไป่ตู้问题及解决方法
七、程序源代码
完成日期:___________
《汇编语言》实验报告(一)
年级:______________班级:_________学号:___________姓名:___________
一、实验题目
二、实验要求
三、程序设计说明(用来说明程序的功能、结构。包括:程序名、功能、原理及算法说明、程序及数据结构、主要符号名的说明、程序框图等。)
四、程序调试说明(包括:调试情况,如上机时遇到的问题及解决办法,观察到的寄存器、存储器的内容或状态及其分析.对程序设计技巧的总结及分析等;程序的输出结果及对结果的分析;实验的心得体会,以及诸如调试日期、文件存放位置等需要记录的信息。)
汇编语言课程设计1实验报告

汇编语言课程设计1实验报告一、引言本实验报告旨在探讨汇编语言课程设计1的实验内容和相关实验结果。
通过对实验的详细介绍和分析,可以更好地理解和应用汇编语言的基本知识和技术。
本实验报告分为以下几个部分进行讨论。
二、实验目的本实验旨在通过设计汇编语言程序,掌握汇编语言的基本语法和编程技巧,提高对计算机底层的理解和应用能力。
具体实验目的如下:1.熟悉汇编语言的基本知识和编程环境;2.学习如何使用汇编语言进行简单的数据处理和运算;3.掌握汇编语言中的跳转、循环和分支等控制结构;4.加深对计算机组成原理的理解和应用。
三、实验设计3.1 实验环境本实验使用的汇编语言编程环境为MASM(Microsoft Macro Assembler),具体配置如下:•操作系统:Windows 10•开发工具:MASM32•编辑器:Notepad++3.2 实验内容本实验的实验内容为实现一个简单的加法计算器程序。
具体要求如下:1.输入两个整数,并将其保存到内存;2.将两个整数相加,并将结果保存到内存;3.从内存读取结果,并输出到屏幕。
3.3 实验步骤下面是实验的具体步骤:1.打开MASM32开发工具,创建一个新的汇编语言项目;2.在编辑器中编写汇编语言程序,包括数据定义、输入输出处理和计算过程;3.使用MASM进行编译和链接,生成可执行程序;4.运行程序,输入两个整数,并查看输出结果。
四、实验结果经过以上步骤,我们成功实现了一个简单的加法计算器程序。
以下是实验结果的截图:Enter the first number: 10Enter the second number: 20The sum is: 30五、实验分析通过以上实验结果可以看出,我们的加法计算器程序能够正确地将输入的两个整数相加,并输出计算结果。
这证明我们所编写的汇编语言程序是正确的。
同时,通过这个实验,我们还可以总结出一些经验和教训:•在程序设计过程中,要仔细考虑数据定义和处理逻辑的正确性和合理性;•在编写汇编语言程序时,要注意语法和命令的正确使用,避免出现语法错误;•在调试程序时,要仔细检查每一步执行的结果,找出可能的错误原因。
计算机汇编语言实验报告

计算机汇编语言实验报告一、实验目的本实验旨在通过编写计算机汇编语言程序,加强对计算机组成原理和汇编语言的理解,同时熟悉实际编写和调试过程。
二、实验内容1.用汇编语言编写一个简单的计算器程序,实现加法和减法操作。
2.编译并运行程序,测试其功能的正确性。
3.运用调试工具进行程序的调试,检查代码的运行流程。
三、实验步骤1.确定程序功能和设计思路:本次实验的目标是编写一个计算器程序,能够对两个数进行加法和减法操作。
我们可以通过定义一些操作码来表示不同的操作,再通过输入不同的操作码来执行相应的操作。
2.编写汇编语言程序:首先,需要定义一些变量和常量来存储输入的数和操作码。
然后,使用汇编语言的运算指令和控制指令来实现加法和减法操作,并将结果存储到指定的变量中。
最后,使用输出指令来显示结果。
3.编译并运行程序:将汇编语言程序编译为机器码,并通过计算机的指令集执行程序。
4.调试程序:利用调试工具,逐步执行程序,检查代码的运行流程和结果的正确性。
如有错误,进行适当的修改和调试。
5.测试功能和性能:使用不同的数和操作码进行测试,验证程序的功能和正确性。
四、实验结果经过编写、编译和调试,我们成功实现了一个简单的计算器程序。
程序能够根据输入的操作码,对两个数进行加法和减法操作,并将结果显示出来。
经过多次测试,程序的功能、正确性和性能都符合预期要求。
五、实验感想通过本次实验,我们对计算机组成原理和汇编语言有了更深入的理解。
在编写程序的过程中,我们发现汇编语言相比高级语言更加底层,需要考虑更多的细节和机器指令的使用。
同时,我们也意识到了调试的重要性,调试工具能够帮助我们分析和修正代码的错误,提高程序的质量。
六、实验总结通过本次实验,我们对计算机汇编语言的应用有了更深入的了解。
我们掌握了汇编语言程序的基本结构和语法规则,学会了使用汇编语言指令进行计算和控制。
同时,我们也提升了调试和测试的能力,加深了对计算机组成原理和汇编语言的理解。
汇编语言实验报告_6
青岛理工大学课程实验报告
课程名称汇编语言程序设计班级实验日期
2013.11.3
姓名学号实验成绩
实验
名称
子程序
实验目的及要求1.掌握子程序设计相关指令和伪指令的使用方法
2.掌握子程序设计方法, 特别是参数传递方法
3.掌握主程序和子程序之间的调用关系和调用方法
4.熟悉循环和子程序结合应用解答问题的思路
实验环境1.命令行方式
2.MASM.EXE LINK.EXE DEBUG.EXE
实验内容1.设DATA1开始的内存单元中, 存放着一串带符号字数据, 要求采用冒泡排序算法(Bubble Sort)按照从小到大的顺序排序并将排好序的数据存在DATA1开始的单元。
然后在显示器输出排好序的数据, 中间用’,’隔开。
2.输出数据使用子程序方式。
算法描述及实验步骤步骤:
(1)设置数据段地址
(2)设置堆栈段地址
(3)设置堆栈指针
(4)调用9号功能, 输出一个提示性字符串。
(5)循环进入子程序, 输出原始数据。
(6)在子程序内循环输出每一位的十进制数字。
(7)主程序进行内外循环, 进行冒泡排序。
(8)再一次调用子程序输出排序后的结果。
调试过程及实验结果调试过程:
(2)(1)在输出时, 调用DOS 9号功能, 并不是只要语句MOV AH,09H
(3)它是存在入口条件的, 入口条件:DS:DX=输出字符缓冲区首地址。
所以前面必须加上MOV DX,OFFSET NOTE1。
(4)汇编语言是不会再输出汉字的。
(5)子程序结束时一定要有RET
(6)冒泡排序也遇到一些困难。
调试结果:。
汇编语言程序设计实验报告二
汇编语言程序设计实验报告(二)一、实验目的1)加深对循环结构的理解。
2)掌握循环程序的设计方法。
3)学习子程序的定义和调用方法。
4)掌握子程序、子程序的嵌套、递归子程序的结构。
5)掌握子程序设计、编制及调试。
6)熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
二、实验内容1)编制在屏幕上显示九九乘法表的程序。
2)编制在屏幕上显示用*组成的三角形的程序。
三、实验结果(1)(2)四、源代码(1)DA TA SEGMENTM DB 31H,32H,33H,34H,35H,36H,37H,38H,39H DA TA ENDSSTACK1 SEGMENT STACKDW 20H DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACK1 START:MOV AX,DA TAMOV DS,AXMOV CX,9MOV DI,OFFSET MLOP1:PUSH CXMOV CX,[DI]AND CX,0FHMOV SI,OFFSET M LOP2:MOV AL,[SI]MOV DL,ALMOV AH,2INT 21HAND AL,0FHMOV BH,ALMOV DL,'*'MOV AH,2INT 21HMOV BL,[DI]MOV DL,BLMOV AH,2INT 21HMOV DL,'='MOV AH,2INT 21HAND BL,0FHMOV AL,BHMOV AH,0MOV DL,10DIV DLMOV BL,AHCMP AL,0JE NEXTMOV DL,ALADD DL,30HMOV AH,2INT 21H NEXT:MOV DL,BLADD DL,30HMOV AH,2INT 21HMOV DL,' 'MOV AH,2INT 21HINC SILOOP LOP2MOV DL,0AHMOV AH,2MOV DL,0DHINT 21HINC DIPOP CXLOOP LOP1MOV AH,4CHINT 21HCODE ENDSEND START(2)STACK1 SEGMENT STACKDW 20H DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK1 BEGIN:MOV AH,1INT 21HMOV BL,ALSUB BL,30HMOV DL,0AHINT 21HMOV DL,0DHMOV AH,2INT 21HMOV BH,0MOV CX,BXMOV BX,1L1: PUSH CXMOV CX,BX L2: MOV DL,'*'MOV AH,2INT 21HLOOP L2MOV DL,0AHMOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HADD BX,1POP CXMOV AH,4CHINT 21HCODE ENDSEND BEGIN五、实验心得这是第二次做汇编实验,首先,心理上已经没有了第一次做实验的那种茫然,知道了想要编写一个完整的程序,应当先将这一个大问题分解成若干个小的问题,找出每一个小问题所对应的解决方法,然后用代码一步一步实现,再将这一个一个的小问题串联起来,找到它们的契合点,用联系把它们组成一个完整的程序,其中最常用的就是转移指令和循环。
汇编语言编程实验报告
汇编语言编程实验报告实验目的:使用汇编语言编写程序,实现特定功能。
实验过程和结果:1. 程序设计在本次实验中,我们使用汇编语言编写程序,实现了一个简单的计算器功能。
以下是我们设计的程序伪代码:```data segment; 定义数据段operand1 db ?operand2 db ?operator db ?result db ?data endscode segmentassume cs:code, ds:datastart:; 程序入口mov ax, datamov ds, ax; 获取用户输入mov ah, 01hint 21hmov operator, almov ah, 01hint 21hmov operand1, almov ah, 01hint 21hmov operand2, al; 根据运算符进行计算 cmp operator, '+'je addcmp operator, '-'je subcmp operator, '*'je mulje div; 显示结果mov dl, resultadd dl, 30h ; 转换为ASCII码 mov ah, 02hint 21h; 程序结束mov ah, 4chint 21hadd:; 加法运算mov al, operand1add al, operand2mov result, aljmp displaysub:; 减法运算mov al, operand1mov result, aljmp displaymul:; 乘法运算mov al, operand1mul operand2mov result, aljmp displaydiv:; 除法运算mov al, operand1mov ah, 0 ; 清空余数 div operand2mov result, aljmp display display:; 显示计算结果mov dl, resultadd dl, 30h ; 转换为ASCII码mov ah, 02hint 21h; 程序结束mov ah, 4chint 21hcode endsend start```2. 实验结果运行程序后,我们通过键盘输入运算符和操作数,程序能够正确地进行相应的运算并显示结果。
《汇编语言》实验报告模板实验一
成 绩 评 定 教师签名: 2015 年 月 日
1. 熟练操作宏汇编的开发环境,熟悉汇编语言的编译工具(MASM6.11)及调试器
(Windbg)的使用。
2. 掌握汇编语言的寻址方式和常用指令。 3. 掌握汇编语言基本的程序设计方法和调试手段。 4. 掌握子程序和宏指令的设计和调试手段。
实验要求:
1. 上机前应做好充分的准备。对选定的实验题要先进行设计包括程序框图、数据
2、执行结果截图
内容包括:总结经验提高编程及调试能力。调试情况,如上机时遇到的问题及解决的办 法,观察到的现象及其分析,对程序设计技巧的总结及分析等;程序的输出结果及对结 果的分析;实验的心得体会等。
实 验 结 果 分 析 及 心 得 体 会
通过本次实验熟悉了汇编语言的寻址方式和一些常用指令(运算,循环,过程及 其调用) ,了解了汇编语言中程序的特点,掌握了汇编语言中程序编写的方法,完善了 编写一个完整的简单程序的整体思维结构。
grade 2 ? percent 2 ? grade 3 ? percent 3 ? 75 20 82 60
score is : 81 提示: 总评成绩 = (期中成绩×百分比 1+实验成绩×百分比 2+期末成绩×百分比 3)/100
1、程序清单。 数据段:
.DATA ; reserve storage for data grade1 DWORD ? grade2 DWORD ? grade3 DWORD ? string BYTE 20 DUP (?) prompt1 BYTE "Please input the grade1 : ",0 prompt2 BYTE "Please input the percent of the grade1 : ",0 prompt3 BYTE "Please input the grade2 : ",0 prompt4 BYTE "Please input the percent of the grade2 : ",0 prompt5 BYTE "Please input the grade3 : ",0 prompt6 BYTE "Please input the percent of the grade3 : ",0 prompt7 BYTE "The result is : ",cr,lf,0 sum DWORD ? result BYTE 20 DUP (?) BYTE cr,lf,0
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖北师范学院 物理与电子科学学院
汇编语言程序设计实验报告
实验名称:DSP实验 班级:1 姓名 学号: 实验一 堆栈的使用方法 一、实验目的 掌握堆栈的使用方法。
二、实验设备 计算机、DSP 实验箱。
三、实验内容 编写程序,观察堆栈的使用情况。
四、实验步骤 1、用仿真器将计算机与DSP 实验箱连接好,并依次打开实验箱电源、仿真器电源,然后运行CCS 软件。 2、新建一个项目: 点击Project-New,将项目命名为example3,并将项目保存在自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CCS 软件不能识别以中文命名的文件夹。 3、新建一个源文件: 点击File-New-Source File 可以打开一个文本编辑窗口,点击保存按键,保存在和项目相同的一个文件夹下面(example3),保存类型选择*.ASM(如果源文件是C 语言编写的,保存类型选择*.C,本实验中的例程是使用汇编语言编写的,所以选择*.ASM 为保存类型),我们在这里将保存名字命名为example3.asm 。 4、在项目中添加源文件: 在新建了一个源文件以后,要想使用CCS 编译器对该源文件进行编译还需要将源文件添加到项目中去。添加方法是在工程管理器中右键单击example3.pjt,在弹出的菜单中选择Add Files,然后将刚才建立的example3.asm 文件添加到该项目中去。 5、编写源程序: 在工程管理器中双击example3.asm ,将出现文本编辑窗口,在该文本编辑窗口中输入如下内容: .title "example3.asm" .mmregs size .set 100 stack .usect "STK",size ;堆栈的设置 .bss length,10H .def _c_int00;start .text _c_int00: B start; start: STM #0,SWWSR ;插入0 个等待状态 STM #stack+size,SP ;设置堆栈的指针 LD #-8531,A STM #size,AR1 MVMM SP,AR7 loop: STL A,*AR7- BANZ loop,*AR1- .end 6、编写链接配置文件: 只有汇编源程序是不够的,一个完整的DSP 程序至少包含三个部分:主程序、中断向量表、链接配置文件(*.cmd)。这里先介绍一下链接配置文件。 链接配置文件有很多功能,这里先介绍最常用的也是必须的两条:1.存贮器的分配2.标明程序入口。 由于每个程序都需要一个链接配置文件,每个程序的链接配置文件根据实际情况的需要都略有不同,下面就为本实验的程序编写一个链接配置文件,其它实验的链接配置文件都可以参考与本书配套的相应例程来完成: /*example3.cmd */ vectors.obj /*中断向量的目标文件*/ Example3.obj /*产生目标文件*/ -o example3.out /*产生可执行下载文件,文件名可以根据不同项目而定*/ -m example3.map /*产生存储器映射文件,文件名可以根据不同项目而定*/
MEMORY { PAGE 0: /*定义程序存贮区*/ EPROG: origin = 0x4000, len = 0x3f80 VECT: origin = 0x7f80, len = 0x80 PAGE 1: /*定义数据存贮区*/ SYSREGS: origin = 0x00, len = 0x60 BIOSREGS: origin = 0x60, len = 0x20 IDATA: origin = 0x80, len = 0x3f00 EDATA: origin = 0x8000, len = 0x8000 } SECTIONS { .text :> EPROG PAGE 0 /*将.text 段映射到PAGE0 的EPROM 区*/ .data :> EPROG PAGE 0 /*将.data段映射到PAGE0 的EPROM 区*/ .vectors: > VECT PAGE 0/*将中断向量表定位到PAGE0 的VECS 区*/ .bss: > IDATA PAGE 1 /*将.bss段映射到PAGE1 的IDATA 区*/ STACK: > IDATA PAGE 1 /*将.stack 段映射到PAGE1 的IDATA 区*/ }
7、编写中断向量表文件 ;/* vectors.asm */ .title "vectors.asm" ;/*中断向量表的文件名*/ .ref _c_int00;start /*引用外部定义的标号*/ .sect ".vectors" ;/*定义初始化的段名*/ B _c_int00;start /*引用start*/ .end 8、对项目进行编译和链接: 把example3.asm、vectors.asm、example3.cmd 依次添加到项目后,点击Project-CompileFile,在项目编译成功之后点击Project-Build 选项对该项目进行链接,生成*.out 文件。 9、装载可执行文件: 要让程序代码在DSP 内部运行必需将生成的*.OUT 文件装载到DSP 内部,装载方法是点击:File-Load Programe 再选择生成的example3.out 文件就可以将程序装载到DSP 的内部存储器中。 10、运行程序并查看结果: a)首先打开欲查看的数据空间:点击View-Memory,弹出“Memory Window Options”对话框,把欲查看的地址改为0x0090,如右图所示。
b)点击OK 按钮,然后点击Debug-Run 让程序在DSP内部运行,最后点击Debug-Halt,再观察“Memory ”对话框,看是否与下图一致:
四、实验结果 实验结果截图如下所示: 实验二 加减法和乘法运算 一、实验目的 掌握加减法和乘法运算指令。
二、实验设备 计算机、DSP 实验箱。
三、实验内容
编写程序,分别实现计算z=x+y-w、y=mx+b、y=x1×a2+x2×a2、。 四、实验步骤 1、用仿真器将计算机与DSP 实验箱连接好,并依次打开实验箱电源、仿真器电源,然后运行CCS 软件。 2、新建一个项目: 点击Project-New,将项目命名为example4,并将项目保存在自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CCS 软件不能识别以中文命名的文件夹。 3、新建一个源文件: 点击File-New-Source File 可以打开一个文本编辑窗口,点击保存按键,保存在和项目相同的一个文件夹下面(example4),保存类型选择*.ASM(如果源文件是C 语言编写的,保存类型选择*.C,本实验中的例程是使用汇编语言编写的,所以选择*.ASM 为保存类型),我们在这里将保存名字命名为example4.asm 。 4、在项目中添加源文件: 在新建了一个源文件以后,要想使用CCS 编译器对该源文件进行编译还需要将源文件添加到项目中去。添加方法是在工程管理器中右键单击example4.pjt,在弹出的菜单中选择Add Files,然后将刚才建立的example4.asm 文件添加到该项目中去。 5、编写源程序: 在工程管理器中双击example4.asm ,将出现文本编辑窗口,在该文本编辑窗口中输入如下内容: ********** 计算z=x+y-w ********** .title "example4.asm" .mmregs STACK .usect "STACK",10H ;堆栈的设置 .bss x,1 ;为变量分配4 个字的存储空间 .bss y,1 .bss w,1 .bss z,1 .def _c_int00 .data table .word 10,26,23 ;x,y,w .text _c_int00: STM #0,SWWSR ;插入0 个等待状态 STM #STACK+10H,SP ;设置堆栈指针 STM #x,AR1 ;AR1指向x RPT #2 MVPD table,*AR1+ ;把程序存储器中的数据移动到数据存储器 CALL SUMB end: B end
SUMB: LD *(x),A ADD *(y),A SUB *(w),A STL A,*(z) RET .end
6、编写链接配置文件: 由于每个程序都需要一个链接配置文件,每个程序的链接配置文件根据实际情况的需要都略有不同,下面就为本实验的程序编写一个链接配置文件,其它实验的链接配置文件都可以参考与本书配套的相应例程来完成: /*example4.cmd */ vectors.obj /*中断向量的目标文件*/ example4.obj /*产生目标文件*/ -o example4.out /*产生可执行下载文件,文件名可以根据不同项目而定*/ -m example4map /*产生存储器映射文件,文件名可以根据不同项目而定*/
MEMORY { PAGE 0: /*定义程序存贮区*/ EPROG: origin = 0x4000, len = 0x3f80 VECT: origin = 0x7f80, len = 0x80 PAGE 1: /*定义数据存贮区*/ SYSREGS: origin = 0x00, len = 0x60 BIOSREGS: origin = 0x60, len = 0x20 IDATA: origin = 0x80, len = 0x3f00 EDATA: origin = 0x8000, len = 0x8000 } SECTIONS { .text :> EPROG PAGE 0 /*将.text 段映射到PAGE0 的EPROM 区*/ .data :> EPROG PAGE 0 /*将.data段映射到PAGE0 的EPROM 区*/ .vectors: > VECT PAGE 0/*将中断向量表定位到PAGE0 的VECS 区*/ .bss: > IDATA PAGE 1 /*将.bss段映射到PAGE1 的IDATA 区*/ STACK: > IDATA PAGE 1 /*将.stack 段映射到PAGE1 的IDATA 区*/ }