汇编语言基本算术运算实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
贵州大学实验报告
学院:专业:班级:
姓名学号实验组实验时间指导教师成绩实验项目名称汇编语言基本算术运算
实验目的
1.进一步熟悉CCS进行程序编译,调试的步骤.
2.掌握进行算术运算的常用指令,以及伪指令的作用.
3.掌握汇编语言进行整数运算,小数运算以及双操作数运算.浮点运算的方法.注意双操作数运算所允许使用的辅助寄存器.
实
验
要
求
根据本实验的特点、要求和具体条件,采用教师简单讲解,学生自己动手操作的形式。
实
验
原
理
利用软件对指令进行仿真分析。
实
验
仪
器
计算机一台
实验步骤1、计算 z=x+y-w
.title “example.asm”
.mmregs
STACK .usect “stack”,10H .bss x,1
.bss y,1
.bss w,1
.bss z,1
.def start
.data
table: .word 10,26,23
.text
Start: STM #0,SWWSR
STM #STACK+10H,SP
STM #x,AR1
RPT #2
MVPD table,*AR1+
CALL SUMB
end: B end
SUMB: LD @x,A
ADD @y,A
SUB @w,A
LD #1,DP
STL A,@z
RET
.end
2、乘加运算
.tiltle “example.asm”
.mmregs
STACK .usect “stack”,10H .bss a,4
.bss x,4
.bss y,1
.def start
.data
table .word 1,2,3,4
.word 8,6,4,2
.text
start: STM #0,SWWSR
STM #STACK+10H,SP
STM #x,AR1
RPT #7
MVPD table,*AR1+
CALL SUM
end: B end
SUM: STM #a,AR3
STM #x,AR4
RPTZ A,#3
MAC *AR3+,*AR4+,A
STL A,@Y
RET
.end
3、小数运算
.tiltle “example.asm”
.mmregs
STACK .usect “stack”,10H
.bss a,4
.bss x,4
.bss y,1
.def start
.data
table .word 1*32768/10
.word 2*32768/10
.word -3*32768/10
.word 4*32768/10
.word 8*32768/10
.word 6*32768/10
.word -4*32768/10
.word -2*32768/10
start: SSBX FRCT
STM #a,AR1
RPT #7
MVPD table,*AR1+
STM #a,AR3
STM #x,AR4
RPTZ A,#3
MAC *AR3+,*AR4+,A
STL A,@Y
end: B end
.end
观察程序结果:
分别点击菜单Viex->Memory和Registers可以观察程序执行后存储器的变化,程序执行的结果以及寄存器值的变化情况.
实
验内容1.加减法和乘法运算
2.小数运算
实验数据1.加减运算z=x+y-w
从程序可知x=10,y=26,w=23,可计算出z=13 2.乘法运算
3.小数运算
实验总结
通过此次实验我进一步熟悉了CCS进行程序编译,调试的步骤.初步掌握进行算术运算的常用指令,以及伪指令的作用.同时也掌握汇编语言进行整数运算,小数运算以及双操作数运算.浮点运算的方法.注意双操作数运算所允许使用的辅助寄存器.在实验运行过程中出现了指令的错误,主要是由于输入大意而产生的,修改过后便正确无误了。
指
导
教
师
意
见签名:年月日