第一篇:第二次实验报告
多元统计分析实验报告
姓名及学号:数101 梁菊丽
201004404116
日期:2012/10/13
1、实验内容
有一份关于居民储蓄调查的模拟数据存储在Excel中,文件名为“居民储蓄调查数据.xls”。该数据的第一行是变量名。请将该份数据转换成SPSS数据文件,并在SPSS中指定其变量名标签和变量值标签。
2、实验目的
通过本实验熟悉SPSS文件建立、数据预处理,特别是掌握在SPSS中读取其他格式的数据文件的方法。并掌握在SPSS中指定变量名标签和变量值标签的方法。
3、实验方案分析
原数据是存储在Excel表格中,需要把数据转换成SPSS数据,SPSS能够直接读取其他格式的数据文件,并将其保存为SPSS格式的数据。在SPSS的Variable View 窗口中,根据已给出的文件名为“居民储蓄调查数据.xls”,实现对变量名标签和变量值标签的指定。.4、操作过程
A、在SPSS的Date View窗口中将Excel表格中的文件名为“居民储蓄调查数据.xls”转换成SPSS数据:
(1)选择菜单File→Open→Data;
(2)选择数据文件的类型为Excel格式,并输入数据文件名“居民储蓄调查数据1.xls”。
(3)选择Open,出现
(4)选择Continue。
B、在SPSS中指定其变量名标签和变量值标签:
(5)选择Variable View窗口,在Lable栏中,每一格分别输入“居民储蓄调查数据1.xls”中给出的15道题目,在Values栏的每一格中,分别输入“居民储蓄调查数据1.xls”中的15道题目的选项。操作得到的图表如下:
(6)选择Add,在Value中输入2,在Label中输入“存钱合算”(7)再选择Add,最后选择OK。
其它剩下的题目与选项与此指定方法相同。
5、实验结果
(。。给出实验得到的重要结果)
6、讨论
(。。对上述得到的结果做出说明与讨论)
7、结论
(。。根据以上的讨论给出恰当的结论)
第二篇:第二次实验报告
长春理工大学
汇编语言
实验 报告
实验题目:
用 用 G DEBUG 程序调试程序功能段
实验时间:
2016
年
月
日
实验地点:
东三教 912
班
级:
1405111
学
号:
140511114
姓
名:
王国伟
一..实验目的 1.继续学习使用 DEBUG 程序的各种命令。
2.利用 DEBUG 学习了解计算机取指令、执行指令的工作过程。
3.掌握 8086/8088 基本指令的使用方法和功能。
二..实验准备
1.G DEBUG 命令
1)G 命令
格式:G[=起始地址] [断点地址]
功能:从起始地址开始执行到断点地址,如不设断点地址,则程序一直执行到终止指令才停止
2)P P 命令
功能:执行汇编程序,单步跟踪
与 与 T T 命令不同的是:
P 命令不会跟踪进入子程序或软中断。其使用方式与 T T 相同
3)N N 命令
功能:指定文件名。为读/写文件做准备
4)W W 命令
功能:向磁盘写内容
5)L L 命令
功能:从磁盘将文件或扇区内容读入内存
注意:使用该命令前,必须用 N N 命令设定文件名
三..实验任务
1.按照下列给定步骤完成求累加和程序: :
程序 :
MOV BX,1000
MOV CX,10
MOV AL,0
LOP: ADD AL,[BX]
INC BX
J: LOOP LOP
INT3
步骤: :
1)用 A 命令将程序键入到 100H 开始的内存中,在键入时记下标号LOP 和 J 的实际地址,在键入 LOOP 指令时 LOP 用实际地址值代替。
LOP:0B50:0108 J:0B50:010B
2)用命令 N AA 将此程序命名为文件 AA(文件名可任取)。
3)用 R 命令将 BX:CX 改为程序长度值(即最后一条指令后面的地址减去开始地址),用 R 命令把 BX 设为:0000H,CX 设为文件长度。
4)用命令 W 100 将此程序存到 AA 命名的磁盘文件中。
5)用命令 Q 退出 DEBUG。
6)用命令 DEBUG AA 再次调入 DEBUG 和文件 AA,可用 U 命令检查调入程序。
若调入 DEBUG 时忘了加 AA 文件名,可用 N 命令和 L 命令将文件调入。
7)用 E 命令在内存地址 1000H 处键入 16 个数字
8)用命令 G=100 J(J 用实际地址代替),使程序运行并停在断点 J上,检查
AX,BX 的值是否符合你的预计值。
9)用 T 命令运行一步,观察程序方向(IP 值)和 CX 值是否与你的估计一样, 若不一样,检查程序是否有错。
10)重复 G J 与 T,再检查 AX 是否正确。
(J 为断点地址)
11)用 G 命令使程序运行到结束,检查 AX 值是否正确 2.用命令 A A 汇编下列指令,判断指令正误并说明原因。
i.LEA DI,[AX]
错误,因为 lea 指令传送的必须为变量名,标号或地址表达式
ii.MOV DS,2010
错误,不能将立即数放入数据段中
iii.PUSH AL
错误,push 一次压入 16 位数据,al 只有八位
iv.OUT 900,AL
错误,因为当端口地址大于 FFH 的时候应该将端口地址送到dx 中,al 只能
操作八位数
v.MOV [BX],0
错误,因为没有标明是字节传送还是字传送
3.利用 T T,P P,G G 命令,执行下列指令段,注意它们的不同之处
MOV DI,300
MOV SI,400
MOV CX,3
CLD
REP MOVSB
INT 3
如果用 G 命令直接中断,并且显示寄存器标志和下一条要执行的命令。
T 是执行一个指令,通常采用跟踪一条指令,但用户也可以用指令条数设定一次跟踪多条指令,每执行一条指令之后,显示所有寄存器的内容和标志状态以及下一条指令在内存中的保存情况。
P 其实也是执行一条指令,但区别是在执行 INT 的时候会把这个 INT 整个的执行完毕,而不是跳转到这个中断程序去跟踪执行使用 P 命令执行程序,该程序不间断运行,直到循环、重复字符串指令、软件中断或者完成了指定地址的子例程为止,或者直到执行了指定数量的机器指令为止。若被执行的指令不是循环、重复的字符串指令、软件中断或子程序,则P 命令与 T(跟踪)命令的作用相同。
4.程序: :
MOV
DI,1000
MOV CX,8
MOV SI,2000
CLC
LOP:
MOV AL,[SI]
ADC [DI],AL
INC SI
INC DI
LOOP LOP
INT
步骤: :
1)用 A 命令键入此程序
2)用 E 命令在 1000H 开始处键入一个 8 字节被加数,在 2000H开始处键入一个 8 字节加数,均为低字节在前面。
3)用 G 命令运行此程序,并用 D 命令检查其结果(存放在哪里?),是否正确?
4)将 INT 20H 指令改为 INT 3,有何区别?若这条指令不加,行不行?试
试。
INT 20H 程序终止
INT3 为断点
5)请说明这个程序完成的功能是什么?
将0b50:1000与0b50:2000对应的地址内的数相加并存入[di]
四.实验小结
在写入程序时,应当先读懂程序,大致上了解一下该程序段所执行的功能或者流程,以便后面进行查看时判断程序的正误.读程序的过程中就需要熟练的运用寻址方式来读懂程序,最先开始就因为寻址方式而读不懂程序.学会了 G 命令的使用,同时了解了 T.G.P 命令它们之间的不同.了解到了 INT 的部分指令的功能,如 INT20H INT3 等等.
第三篇:软件工程第二次实验报告
江 西 理 工 大 学
软件工程 实验报告
实验名称 实验2 编写软件可行性分析报告 实验日期 2014-04-03 专业班级 计算机111班 桌号
实 验 人
学号
同组人
一、实验目的和要求
对一个软件系统进行可行性分析,将可行性分析过程的结果进行分析汇总,编写一份描述计划任务的可行性分析报告。
二、实验内容和步骤
(1)系统概述。对当前系统及存在问题的简单描述、新系统特点及开发要点,新系统及其各个子系统的功能与特性、新系统与当前系统的比较等。
(2)可行性分析。可行性分析是报告的主体。论述新系统在经济上、技术上、运行上、管理及法律上的可行性,以及对新系统的主客观条件的分析。
(3)初步开发方案及开发计划。在可行性分析的基础上,提出初步开发建议方案和计划。
(4)结论意见。综合上诉分析,说明新系统是否可行,给出具体结论。
三、结果分析 1 引言
1.1 编写目的:
可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内 确定问题是否可解
经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要
面临的问题及其解决方案进行初步设计及合理安排。明确开发风险及其所带来的 经济效益。本报告经审核后,交软件经理审查。1.2项目背景:
开发软件名称:机票预订系统。
项目任务提出者:中国民航及中国国际旅游开发公司。项目开发者:浙江大学IMK 开发小组。用户:中国民航及中国国际旅游开发公司。
第2 页 / 共4页
实现软件单位:中国国际旅游开发公司及浙江大学 项目与其他软件,系统的关系:
本项目采用客户机/服务器原理,客户端的程序是建立在Windows NT 系统上以MicrosoftVisual C++为开发软件的应用程序,服务器端采用Linux 为操作系统的工作站,是采用Oracle8 的为开发软件的数据库服务程序。1.3 参考资料: 《软件工程导论》,张海藩,清华大学出版社。《实用软件工程》,郑人杰等,清华大学出版社。2 可行性研究的前提 2.1要求
主要功能:为游客提供机票预定服务,方便旅游局的售票工作,提高旅游局的服 务质量和服务效率
性能要求:机场提供的信息必须及时的反映在旅游局的工作平台上。售票系统的 定单必须无差错的存储在机场的主服务器上。对服务器上的数据必须进行及时正确的刷新。
输出要求:数据完整,详实。输出要求:简捷,快速,实时。
安全与保密要求:服务器的管理员享有对机场航班信息库及机票信息库和定票信 息库的管理与修改。售票员只享有对订票信息库的部分修改(写入与读出)。完成期限:预计六个月。2.2目标:
系统实现后,大大提高旅游局的机票预定服务效率。降低售票服务中的错误发生率,减少信息交流的烦琐过程及其带来的开销。2.3条件,假定和限制 建议软件寿命:5 年。
经费来源:中国国际旅游开发公司。
硬件条件:服务器sun 工作站,终端为pc 机。运行环境:Linux 数据库:Oracle8
2.4决定可行性的主要因素
成本/效益分析结果,效益〉成本。
技术可行,现有技术可完全承担开发任务。操作可行,软件能被原有工作人员快速接受。3 技术可行性分析 系统简要描述:
在旅游局中的终端是安装了Windows NT 的PC 机,主要目的是向机场的服务器传 递数据。当顾客在旅游局进行咨询时,终端向服务器发出查询请求,服务器根据航班信息库的实时数据,向终端发送数据,显示在终端的屏幕上。当顾客向售票员定票时,终
第3页 / 共4页第4页/ 共4页
端向服务器发出详尽的一份定单,服务器核对后,存入定票信息库,并修改机票信息库。当顾客再次来取票时,终端向服务器发出查询定票请求,服务器接收后,查询定票信息库,核对后,传送机票确认表单,终端打印出机票。4 经济可行性分析 4.1支出 基础投资:
终端PC 机20台:8000*20 = 16 万 网络设备:10 万 辅助配置:10 万 共计:36 万
其他一次性投资: 系统管理员事务 航班信息的更新
服务器终端显示数据产生报表 售票员查询请求 数据库产生报表 客户机终端显示数据 售票员表单申请产生报表 客户机终端显示数据
售票员机票核对事务在客户端打印机票和帐单产生报表及帐单 Oracle 8.0 : 20 万 Windows NT: 10 万 操作员培训费:5 万 共计:35 万 经常性支出:
人工费用: 6(月)*20(人)*5000(圆)=60 万 其他不可知额外支出: 20 万 共计: 80 万
支出共计: 151 万 4.2效益 一次性收益 0 元
经常性收益
(按银行利率:1%);
减少员工20 人(1000 圆/人)五年收益:
1000*(1.1+(1.1)2+(1.1)3+(1.1)4+(1.1)5)*20*12*5=120 万 工作效率提高收益(工作效率提高30%):
30*(1.1+(1.1)2+(1.1)3+(1.1)4+(1.1)5)*(30%)*5 = 45 万 经常性收益共计: 160 万
不可定量收益
因服务质量提高增加旅客量10%:
1000 万*10%*(90%+(90%)2+(90%)3+(90%)4+(90%)5)=360 万 收益共计: 520 万 4.3收益/投资比
520 万/151 万= 344% 4.4投资回收周期 2-3 年
4.5敏感性分析
设计系统周期为五年, 估计最长可达10 年 处理速度: 一般查询速度<4 秒 关键数据查询速度: <2 秒 5 用户使用可行性
使用本软件人员要求有一定计算机基础的人员,系统管理员要求由计算机的专业知 识,所有人员都要经过本公司培训.管理人员也需经一般培训.经过培训人员将会熟练使用本软件.两名系统管理员,一名审计员将进行专业培训,他们将熟练管理本系统.6 其他可供选择的方案
客户端与服务器端联系在一起,在旅游局中只设立终端,在机场设立服务器,数据输入由终端输入,所有数据都由服务器处理,只在终端上显示数据结果。此设计简化了数据处理,但加重了服务器的数据处理。而使用客户端/服务器机理,简化数据流量,加快数据处理。7 结论意见
由于投资效益比远大于100%, 技术、经济、操作都有可行性,可以进行开发。
四、实验心得
此次文档的编写在整个软件开发的过程中,起到了很重要的作用。它让我们知道在以后的软件开发过程中应该注意的问题,并且应该做出相应的措施来解决软件开发过程中出现的各种问题。
第四篇:西安交通大学汇编第二次上机实验报告
提交上机结果的模板文件 第 2 次线上上机 班级 学号 姓名
1、循环程序设计-1(1)汇编、连接后的截图
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:masm xun 得到 xun.obj,xun.crf,xun.lst 文件,通过 link xun 得到 xun.map 文件,显示编译成功。
(2).lst 文件的截图,TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:通过 masm 对程序进行编译时生成.lst 文件,通过 notepad++打开.lst 文件,并进行截图(3)反汇编的截图
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:在 debug 环境下执行 u 指令,显示出反汇编代码。
(4)在完成 DS 赋值后,立即显示各个寄存器的值
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:按单步 t 之后,下方出现 MOV DS,AX,即下一条即将执行的指令为 MOV DS,AX,再按一次 t,此时 DS 被赋值,此时执行的 r 指令显示的就是 DS 赋值后各个寄存器的值。
(5)在进行计算前,显示数组 M 开始的 n+2 个字的内存值的截图(只能显示这n+2 个字的内存值,多显示、少显示均扣分)
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:在 debug 环境下,执行 d 指令显示内存,由于不能显示其他字的内存值,所以只能
一行一行截图,可以看到,此时内存值与程序初始定义值相同。
(6)执行完计算后,立即显示各个寄存器的值
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:先执行 g 指令到执行回到 dos 系统指令,此时显然已经执行完运算,此时执行 r 指令就获得执行完运算后各个寄存器的值。
(7)执行完计算后,显示数组 M 开始的 n+2 个字的内存值的截图(只能显示这n+2 个字的内存值,多显示、少显示均扣分)
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:执行 d 指令显示出内存值,由于要求是不能显示其他字的值,所以只能一行一行截图,可以看到此时内存值与期望结果相同。
(8)源代码
TODO:你的源代码(必选)
;empty asm file
title I love asm
data segment n
dw 0010h
M
dw
0021h,0084h,0041h,0010h,0027h,0018h,0044h,0011H,0002h,0028h,0024h,0020h,0022h,0014h,0030h,0040h
DATA1 DW ?
ADDRR DW ?
data ends
code segment
assume cs:code, ds:data
main
proc
;assign the data segment base address to DS
mov
ax, data
mov
ds, ax
;TODO...;| add your code between arrows |
;v----------------------------v
MOV CX, n
;循环计数器
LEA DI, M
MOV AX,[DI]
;取第一个数
MOV ADDRR, DI
;记下绝对值最大的数的地址
CMP AX,0
;此数是正数吗?
JNS ZHEN
;是正数,即为绝对值,转去判断下一个数
NEG AX
;不是正数,变为其绝对值
ZHEN:MOV BX,[DI]
CMP BX,0
;此数是正数吗?
JNS COMP
;是正数,即为绝对值,转去比较绝对值大小
NEG BX
;不是正数,变为其绝对值
COMP: CMP AX, BX
;判断绝对值大小
JAE ADDRESS
MOV AX, BX
;(AX)<(BX),使(AX)中为绝对值最大的数
MOV ADDRR, DI
;记下绝对值最大的数的地址
ADDRESS:ADD DI, 2
LOOP ZHEN
MOV
DATA1, AX
;记下此数
;^----------------------------^
;|
The END
|
;method 2: return to dos
mov
ax, 4c00h
int
21h
main
endp code ends end main
2、循环程序设计-2 (1)汇编、连接后的截图
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:masm xun 得到 xunhuan.obj,xunhuan.crf,xunhuan.lst 文件,通过 link xunhaun 得到xunhaun.map 文件,显示编译成功。
(2).lst 文件的截图
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:通过 masm 编译 jishu,获得 jishu.lst 文件,要 notepad++打开并进行截图。
(3)反汇编的截图
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:在 debug 环境下执行 u 指令显示出反汇编代码。
(4)在进行计算前,显示数组 A 中 15 个整数的内存值的截图(只能显示这 15个整数的内存值,多显示、少显示均扣分)
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:执行 d 指令显示出内存值,由于不能显示其他数内存值,所以一行一行进行截图,可以看到,此时内存值与程序初始定义相同。
(5)在进行计算前,显示数组 B 中 20 个整数的内存值的截图(只能显示这 20个整数的内存值,多显示、少显示均扣分)
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:执行 d 指令显示出内存值,由于不能显示其他整数内存值,所以一行一行进行截图,可以看到,此时数组 B 中的内存值与程序初始定义相同。
(6)在进行计算前,显示数组 C 中 15 个整数的内存值的截图(只能显示这 15个整数的内存值,多显示、少显示均扣分)
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:执行 d 指令显示出内存值,由于不能显示其他整数内存值,所以一行一行进行截图,可以看出,此时内存值与程序初始定义相同。
(7)执行完计算后,立即显示各个寄存器的值
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:先用 g 指令跳到返回 dos 调用指令,此时已经执行完计算,再执行 r 指令,显示的就是执行完运算的各个寄存器的值。
(8)执行完计算后,显示数组 A 中 15 个整数的内存值的截图(只能显示这 15个整数的内存值,多显示、少显示均扣分)
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:执行 d 指令显示出内存值,由于要求是不能显示其他字的值,所以只能一行一行截图,可以看到此时内存值与期望结果相同。
(9)执行完计算后,显示数组 B 中 20 个整数的内存值的截图(只能显示这 20个整数的内存值,多显示、少显示均扣分)
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:执行 d 指令显示出内存值,由于要求是不能显示其他字的值,所以只能一行一行截图,可以看到此时内存值与期望结果相同。
(10)执行完计算后,显示数组 C 中 15 个整数的内存值的截图(只能显示这 15个整数的内存值,多显示、少显示均扣分)
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:执行 d 指令显示出内存值,由于要求是不能显示其他字的值,所以只能一行一行截图,可以看到此时内存值与期望结果相同。
(11)源代码
TODO:你的源代码(必选)
;empty asm file
title I love asm
data segment
A
dw
0027h,0018h,0021h,0028h,0024h,0020h,0022h,0014h,0011h,0010h,0012h,0017h,0084h,0081h,0080H
B
dw
0018h,0021h,0028h,0024h,0020h,0022h,0044H,0041h,0011h,0010h,0012h,0017h,0084h,0081h,0080h,0040h,0042h,0047h,0002h,0007h
C1
DWDUP(?)data ends
code segment
assume cs:code, ds:data
main
proc
;assign the data segment base address to DS
mov
ax, data
mov
ds, ax
;TODO...;| add your code between arrows |
;v----------------------------v
mov si,0
MOV DI,0
mov bx,A
jiao:MOV CX,B[SI]
;想法是 di 指 A 中的元素,di 递增,拿 A 中的一个元素每次与 B 中的所有元素作比较
CMP A[DI],CX
;直到遇到相同为止,如果没有遇到相同,有设置对 si 值比较指令,b 中所有元素相同时
JZ JI
;会跳转到 JI
INC SI
INC SI
CMP SI,42
JZ JI
JMP jiao
JI:mov ax,B[SI]
mov C1[DI],AX
MOV SI,0
INC DI
INC DI
CMP DI,32
JZ EXIT
JMP jiao
;^----------------------------^
;|
The END
|
;method 2: return to dos
EXIT: mov
ax, 4c00h
int
21h
main
endp code ends end main
3、分支程序设计 (1)汇编、连接后的截图
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:masm xun 得到 jishu.obj,jishu.crf,jishu.lst 文件,通过 link xun 得到 jishu.map 文件,显示编译成功。
(2).lst 文件的截图
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:通过 masm 形成 jishu.lst 文件,通过 notepad++打开,并进行截图。
(3)反汇编的截图
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:在 debug 环境下执行 u 指令,显示出反汇编代码。
(4)在完成 DS 赋值后,立即显示各个寄存器的值
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:第一步 t 指令执行底下为 MOV DS,AX,说明接下来执行的指令是 MOV DS,AX,所以再执行一次 t 指令,然后用 r 指令显示寄存器当前的值。
(5)在进行计算前,显示在数据段中定义的学号字符串的内存值的截图(只能显示完整的学号字符串,多显示、少显示均扣分)
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:执行 d 指令显示出内存值,由于不能显示其他内存值,所以一行一行进行截图,可以看出,此时内存值与程序初始定义相同。
(6)在进行计算前,显示在数据段中定义的 COUNT 数组的内存值的截图(只能显示完整的 COUNT 数组内容,多显示、少显示均扣分)
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:执行 d 指令显示出内存值,由于不能显示其他内存值,所以一行一行进行截图,可以看出,此时内存值与程序初始定义相同。
(7)执行完计算后,立即显示各个寄存器的值
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:通过执行 g 指令跳到调用 dos 系统的指令,此时已经执行完运算,再执行 r 指令,显示出的就是执行完计算后各个寄存器的值。
(8)执行完计算后,显示在数据段中定义的学号字符串的内存值的截图(只能显示完整的学号字符串,多显示、少显示均扣分)
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:执行 d 指令显示出内存值,由于不能显示其他内存值,所以一行一行进行截图,可以看出,此时内存值与程序期望相同。
(9)执行完计算后,显示在数据段中定义的 COUNT 数组的内存值的截图(只能显示完整的 COUNT 数组内容,多显示、少显示均扣分)
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
说明:说明:执行 d 指令显示出内存值,由于不能显示其他内存值,所以一行一行进行截图。学号为 2184411027,0-9 个数分别为 1,3,2,0,2,0,0,1,1,0,结果正确。
(10)程序在 DOSBox 下直接运行的截图
TODO:你的截图(必选)
TODO:你的文字解释说明(可选)
(11)源代码
TODO:你的源代码(必选)
;empty asm file
title I love asm
data segment
A
dw
0027h,0018h,0021h,0028h,0024h,0020h,0022h,0014h,0011h,0010h,0012h,0017h,0084h,0081h,0080H
B
dw
0018h,0021h,0028h,0024h,0020h,0022h,0044H,0041h,0011h,0010h,0012h,0017h,0084h,0081h,0080h,0040h,0042h,0047h,0002h,0007h
C1
DWDUP(?)data ends
code segment
assume cs:code, ds:data
main
proc
;assign the data segment base address to DS
mov
ax, data
mov
ds, ax
;TODO...;| add your code between arrows |
;v----------------------------v
mov si,0
MOV DI,0
mov bx,A
jiao:MOV CX,B[SI]
;想法是 di 指 A 中的元素,di 递增,拿 A 中的一个元素每次与B 中的所有元素作比较
CMP A[DI],CX
;直到遇到相同为止,如果没有遇到相同,有设置对 si 值比较指令,b 中所有元素相同时
JZ JI
;会跳转到 JI
INC SI
INC SI
CMP SI,42
JZ JI
JMP jiao
JI:mov ax,B[SI]
mov C1[DI],AX
MOV SI,0
INC DI
INC DI
CMP DI,32
JZ EXIT
JMP jiao
;^----------------------------^
;|
The END
|
;method 2: return to dos
EXIT: mov
ax, 4c00h
int
21h
main
endp code ends end main
第五篇:西安交通大学第二次汇编上机实验报告
80x86 汇编语言程序设计课内实验报告 班级
实验时间 5.31 姓名
学号
实验内容概述 主要对第五章所学的循环了分支结构进行了实践。
第一题循环结构比大小,把最大值的最大值的相对位置存储在数组之后的两位 第二题循环结构找两数组之间的相同数字 第三题分支结构对数组里出现的元素进行计数 实验步骤
一(1)对数据求源码(负数取反后加一)(2)取每个数的绝对值(3)从前向后两两比较,如果当前数字比 max 的记录值大,那么更新当前数字的 max,并存储当前位置 pos 二(1)根据数组 a 的长度设置外循环次数(2)根据数组 b 的长度设置外循环次数(3)外循环遍历 a 的每一个元素,将 a 中每一个元素与 b 中元素比较,如果相同,则终止当前内循环,将该值存储在 c 数组中 三(1)定义一个分支结构,先判断当前值,如果相等,则跳转至对应子程序:使存储该数字出现次数的位置上加一(2)程序运行结束时,在 dos 窗口输出每个元素出现的次数,实验中遇到的问题及其解决方法 1、mov 指令用错 当时报错后,查找了 mov 指令的课本内容,想起来存储单元之间不能直接赋值,已解决 2、逻辑正确,数据错误 当时确认逻辑无误之后,我的内心非常纠结,甚至出现了想要重装软件的想法,后来利用 u 和 t 指令,一步步找错,发现是比例因子出现错误,将 inc cx改为 add cx,2 后解决 实验结果
结果均正确
2020
年月
日
建议 无 备注 无