- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编课内实验报告剖析
汇编语言与接口技术课程实验报告
实验类别 课内实验
专业/班级 软件41
学 号 2141601019
学生姓名 祝超
提交日期 2016.11.29
1 实验一 3
1.1 实验题目 3
1.2 问题分析与程序设计 3
1.3 结果分析 4
2 实验二 5
2.1 实验题目 5
2.2 问题分析与程序设计 5
2.3 结果分析 7
3 实验三 8
3.1 实验题目 8
3.2 问题分析与程序设计 8
3.3 结果分析 8
4 实验四 8
4.1 实验题目 8
4.2 问题分析与程序设计 8
4.3 结果分析 8
5. 实验总结 8
在10个数中找出最大数。
1.2 问题分析与程序设计
(1)设计方法和关键问题解决方法
程序的主要思想是将十个数字存入数组,用一个指针指向这个数组。将最大值初始化为0,依次循环,每次都将当前最大值和指针指向的数字进行比较,如果最大值比当前值小,则更新最大值,直至十次循环结束,得到这个数组的最大值。
(2)程序流程图及主要源代码
.model small
.stack 64
.data
data1 db 12h,13h,14h,15h,69h,23h,34h,35h,47h,22h
max db ?
.code
main proc far
mov ax,@data
mov ds,ax
mov si,offset data1
mov cx,0Ah
sub al,al
lp: cmp al,[si]
ja next
mov al,[si]
next: inc si
dec cx
jnz lp
mov max,al
mov ax,4ch
int 21h
main endp
end main
1.3 结果分析
(1)运行结果
(2)结果分析/说明
偏移地址为00H开始存储的是16进制表示的十个大小为一个字节的数字,偏移地址为10H开始存储的是十个数字中的最大值,即69H
2 实验二
2.1 实验题目
求100以内能被7整除的所有正数之和。
2.2 问题分析与程序设计
(1)设计方法和关键问题解决方法
设置循环计数器的初始值为100,每次循环都检查计数器当前值能否被7整除,如果能就存入数组,同时将该值和sum相加,然后进行自减操作;否则直接进行自减操作,直至计数器值为0结束循环。Sum存储的即为要求值。
(2)程序流程图及主要源代码
DATAS SEGMENT
ORG 10H
DATA1 DB 7
DATA2 DB 0
QOUT DB ?
REMAIN DB ?
ORG 20H
NUM DB 20 DUP(?);
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;求100以内7的倍数
MOV DL,100
MOV SI,OFFSET NUM
LP:
MOV AL,DL
SUB AH,AH
DIV DATA1
CMP DATA2,AH
JNE NEXT
MOV [SI],DL
INC SI
NEXT:
DEC DX
JNZ LP
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START
2.3 结果分析
(1)运行结果
(2)结果分析/说明
偏移地址为20H开始记录的是100以内能够被7整除的数字,偏移地址为30H开始记录的是这些100以内能够被7整除的数字的和,即02DFH。
3 实验三
3.1 实验题目
求出 Fibonacci数列的前20个数,Fibonacci数列的性质如下:
1) F(n)=F(n-1)+F(n-2)
2)其任意一项平方数为其前项和后项的积加一或者减一 F(n)*F(n)=F(n-1)*F(n+1)+/-1
3)任取相邻的四个斐波那契数,中间两数之积(内积)与两边两数之积(外积)
文档评论(0)