东北大学计算机硬件基础知识分支程序设计实验报告
- 格式:doc
- 大小:576.02 KB
- 文档页数:20
计算机硬件技术基础知识总结报告,计算机硬件实训报告(共3篇).doc计算机硬件实训报告(共3篇)计算机硬件实训报告(共3篇)实习内容:计算机组装与维护实习⽬的:通过计算机的组装,认识计算机的硬件和结构,了解计算机的整个组装过程和注意事项。
实习要求:识别计算机的各个部件,能⾃⼰动⼿组装⼀台计算机。
⼀. 识别部件:1.cpu 主要功能:运算器,控制器。
cup就是通过这些引脚和计算机其他部件进⾏通信,传递数据,指令。
我们要先了解两个基本的概念,主板频率和倍频系数;通常我们常说的Pentium II00,AMD K6-200这些CPU的型号,其中最后⼀个数字”300”就是指CPU内部的⼯作频率是300MHz,⽽主板上的内存、控制芯⽚的⼯作频率是没有这么⾼的,所以就会出现主板频率和倍频系数,主板频率是指内存、控制芯⽚和CPU之间的总线的⼯作频率,倍频系数就是CPU的内部⼯作频率和主板频率的⽐值。
CPU的实际⼯作频率就决定于这两个参数。
有这样的公式: CPU的实际⼯作频率 = 主板频率×倍频系数通常主板频率都是⼀些固定的值,⽐如:60MHz、66MHz、75MHz、100MHz、133MHz等;倍频系数有1.5、2.0、2.5和3.0、4.0、4.5、5.0等,通过设置主板上的跳线就可以改变CPU的⼯作频率,⼈们常说的超频就是指改变这两个参数来使CPU在较⾼的⼯作频率下运⾏,超频往往是以改变外频为主2.cpu风扇:cpu⼯作的时候要散发出⼤量的热量,如不及时散热,可能将cpu烧坏。
所以加上了风扇达到散热⽬的。
3.主板: 是计算机主顶内最重要的⼀个部件,其它设备都是通过它来联结⼯作的.4.内存条:是临时储存器,掉电后数据会消失。
5.硬盘: 通过读写记录各种信息,存储各类软件.程序和数据.既是输⼊设备,也是输出设备,但只能和计算机内存交换信息.包括存储盘⽚及驱动器。
特点储存量⼤。
6.软驱:平时可以插⼊软盘,⽤以存放数据。
2024年计算机硬件实习报告通过C语言实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。
不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以很快就看出来。
这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。
如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了浓厚的兴趣和更深层的认识。
C语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实训我也知道了自己的不足,存在的很多问题。
比如自己写的写的小程序出了问题,不会解决了就叫老师帮忙,虽然说一定意义上增加了师生之间的感情,但是会养成一种依赖的心理,碰到问题了个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到老师不在身边的时候也可以完成一些简单的程序编写与错误排除。
还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。
通过实训,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。
其实只要理清了思路,把基础知识掌握了,然后有条不紊的分析,一步一步理解,C语言还是很有意思的课程。
自己亲自动手编写程序让我增加了对C语言程序开发环境的了解,在上课的时候老师就讲,学习C语言最重要的是学习C语言的逻辑思维,不管以后从事什么行业,学习C语言都对自己的职业很有帮助,如果是从事编程工程工作的话,就更有帮助了,即使以后的编程工作可能不用C语言,但是拥有扎实的C语言基础是对工作很有用的。
实验名称:大学计算机基础实验实验日期:2023年11月X日实验学时:2学时实验性质:基础性实验实验目的:1. 理解并掌握计算机基础知识,包括操作系统、计算机网络、信息安全等。
2. 熟练运用计算机基本操作,提高计算机应用能力。
3. 培养实验操作技能,提高团队协作能力。
实验内容:一、操作系统实验1. 实验目的:了解操作系统的基本功能,掌握文件操作、窗口操作等基本操作。
2. 实验步骤:(1)启动计算机,进入操作系统界面。
(2)熟悉桌面环境,包括任务栏、开始菜单等。
(3)创建文件夹,并练习文件操作(如复制、粘贴、删除等)。
(4)调整窗口大小、位置,切换窗口。
(5)使用搜索功能查找文件。
3. 实验结果:成功完成上述操作,熟悉操作系统基本功能。
二、计算机网络实验1. 实验目的:了解计算机网络的基本概念,掌握网络配置、网络连接等操作。
2. 实验步骤:(1)查看网络连接状态,包括有线和无线连接。
(2)配置网络参数,如IP地址、子网掩码、默认网关等。
(3)测试网络连通性,如ping命令测试。
(4)使用浏览器访问网络资源。
3. 实验结果:成功配置网络连接,实现网络通信。
三、信息安全实验1. 实验目的:了解信息安全的基本概念,掌握杀毒软件的使用、数据加密等操作。
2. 实验步骤:(1)安装杀毒软件,并进行病毒库更新。
(2)使用杀毒软件扫描系统,查杀病毒。
(3)设置防火墙,防止恶意软件入侵。
(4)使用加密软件对数据进行加密。
3. 实验结果:成功完成上述操作,提高计算机信息安全防护能力。
四、团队协作实验1. 实验目的:培养团队协作能力,提高实验操作效率。
2. 实验步骤:(1)分组,明确各成员职责。
(2)分工合作,共同完成实验任务。
(3)交流实验心得,分享经验。
3. 实验结果:成功完成实验任务,提高团队协作能力。
实验总结:本次大学计算机基础实验,使我更加深入地了解了计算机基础知识,掌握了计算机基本操作。
通过实验,我提高了计算机应用能力,培养了团队协作精神。
计算机基础实验报告引言计算机科学作为一门快速发展的学科,对于我们现代社会的发展起到了至关重要的作用。
而计算机基础实验则是我们学习计算机科学的基石。
通过实验,我们可以深入了解计算机的运作原理、编程语言的使用以及计算机系统的构建。
本文将对我在计算机基础实验中所学到的内容进行总结和分享。
实验内容一:计算机硬件与操作系统在第一次实验中,我们学习了计算机的基本组成部分,包括中央处理器(CPU)、存储器、输入输出设备等。
通过实践操作,我们实际拆卸和组装了一台计算机,并了解了各个硬件的功能和作用。
此外,我们还学习了计算机操作系统的基本概念和功能,如进程管理、内存管理和文件系统等。
这使我们对计算机系统的整体架构和工作原理有了更深入的了解。
实验内容二:Python编程语言在第二次实验中,我们学习了一种常用的编程语言——Python。
通过编写简单的代码,我们熟悉了Python的基本语法和函数。
Python的简洁和易读性使其成为了开发者的首选语言之一。
我们还学习了Python的常用库,如NumPy和Pandas,使我们能够更高效地处理数据和进行科学计算。
实验内容三:计算机网络与网络编程在第三次实验中,我们学习了计算机网络的基本原理和网络编程的基础知识。
我们了解了常见的网络协议,如TCP/IP和HTTP,以及网络拓扑结构和局域网的设置方法。
通过编写简单的网络程序,我们掌握了网络通信的基本操作和数据传输的原理。
这让我们更好地理解了互联网的工作原理和网络安全的重要性。
实验内容四:Java编程语言最后,我们学习了另一种常用的编程语言——Java。
Java是一种功能强大的面向对象编程语言,被广泛应用于企业级应用和大型系统的开发。
通过实践,我们熟悉了Java的语法、类和对象的概念,以及常用的开发框架和工具。
Java的跨平台特性使其成为了跨平台开发的首选语言。
结语通过计算机基础实验,我们对计算机科学的核心原理和应用有了更深入的了解。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==东北大学编程实验报告篇一:东北大学数据库实验报告 201X数据库实验报告班级:计算机1105班学号:201X3263姓名:张少杰时间:201X年6月19日实验(一): 熟练掌握SQL语言实验目的:熟悉上机环境,创建数据库,在数据库上建立关系模式,插入数据,进行相应的查询操作。
实验内容:具体包括如下三部分。
一、熟悉上机环境。
客户/服务器结构,数据库服务器在一台NT服务器上,同学们通过客户机(操作系统为Windows 201X)上安装的SQL Server客户端程序, 使用SQL Server数据库服务器。
具体包括:1. 了解SQL Server 环境。
鼠标点击开始,进入“Microsoft SQL Server?企业管理器”,点击SQL Server组下的数据库服务器(服务器名称为NEUC-201S(Windows NT)), 可以看到服务器上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。
点击服务器(NEUC-201S(Windows NT))下的数据库,可以看到服务器上已建立的数据库,你可访问你有权访问的数据库,并进行相应的操作功能。
因为,数据库服务器上建有许多数据库, 每个数据库都有一些合法的用户。
2. 鼠标点击开始,进入“Microsoft SQL Server?查询分析器”,输入用户名和口令,进入SQL查询分析器。
如:你登录的客户机为27号,那么请以用户名user27,口令为user27登录,登录后缺省连到数据库user27上,user27/user27是数据库user27的创建者,因此用户user27/ user27具有在数据库user27上创建表等一切权力。
3. 在SQL查询分析器环境下,你就可进行SQL命令语句操作了。
二、在数据库useri上创建学生选课有关关系模式,并插入相应的数据,实现有关查询。
大工15春《计算机基础实验(一)》实验
报告(最新)
实验目的
本实验旨在帮助学生掌握计算机基础实验的基本知识和实践技能,加深对计算机原理的理解。
实验要求
1. 学生需要完成指定的实验任务,包括编写程序、调试程序和进行实验数据分析。
2. 学生需要按照指定的格式和要求撰写实验报告,包括实验目的、原理、方法、结果和分析等部分。
实验内容
本实验包括以下几个部分:
1. 实验一:计算机基础概念的理解与应用
2. 实验二:C语言程序设计
3. 实验三:数据结构与算法分析
4. 实验四:计算机网络基础
实验结果
根据学生的实验情况和数据分析,可以得出以下结论:
1. 实验一中,学生对计算机基础概念的理解和应用能力有所提高。
2. 实验二中,学生掌握了C语言程序设计的基本知识和技能。
3. 实验三中,学生了解了数据结构与算法分析的基本概念和方法。
4. 实验四中,学生对计算机网络基础有了一定的了解。
实验结论
通过完成计算机基础实验,学生可以加深对计算机原理的理解,掌握相关实践技能,并提高解决实际问题的能力。
参考资料
- 《计算机基础实验教程》
- 《C程序设计与数据结构》
- 《计算机网络基础教程》。
(附录二)汇编语言程序设计实验报告实验名称逻辑指令、跳转指令与分支程序设计班级学号姓名日期成绩评阅人软件学院一、实验目的与意义了解和掌握逻辑指令、比较指令、无条件/有条件转移类指令的功能和作用,以及此类指令的使用方法。
二、实验环境操作系统:windows7调试软件名称及版本号:Microsoft Visual Studio2008三、实验的预习内容预习的主要内容:看了逻辑指令add,or,not,xor,test和有条件无条件转移指令的作用和使用方法实验思路:观察寄存器的数值在逻辑指令作用前后的变化,了解逻辑指令的作用,通过使用条件或无条件跳转指令,用逐语句调试观察程序运行的步骤和顺序,了解条件跳转语句的作用四、实验的步骤与调试方法实验的大致步骤:在.code中通过把赋值的寄存器通过各个逻辑指令,逐语句调试观察各个寄存器前后的变化。
在程序中使用跳转语句,观察程序运行的顺序,了解各个指令的作用实验中遇到的问题及调试方法:当把16进制的数值赋值给寄存器时,直接写的16进制的数,调试报错。
后来在16进制的数后加h,程序运行。
如果不加后缀计算机默认为10进制,会导致计算机无法识别数值五、实验数据与实验结果在DEBUG系统状态下,分别编制、调试并记录以下逻辑指令程序段的每一条指令的运行情况:(Ⅰ)mov al,41 ┃EAX = 76A51129 EBX = 7FFD8000 ECX = 00000000EDX = 00171005 ESI = 00000000 EDI = 00000000EIP = 00171017 ESP = 0027FA50 EBP = 0027FA58EFL = 00000246or al,20 ┃EAX = 76A5113D EBX = 7FFD8000 ECX = 00000000EDX = 00171005 ESI = 00000000 EDI = 00000000EIP = 00171019 ESP = 0027FA50 EBP = 0027FA58EFL = 00000202(Ⅱ)mov al,66 ┃EAX = 76FC1142 EBX = 7FFDC000 ECX = 00000000EDX = 01211005 ESI = 00000000 EDI = 00000000EIP = 01211017 ESP = 0026FEBC EBP = 0026FEC4EFL = 00000246and al,0df ┃EAX = 76FC1142 EBX = 7FFDC000 ECX = 00000000EDX = 01211005 ESI = 00000000 EDI = 00000000EIP = 01211019 ESP = 0026FEBC EBP = 0026FEC4EFL = 00000206(Ⅲ)mov EAX,5678 ┃EAX = 0000162E EBX = 7FFD9000 ECX = 00000000EDX = 01071005 ESI = 00000000 EDI = 00000000EIP = 0107101A ESP = 0014FE90 EBP = 0014FE98EFL = 00000246xor EAX,EAX ┃EAX = 00000000 EBX = 7FFD9000 ECX = 00000000EDX = 01071005 ESI = 00000000 EDI = 00000000EIP = 0107101C ESP = 0014FE90 EBP = 0014FE98EFL = 00000246(Ⅳ)mov EAX,0ff00 ┃EAX = 0000FF00 EBX = 7FFD8000 ECX = 00000000EDX = 002A1005 ESI = 00000000 EDI = 00000000EIP = 002A101A ESP = 0021FC5C EBP = 0021FC64EFL = 00000246not EAX ┃EAX = FFFF00FF EBX = 7FFD8000 ECX = 00000000EDX = 002A1005 ESI = 00000000 EDI = 00000000EIP = 002A101C ESP = 0021FC5C EBP = 0021FC64EFL = 00000246(Ⅴ)mov EAX,1234 ┃EAX = 000004D2 EBX = 7FFD6000 ECX = 00000000EDX = 00311005 ESI = 00000000 EDI = 00000000EIP = 0031101A ESP = 0029FA64 EBP = 0029FA6CEFL = 00000246test EAX,1 ┃EAX = 000004D2 EBX = 7FFD6000 ECX = 00000000EDX = 00311005 ESI = 00000000 EDI = 00000000EIP = 0031101F ESP = 0029FA64 EBP = 0029FA6CEFL = 00000246test EAX,2 ┃EAX = 000004D2 EBX = 7FFD6000 ECX = 00000000EDX = 00311005 ESI = 00000000 EDI = 00000000EIP = 00311024 ESP = 0029FA64 EBP = 0029FA6CEFL = 00000202test EAX,4 ┃EAX = 000004D2 EBX = 7FFD6000 ECX = 00000000EDX = 00311005 ESI = 00000000 EDI = 00000000EIP = 00311029 ESP = 0029FA64 EBP = 0029FA6CEFL = 00000246test EAX,8 ┃EAX = 000004D2 EBX = 7FFD6000 ECX = 00000000EDX = 00311005 ESI = 00000000 EDI = 00000000EIP = 0031102E ESP = 0029FA64 EBP = 0029FA6CEFL = 00000246test EAX,10 ┃EAX = 000004D2 EBX = 7FFD6000 ECX = 00000000EDX = 00311005 ESI = 00000000 EDI = 00000000EIP = 00311033ESP = 0029FA64 EBP = 0029FA6CEFL = 00000202test EAX,20 ┃EAX = 000004D2 EBX = 7FFD6000 ECX = 00000000EDX = 00311005 ESI = 00000000 EDI = 00000000EIP = 00311038 ESP = 0029FA64 EBP = 0029FA6CEFL = 00000202test EAX,40 ┃EAX = 000004D2 EBX = 7FFD6000 ECX = 00000000EDX = 00311005 ESI = 00000000 EDI = 00000000EIP = 0031103D ESP = 0029FA64 EBP = 0029FA6CEFL = 00000246test EAX,80 ┃EAX = 000004D2 EBX = 7FFD6000 ECX = 00000000EDX = 00311005 ESI = 00000000 EDI = 00000000EIP = 00311042 ESP = 0029FA64 EBP = 0029FA6CEFL = 00000206test指令的作用是:在每对操作数的对应数据位之间执行隐含的“与”操作,并相应设置标志位,并且不改变目的操作数。
计算机基础实验报告计算机基础实验报告引言:计算机科学作为一门重要的学科,为我们的现代社会带来了巨大的变革和进步。
而计算机基础实验则是我们学习计算机科学的重要环节之一。
本实验报告将介绍我在计算机基础实验中所学到的知识和经验,并总结实验的结果和收获。
实验一:计算机硬件组装与调试在这个实验中,我们学习了计算机硬件的基本组成和组装方法。
通过实际操作,我了解了主板、CPU、内存、硬盘等硬件设备的功能和相互连接方式。
同时,我们还学习了如何调试计算机硬件故障,提高了我们的问题解决能力。
实验二:操作系统安装与配置在这个实验中,我们学习了操作系统的安装和配置。
通过实际操作,我掌握了Windows和Linux操作系统的安装方法和步骤,并学会了对操作系统进行基本的配置和优化。
这不仅提高了我对操作系统的理解,还为我以后的计算机使用提供了便利。
实验三:计算机网络配置与管理在这个实验中,我们学习了计算机网络的基本概念和配置方法。
通过实际操作,我了解了网络的组成和工作原理,并学会了对局域网进行基本的配置和管理。
这对于我们理解互联网的工作原理和提高网络安全意识都具有重要意义。
实验四:数据库设计与管理在这个实验中,我们学习了数据库的设计和管理。
通过实际操作,我了解了数据库的基本概念和常用的数据库管理系统,如MySQL和Oracle。
同时,我们还学习了如何设计和优化数据库结构,提高数据库的性能和安全性。
实验五:程序设计与开发在这个实验中,我们学习了程序设计和开发的基本原理和方法。
通过实际操作,我学会了使用编程语言进行程序设计,并学习了常用的开发工具和技术,如IDE和版本控制系统。
这为我以后的软件开发工作奠定了基础。
实验六:计算机安全与防护在这个实验中,我们学习了计算机安全和防护的基本知识和方法。
通过实际操作,我了解了计算机系统的安全威胁和攻击方式,并学会了如何使用防火墙和杀毒软件等工具进行计算机安全防护。
这对于保护个人隐私和防止计算机病毒的侵害具有重要意义。
东北大学计算机硬件技术基础实验报告专业班级:姓名:学号:实验题目:认识汇编语言日期:一、实验目的(1) 掌握顺序程序设计方法;(2) 学习数据传送及算术和逻辑运算指令的用法;(3) 熟悉在PC机上建立、汇编、连接、调试和运行8086汇编语言程序的过程。
二、实验内容首先将FIRST字变量与SECOND字变量相加,结果存至THIRD1存储字中,然后将FIRST与SECOND两个字变量相乘,结果存至THIRD2 开始的两个字中。
三、算法描述流程四、实验步骤1. 输入源程序:DATA SEGMENTFIRST DW 0D56CHSECOND DW 1F08HTHIRD1 DW ?THIRD2 DW 2 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AX,FIRSTADD AX,SECOND ;求和MOV THIRD1,AX ;保存MOV AX,FIRSTMUL SECOND ;求积MOV THIRD2,AX ;保存MOV THIRD2+2,DXMOV AH,4CHINT 21HCODE ENDSEND START2. 保存源文件,执行masm汇编源程序,生成obj目标文件,结果无错误。
3. 执行link连接程序,生成exe可执行文件,结果无错误。
4. 执行debug调试程序,执行程序,在内存中得到结果,验证结果正确,执行d参数命令察看THIRD1和THIRD2所在的地址单元中的数据为0004字节单元和0006中存放结果。
五、实验结果1. 执行masm编译源程序,生成OBJ文件,得到如下界面:2. 执行link连接程序,生成exe可执行文件得到如下界面:3. 执行debug调试程序,使用u进行反编译,得如下界面4. 执行d参数命令察看DATA所在的地址单元中的数据,得到如下界面:5.执行t参数命令,单步查看六、思考题假如FIRST的偏移地址是0000,那么THIRD2的偏移地址是多少?答:如果FIRST的偏移地址是0000,由题可知,FIRST占用两个字节,SECOND 占用两个字节,THIRD1占用两个字节,那么THIRD2的偏移地址为6个字节,由于占用四个字节,所以偏移地址为0006。
计算机基础实验报告计算机基础实验报告一、实验目的本次实验的目的是加深对计算机基础知识的理解和掌握,包括计算机硬件的组成和工作原理,以及操作系统的基本概念和功能。
二、实验内容1. 计算机硬件实验:通过拆卸一台计算机,了解并标识出各个硬件组件,如CPU、主板、内存、硬盘、显卡等,并熟悉它们之间的连接方式和作用。
2. 操作系统实验:在Ubuntu操作系统中,实践并掌握常用的命令行操作,如文件的创建、复制、移动和删除等,同时也采用图形界面进行操作,熟悉操作系统的界面和功能。
三、实验过程1. 计算机硬件实验:打开计算机主机,逐一拆卸各个硬件组件,并用透明胶带标识出每个组件的名称。
拆卸过程需要注意避免静电的产生,可以使用防静电手带。
然后,通过查阅相关资料,了解每个硬件组件的作用和连接方式,并记录在实验报告中。
2. 操作系统实验:首先将Ubuntu操作系统光盘插入计算机,启动计算机时选择从光盘启动。
然后,根据系统界面的提示进行操作系统的安装。
安装完毕后,进入系统,并进行相关设置,如网络连接、声音设置等。
接着,通过命令行操作练习,使用常用的命令进行文件操作,如创建文件、复制文件、重命名文件等,并记录操作步骤和结果。
四、实验结果1. 计算机硬件实验结果:通过拆卸计算机主机,我们发现主机的硬件组件包括CPU、主板、内存、硬盘、显卡、电源等。
其中,CPU是计算机的核心部件,主板负责连接各个硬件组件,内存用于存储数据和程序,硬盘用于存储大量的数据,显卡用于处理图像和视频,电源则为各个硬件提供电能。
2. 操作系统实验结果:通过在Ubuntu操作系统中进行命令行操作,我们熟悉了常用的命令,如"mkdir"用于创建目录,"cp"用于复制文件,"mv"用于移动文件,"rm"用于删除文件等。
同时,我们也通过图形界面进行了相关操作,如创建文件、复制文件夹、删除文件夹等。
东北大学计算机硬件技术基础实验报告班级:机械0908 姓名:学号:20092063实验题目:分支程序设计日期:2011年11月28日实验一一、实验目的1) 掌握分支程序的结构;2) 掌握分支程序的设计,调试方法;二、实验内容设有3个单字节无符号数存放在BUF开始的缓冲区中,编写一个能将他们从大到小重新排序的程序。
三、算法描述流程图四、实验步骤1. 输入源程序:DATA SEGMENTBUF DB 13,52 ,14DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,OFFSET BUFMOV AL,[SI] ;把3个数取到寄存器中MOV BL,[SI+1]MOV CL,[SI+2]CMP AL,BLJAE NEXT1XCHG AL,BL ;排序,将最大数送AL寄存器NEXT1: CMP AL,CLJAE NEXT2XCHG AL,CLNEXT2: CMP BL,CL ;将最小数送CL寄存器JAE NEXT3XCHG BL,CLNEXT3: MOV [SI],AL ;从大到小依次存回缓冲区MOV [SI+1],BLMOV [SI+2],CLMOV AH,4CHINT 21HCODE ENDSEND START2.执行emulate程序,对源程序进行调试,生成original source code和emulator:noname.exe_文件,结果无错误。
3.执行run程序,打开程序aux,选择memory,查看地址0710:0000,经验证运行结果为34 0E 0D,即52 14 13,由大到小排列,满足题目要求且无错误。
五、实验结果1.执行emulate程序,对源程序进行调试,生成original source code和emulator:noname.exe_文件,得到如下界面:2.执行run程序,打开程序aux,选择memory,查看地址0710:0000,得到如下界面:运行结果为34 0E 0D,即52 14 13,由大到小排列,满足题目要求且无错误。
六、思考题分支结构程序设计的关键在于准确地知道操作结果影响的标志位状态和正确的地使用条件转移指令。
本程序中,由于是无符号数的比较,所以也可以根据一个标志位来判定数的大小,你能说出那个是标志位吗,且程序中的JEA指令改用什么指令替换呢?答:可以根据CF标志位来判定数的大小。
CF=0时,DST>SRC;当CF=1时,DST<RSC。
当CF=1时,用JC指令可以实现转移;当CF=0时,用JNC指令可以实现转移。
七、扩展题在BUF开始的单元里有3个单字节无符号数,编写程序找出它们中的最小值并存入MIN单元。
1.输入源程序如下:DSEG SEGMENTBUF DB 99,72,88MIN DB 0DSEG ENDSCODE SEGMENTASSUME CS:CSEG,DS,DSEGSTART: MOV AX,DSEGMOV DS,AXMOV SI,OFFSET BUFMOV AL,[SI] ;把3个数取到寄存器中MOV BL,[SI+1]MOV CL,[SI+2]CMP AL,BL ;排序,将最大数送AL寄存器JAE NEXT1XCHG AL,BLNEXT1: MOV MIN,BL ;排序,将最小数送MIN 区CMP BL,CLJAE NEXT2XCHG BL,CLNEXT2: MOV MIN,CLMOV AH,4CHINT 21HCODE ENDSEND START2.执行emulate程序,对源程序进行调试,生成original source code和emulator:noname.exe_文件,结果无错误。
3.执行run程序,打开程序aux,选择memory,查看地址0710:0000,结果如下图。
经验证运行结果为63 48 58 48,即99 72 88,MIN区值为48,即最小值72,无错误。
八、实验心得通过此次试验我理解了汇编语言中编程的基本步骤,掌握了分支结构程序设计中准确知道操作结果影响的标志位状态和正确的使用无条件转移指令以及无符号数的比较方法。
这个实验,使我认识到直接通过CPU寄存器地址赋值可以大大提高效率,并且让我知道要继续练习熟读汇编语言代码的功能及用法。
实验二一、实验目的1) 掌握分支程序的结构;2) 掌握分支程序的设计,调试方法;二、实验内容设有3个单字节无符号数存放在BUF开始的缓冲区中,编写一个能将他们从大到小重新排序的程序。
三、算法描述流程图四、实验步骤(1)x、y异号1. 输入源程序:DATA SEGMENTX DB 99Y DB -33Z DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXCMP X,0 ;x与0进行比较JL L1 ;x<0转L1CMP Y,0JL L2 ;y<0转L2MOV Z,1 ;x>=0,y>=0则1→Z,无条件转EXITJMP EXITL1: CMP Y,0 ;y>=0转L2JGE L2MOV Z,-1 ;x<0,y<0则-1→Z,无条件EXITJMP EXITL2: MOV Z,0 ;x,y异号则0→ZEXIT: MOV AH,4CHINT 21HCODE ENDSEND START2.执行emulate程序,对源程序进行调试,生成original source code和emulator:noname.exe_文件,结果无错误。
3.执行run程序,打开程序aux,选择memory,查看地址0710:0000,经验证当x、y异号时,Z值为0,结果满足题目要求且无错误。
(2)x、y同为正1. 输入源程序:DATA SEGMENTX DB 13Y DB 14Z DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXCMP X,0 ;x与0进行比较JL L1 ;x<0转L1CMP Y,0JL L2 ;y<0转L2MOV Z,1 ;x>=0,y>=0则1→Z,无条件转EXITJMP EXITL1: CMP Y,0 ;y>=0转L2JGE L2MOV Z,-1 ;x<0,y<0则-1→Z,无条件EXITJMP EXITL2: MOV Z,0 ;x,y异号则0→ZEXIT: MOV AH,4CHINT 21HCODE ENDSEND START2.执行emulate程序,对源程序进行调试,生成original source code和emulator:noname.exe_文件,结果无错误。
3.执行run程序,打开程序aux,选择memory,查看地址0710:0000,经验证当x、y都大于0时,Z值为1,结果满足题目要求且无错误。
(3)x、y同为负1. 输入源程序:DATA SEGMENTX DB -36Y DB -12Z DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXCMP X,0 ;x与0进行比较JL L1 ;x<0转L1CMP Y,0JL L2 ;y<0转L2MOV Z,1 ;x>=0,y>=0则1→Z,无条件转EXITJMP EXITL1: CMP Y,0 ;y>=0转L2JGE L2MOV Z,-1 ;x<0,y<0则-1→Z,无条件EXITJMP EXITL2: MOV Z,0 ;x,y异号则0→ZEXIT: MOV AH,4CHINT 21HCODE ENDSEND START2.执行emulate程序,对源程序进行调试,生成original source code和emulator:noname.exe_文件,结果无错误。
3.执行run程序,打开程序aux,选择memory,查看地址0710:0000,经验证当x、y都小于0时,Z值为-1,结果符合题目要求且无错误。
五、实验结果(1)x、y异号1.执行emulate程序,对源程序进行调试,生成original source code和emulator:noname.exe_文件,得到如下界面:2.执行run程序,打开程序aux,选择memory,查看地址0710:0000,得到如下界面:经验证当x、y异号时,Z值为0,结果满足题目要求且无错误。
(2)x、y同为正1.执行emulate程序,对源程序进行调试,生成original source code和emulator:noname.exe_文件,得到如下界面:2.执行run程序,打开程序aux,选择memory,查看地址0710:0000,得到如下界面:经验证当x、y都大于0时,Z值为1,结果满足题目要求且无错误。
(3)x、y同为负1.执行emulate程序,对源程序进行调试,生成original source code和emulator:noname.exe_文件,得到如下界面:2.执行run程序,打开程序aux,选择memory,查看地址0710:0000,得到如下界面:x、y都小于0时,Z值为-1,结果符合题目要求且无错误。
六、思考题本程序中判定符号用的是CMP指令,而用逻辑操作指令也可以。
比如,可以用AND指令,使其进行自身与操作,反映到SF标志位,还可以用TEST指令直接测试最高位,并将结果反映到ZF标志位,然后根据ZF标志位判断。
试用TEST指令编之。
答:1.输入源程序如下:DATA SEGMENTX DB 66Y DB -100Z DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXTEST X,80HJNE L1TEST Y,80HJNE L2MOV Z,1JMP EXITL1: TEST Y,80HJE L2MOV Z,-1JMP EXITL2: MOV Z,0EXIT: MOV AH,4CHINT 21HCODE ENDSEND START2.执行emulate程序,对源程序进行调试,生成original source code和emulator:noname.exe_文件,结果无错误。
3.执行run程序,打开程序aux,选择memory,查看地址0710:0000,结果如下图经验证运行结果为42 9C 00,即66 -100 0,x、y异号,Z值为0,无错误。