第一篇:微机检测与维修实验报告
更多企业学院:
《中小企业管理全能版》 183 套讲座+89700 份资料
《总经理、高层管理》 49 套讲座+16388 份资料
《中层管理学院》 46 套讲座+6020 份资料
《国学智慧、易经》 46 套讲座
《人力资源学院》 56 套讲座+27123 份资料
《各阶段员工培训学院》 77 套讲座+ 324 份资料
《员工管理企业学院》 67 套讲座+ 8720 份资料
《工厂生产管理学院》 52 套讲座+ 13920 份资料
《财务管理学院》 53 套讲座+ 17945 份资料
《销售经理学院》 56 套讲座+ 14350 份资料
《销售人员培训学院》 72 套讲座+ 4879 份资料
更多企业学院:
《中小企业管理全能版》 183 套讲座+89700 份资料
《总经理、高层管理》 49 套讲座+16388 份资料
《中层管理学院》 46 套讲座+6020 份资料
《国学智慧、易经》 46 套讲座
《人力资源学院》 56 套讲座+27123 份资料
《各阶段员工培训学院》 77 套讲座+ 324 份资料
《员工管理企业学院》 67 套讲座+ 8720 份资料
《工厂生产管理学院》 52 套讲座+ 13920 份资料
《财务管理学院》 53 套讲座+ 17945 份资
料
《销售经理学院》 56 套讲座+ 14350 份资料
《销售人员培训学院》 72 套讲座+ 4879 份资料
更多企业学院:
《中小企业管理全能版》 183 套讲座+89700 份资料
《总经理、高层管理》 49 套讲座+16388 份资料
《中层管理学院》 46 套讲座+6020 份资料
《国学智慧、易经》 46 套讲座
《人力资源学院》 56 套讲座+27123 份资料
《各阶段员工培训学院》 77 套讲座+ 324 份资料
《员工管理企业学院》 67 套讲座+ 8720 份资料
《工厂生产管理学院》 52 套讲座+ 13920 份资料
《财务管理学院》 53 套讲座+ 17945 份资料
《销售经理学院》 56 套讲座+ 14350 份资料
《销售人员培训学院》 72 套讲座+ 4879 份资料
江 西 科 技 师 范 学 院
实 验 报 告
课 程
微机的检测与维修
院 系
教育学院
班 级
教育技术学
学 号
20092295
姓 名
邓单单
报
告
规
格
一、实验目的
二、实验原理
三、实验仪器
四、实验方法及步骤
五、实验记录及数据处理
六、误差分析及问题讨论
目 目
录
1.
计算机硬件组装
2.BIOS_CMOS解析与应用
3.4.5.6.7.8.9.10.11.12.13.14.15.每次实验课必须带上此本子,以便教师检查预习情况和记录实验原始数据。
实验时必须遵守实验规则。用正确的理论指导实践袁必须人人亲自动手实验,但反对盲目乱动,更不能无故损坏仪器设备。
这是一份重要的不可多得的自我学习资料袁它将记录着你在大学生涯中的学习和学习成果。请你保留下来,若干年后再翻阅仍将感到十分新鲜,记忆犹新。它将推动你在人生奋斗的道路上永往直前!
一、实验课程名称
微机检测与维修 二、实验项目名称
BIOS_CMOS 解析与应用
三、实验目的和要求
对 BIOS 和 CMOS 的功能认识 四、实验内容和原理
1.BIOS(Basic Input/Output System)即基本输入/输出系统,它为计算机提供最底层、最直接的硬件控制与支持。熟悉 BIOS 的设置对于使用和维护计算机都有很大的帮助,用户可以在 BIOS 中设置硬件相关的工作参数,通过这些参数的设置可以改善计算机系统运行的性能。
2.CMOS,全称 Complementary Metal Oxide Semiconductor,即互补金属氧化物半导体,是计算机主板上的一块可读写的 RAM 芯片,用来保存当前系统的硬件配置和用户对某些参数的设定,由主板的 CMOS 电池供电。
五、主要仪器设备
计算机 六、操作方法与实验步骤
1.不同类型的 BIOS 进入 BIOS 设置程序的按键也不同,Award BIOS 按【Del】键进入,AMI BIOS 按【Del】键或【Esc】键进入,Phoenix BIOS 按【F2】键进入。当计算机自检出错时,会停止在自检画面,这时可以根据提示按相应的键进入。在 BIOS 设置界面中可以进行的操作如下。
【←】、【→】、【↑】、【↓】键:在各设置项目间切换移动。
【F1】或【Alt+H】键:弹出 General Help 窗口,并显示所有功能键的说明。【+】或【Page Up】键:切换选项设置值(递增)。【-】或
【Page Down】键:切换选项设置值(递减)。【F5】键:载入选项修改
前的设置值,即上一次设置的值。【F6】键:载入选项的 BIOS 默认值,即最安全的设置值。【F7】键:载入选项的最优化默认值。【F10】键:保存并退出 BIOS 设置画面。【Esc】键:回到前一画面或是主画面,或从主画面中结束设置程序。另外按【Esc】键也可不保存 BIOS 设置程序并要求退出设置。【Enter】键:确认执行、显示选项的所有设置值并进入选项子菜单。
七、实验结果与分析、心得
BIOS 的主要设置选项有:
1、基本参数设置:包括系统时钟、显示器类型等。2、磁盘驱动器设置:包括自动检测到硬盘、启动顺序。3、硬盘检测、键盘设置:包括加电是否检测到硬盘、键盘类型、键盘参数等。4、存储器设置:包括存储器容量、读写时序等等。5、安全设置:包括硬盘分区保护、开机口令、Setup口令等。6、电源管理设置:唤醒功能、IDE设备断电方式等。7、PCI局部总线参数设置:关于即插即用的功能设置、PCI插槽IRQ中断请求号等。8、主板集成接口设置:包括板上FDC软驱接口、串/并口等一些设置。
第二篇:操作系统故障检测与维修实验报告
实验一 创建MS-DOS启动盘实验
一、实验目的和要求:
了解并掌握MS-DOS启动盘的创建方法。
二、实验内容: MS-DOS启动盘的创建。
三、实验准备 计算机
四、实验步骤
1、准备文件
(1)将GHOST For DOS(GHOST.EXE)拷贝到C:EasyBootdisk1下面;(2)将其它你需要刻录的软件也拷贝到C:EasyBootdisk1下面;(3)也可将GOHST的系统分区备份也拷贝到C:EasyBootdisk1下面;
2、制作中文启动菜单
运行EasyBoot,单击“屏幕布局”选项卡,单击“文本显示”选项卡,定义启动菜单的文字属性,设置一些光盘制作信息;
在“菜单条”选项卡中用鼠标单击该界面右下角窗口中的对应条目,命令参数均采用软件的默认值,回到“文件”选项卡,按“保存”按钮,软件即会自动生成所需的启动文件和菜单文件。
3、制作ISO文件
将相应的启动文件dos98.img拷贝到C:EasyBootdisk1ezboot目录下,切换到“文件”选项卡中按下“制作ISO”按钮,选择光盘文件目录为:C:EasyBootdisk1,设定引导文件为C:EasyBootdisk1ezbootloader.bin,在“选项”栏选中“优化光盘文件”项,设置输出的ISO文件名为:C:EasyBootisoGHOST.iso,按“制作”按钮即可生成一个GHOST启动安装光盘的ISO文件。
4、刻录光盘
用DAEMON Tools等虚拟光驱工具加载 Winxp.iso 文件,确认文件无损,用烧录软件软件Nero将其烧录到光盘上。
5、启动并运行GHOST 用GHOST启动光盘启动电脑,运行GHOST.实验二
网络连接故障诊断实验
一、实验目的和要求:
了解并掌握网络连接故障的诊断与维护方法。
二、实验内容:
对网络连接故障进行诊断与维护。
三、实验准备 计算机
四、实验步骤
1、引起连接问题的可能原因
(1)、网络适配器和交换机端口的双工级别或传输速度设置不匹配。(2)、传输速率为 10/100 兆比特每秒(Mbps)的网络适配器或交换机无法正常交换。有些自动探测设置不能正确检测某些网络适配器的速度。
(3)、网络适配器与母板或其他的硬件或软件组件和驱动程序不兼容。
2、解决方法
(1)、使用 Ping 或 PathPing 命令行工具测试基础连接性;(2)、使用 Ping 来隔离网络硬件问题和不兼容的配置;(3)、使用 PathPing 检测多跃点行程中的数据包丢失。
实验三 IE 常用错误修复实验
一、实验目的和要求:
了解并掌握IE常见故障的诊断与维护方法。
二、实验内容:
对IE常见故障进行诊断与维护。
三、实验准备 计算机
四、实验步骤
1、网络连接正常但无法打开网页,提示404 not found等错误信息
① 打开IE, 点“工具” →“Internet 选项”→选择“高级”选项卡→在“重置Internet Explorer设置”中点“重置” ; ② 在“设置”列表中找到“仿冒网站筛选器”,选择“关闭自动网站检查”。
2、IE发生内部错误,窗口被关闭
①关闭过多的ie窗口。如果在运行需占大量内存的程序,建议ie窗口打开数不要超过5个;
②降低ie安全级别。执行“工具→internet选项”菜单,选择“安全”选项卡,单击“默认级别”按钮,拖动滑块降低默认的安全级别; ③将ie升级到最新6.0及以上版本。
3、出现运行错误
①启动ie,执行“工具→internet选项”菜单,选择“高级”选项卡,选中“禁止脚本调试”复选框,最后单击“确定”按钮即可; ②将ie浏览器升级到最新版本。
4、ie无法打开新窗口
单击“开始→运行”,依次运行“regsvr32 actxprxy.dll”和“regsvr32 shdocvw.dll”将这两个dll文件注册,然后重启系统。如果还不行,则可以将mshtml.dll、urlmon.dll、ms.dll、browseui.dll、oleaut32.dll、shell32.dll也注册一下。
6、脱机却无法浏览本机上的网页
①可用直接在“临时文件夹”中搜索的方法来激活它。按下win+f,在“包含文字”处输入部分记忆中的关键字,在“搜索”处按“浏览”按钮选择ie临时文件夹的地址,如“c:\windows\temporaryinternetfiles”,单击“开始查找”,在结果列表里双击目标页打开。? ②可以尝试用腾讯的te等浏览器来脱机浏览。
实验四 注册表故障维修实验
一、实验目的和要求:
了解并掌握常见注册表故障的诊断与维护。
二、实验内容:
对常见注册表故障的诊断与维护。
三、实验准备 计算机
四、实验步骤
1、“我的文档”无法打开,提示被禁用
2、单击鼠标右键无法弹出右键菜单
3、删除文件时提示“文件正在使用无法删除”
4、注册表不能使用
5、用卸载程序无法将软件卸载
实验五 GHOST 软件的使用
一、实验目的和要求:
了解并掌握的数据的备份与还原的软件的使用方法。
二、实验内容:
使用GHOST软件分区备份到镜像文件
三、实验准备 计算机、GHOST盘
四、实验步骤
1、运行GHOST主界面后,选择菜单“Local→Partition→to Image”。
2、选择要备份的硬盘,故此直接单击【OK】确定。
3、选择备份的分区,如第一个分区,单击OK。
4、选择备份档案存放的路径与文件名,如D:﹨Win XP。
5、用【Tab】键将光标移动到【Save】,回车确定后,出现备份文件压缩类型提示框,有三种选择;
6、用【Tab】键将光标移动到【Fast】,回车确定后,屏幕给出了确认选择对话框。
7、选择“Yes”后,即开始执行复制过程。
8、等待一段时间,屏幕给出了成功提示框,至此分区备份结束。
第三篇:微机实验报告
自动化 学院 物联网 专业 1 班 学号
姓名 协作者 教师评定
实验一 操作训练及数码转换实验
一、实验目的
1)掌握80x86微机原理及接口技术教学实验系统的操作,熟悉Wmd86联级集成开发调试软件的操作环境。
2)掌握不同进制数及数码相互转换的程序设计方法。
二、实验设备
PC一台,td-pite微机/单片机教学实验装置一套。
三、实验内容与步骤 实验程序:
1、STAK SEGMENT STACK
DW 64 DUP(?)STACK ENDS DATA SEGMENT
ORG 0500H DATA1 DB 00H, 01H,02H,03H,04H,05H,06H,07H,08H,09H,10H
DB 11H,12H,13H,14H,15H
ORG 0600H DATA2 DB 16 DUP(?)DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET DATA1
MOV DI, OFFSET DATA2
MOV CX,0010H A1: MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
LOOP A1
MOV AH,4CH INT 21H CODE ENDS END START 编译连接后使用U命令查看DS地址为0208 使用G命令运行再用D命令查看结果正确
2、将ASCLL码表示的十进制数转换成二进制数 参考程序 略 利用E命令修改0500开始的数据输入34 35 后G命令运行再用D命令查看结果为DATA:0510 2D正确输入为12 95时对应结果为0C 5F 编程练习一:
1)编程实现将十进制数的ASCLL码转换成BCD码 要求:用E命令从键盘输入的五位十进制数的ASCLL码已存放在0500H起始的内存单元内(例25H、30H、32H、34H、65H),把它转换成BCD码后,再分别存入050AH起始的内存单元内。若输入的不是十进制数的ASCLL码,则对应的结果的存放单元内容为“FF” 程序代码:
STACK SEGMENT STACK DW 64 DUP(?)STACK ENDS DATA SEGMENT ORG 0500H DATA1 DB 25H,30H,32H,34H,65H ORG 050AH DATA2 DB 5 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX MOV SI,OFFSET DATA1 MOV DI,OFFSET DATA2 MOV CL,5 A1: MOV AL, [SI] CMP AL,30H JB A2 CMP AL,39H JA A2 AND AL, 0FH MOV [DI], AL JMP NEXT A2: MOV BYTE PTR [DI], 0FFH JMP NEXT NEXT: INC SI INC DI DEC CL JNZ A1 MOV AH,4CH INT 21H CODE ENDS END START 实验结果:
自动化 学院 物联网 专业 1 班 学号
姓名 协作者 教师评定
实验二:运算类编程实验
一、实验目的
1)掌握使用运算类指令编程及调试方法。
2)掌握运算类指令对各状态标志位的影响及其测试方法。3)学习使用软件监视变量的方法。
二、实验设备
PC一台,td-pite微机/单片机教学实验装置一套。
三、实验内容及步骤
4、除法运算
题目:十进制的除法。被除数和除数均已非压缩BCD数形式存放在内存中。试验程序:
STACK SEGMENT STACK DW 64 DUP(?)STACK ENDS DATA SEGMENT DATA1 DB 2 DUP(?)DATA2 DB 1 DUP(?)RESULT DB 2 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS: CODE,DS:DATA START: MOV AX, DATA MOV DS, AX CALL INIT MOV SI, OFFSET DATA2 MOV BL, [SI] MOV SI,OFFSET DATA1 MOV DI, OFFSET RESULT MOV CL,0AH MOV AL,[SI] MUL CL ADD AL,[SI+01H] MOV AH,00H DIV BL MOV AH , 00H DIV CL MOV [DI],AX MOV AH,4CH INT 21H INIT: MOV SI,OFFSET RESULT MOV CX,0002H MOV AX,00H A1:MOV [SI],AL INC SI LOOP A1 RET CODE ENDS END START 用e命令赋值被除数09 02 除数04 g命令运行 d命令查看0072:0003 显示02 03 运行结果:
编程练习
2)已知在起始地址为0500H的内存单元中,存放一串数据:10H,20H,30H,40H,50H,60H.请编程求其平均值,并把平均值转换成BCD数存入0500H单元中。程序代码:
STACK SEGMENT STACK DW 64 DUP(?)STACK ENDS DATA SEGMENT ORG 0500H DATA1 DW 10H,20H,30H,40H,50H,60H ORG 0510H DATA2 DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE ,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET DATA1 MOV DI,OFFSET DATA2 MOV AX,[SI] MOV CL, 5 A1: MOV BX,[SI+2] ADD AX,BX INC SI INC SI DEC CL JNZ A1 MOV BL,06H DIV BL MOV BL,0AH DIV BL MOV BH,AH MOV BL,10H MUL BL ADD AL,BH MOV [DI],AL MOV AH,4CH INT 21H CODE ENDS END START 用g命令运行再用d命令查看0772:0510中内容为56
自动化 学院 物联网 专业 1 班 学号311300 姓名 协作者 教师评定
实验三:分支、循环及子程序设计实验
一、实验目的
1)了解分支、循环子程序等程序的基本结构。
2)掌握分支程序、循环结构程序的设计和调试方法。3)掌握子程序的定义和调试方法。
二、实验设备
PC一台,td-pite微机/单片机教学实验装置一套。
三、实验内容和步骤 3.名次表 程序代码:
STACK SEGMENT STACK DW 64 DUP(?)STACK ENDS DATA SEGMENT ORG 0100H DATA1 DB 10 DUP(?)ORG 0200H DATA2 DB 10 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV SI,OFFSET DATA1 MOV CX,000AH MOV DI,OFFSET DATA2 A1: CALL AA1 MOV AL,0AH SUB AL,CL INC AL MOV BX,DX MOV [BX+DI],AL LOOP A1 MOV AH,4CH INT 21H AA1: PUSH CX MOV CX,000AH MOV AL, 00H MOV BX,0100H MOV SI,BX A2: CMP AL,[SI] JAE A3 MOV AL,[SI] MOV DX,SI SUB DX,BX A3: INC SI LOOP A2 ADD BX,DX MOV AL,00H MOV [BX],AL POP CX RET CODE ENDS END START 实验步骤:
汇编连接生成exe文件
用e命令输入:3CH,40H,47H,61H,4FH,5DH,52H,30H,56H,45H,等十个成绩。再用g命令运行d命令查看0722:0200.编程练习
2)有3个8位二进制数连续存放在0200H开始的内存单元中,设他们之中至少有两个数是相同的。编写程序找出与这两个数不同的数,把该数所在地址送到0204H单元,若三个数都相同则送0FFFFH到0204单元。程序代码:
STACK SEGMENT STACK DW 64 DUP(?)STACK ENDS DATA SEGMENT ORG 0200H DATA1 DB ? DATA2 DB ? DATA3 DB ? ORG 0204H DATA4 DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS ,AX LEA SI,DATA1 LEA SI,DATA4 MOV AL,[SI] MOV AH,[SI+1] MOV BL,[SI+2] CMP AL,AH JZ A1 CMP AL,BL JZ A2 MOV [DI],SI JMP A4 A2: ADD SI,1 MOV [DI],SI JMP A4 A1: CMP AL,BL JZ A3 ADD SI,2 MOV [DI],SI JMP A4 A3: MOV [DI] ,0FFFFH A4:MOV AH,4CH INT 21H CODE ENDS END START 实验步骤:e0772:0200命令输入数据01 01 01g命令运行 的命令查看得到
运行结果:
第四篇:微机实验报告
微机实验报告
曾东明
实验一 输出字符‘A’
一、实验目的
1.通过这个简单的例子熟悉在微机上建立、汇编、链接和运行8086/8088汇编语言程序的过程。
2.掌握字符的显示方法。3.学习DOS系统功能调用。
二、实验内容
输出字符„A‟,程序流程图如图1-1所示。
图1-1输出字符„A‟程序流程图
源程序如下:
CODE
SEGMENT
ASSUME
CS:CODE
MOV
DL, 'A'
MOV
AH, 2
INT
21H
MOV
AH, 4CH
INT
21H
CODE
ENDS
END
三、实验设备
PC机一台,MASM汇编程序
四、实验步骤
1.用记事本将源程序输入,并存盘。
注意:源程序是用汇编语言语句编写的程序,并不能为机器所识别。源程序的扩展名为.ASM 2.用宏汇编程序将.ASM源程序汇编成机器码的目标文件(OBJ文件)3.用LINK程序产生执行文件(EXE文件)4.执行程序
实验结果:
五、心得体会
第一次经历了汇编语言的上机过程,对在计算机上进行汇编语言程序设计的步骤不是很熟悉,对命令提示符的一些操作命令不懂,后来查阅了一些资料,比如可以在window7下按住shift,点击鼠标右键,在弹出的窗口里就可以打开命令提示符了。
六、思考题
1.请说出一个完整的汇编程序从编写到运行所需的步骤。(1)用编辑程序建立ASM源程序文件
(2)用宏汇编程序将.ASM源程序汇编成机器码的目标文件(OBJ文件)(3)用LINK程序产生执行文件(EXE文件)(4)在DOS命令行直接键入文件名执行该文件 2.修改源程序,改变屏幕显示的内容。修改的源程序: CODE
SEGMENT
ASSUME
CS:CODE
MOV
DL, 'D'
MOV
AH, 2
INT
21H
MOV
AH, 4CH
INT
21H
CODE
ENDS
END
实验二 数据的显示实验
一、实验目的
1.掌握屏幕上显示各种进制数据的方法。
2.掌握将内存中的二进制数转换为十进制、十六进制数的方法。
3.学会子程序的编写、调用及数据传递方法。
二、实验内容
1.把BX中的无符号二进制数转换成十进制数,在屏幕上显示出来。
2.把BX中的带符号二进制数转换成十进制数,在屏幕上显示出来。
3.求一个数据块(由10个单字节的无符号数组成)中的最大元素,并将结果以十进制数的形式在屏幕上显示出来。
4.求一个数据块(由20个单字节的带符号数组成)中的正数之和(和不超过字)和负数之和(和不超过字),并在屏幕上用十进制数的形式分别显示出两个和。
5.将寄存器BX中的二进制数转换成十六进制数,并在屏幕上显示出来。从高到低依次取出4位二进制数变为ASCII码输出即可。
三、实验设备:
PC机一台、masm汇编程序
四、实验步骤:
依照前面介绍的方法,对每一个实验内容对应的程序进行编辑、编译、连接和运行,直到达到实验要求。
1.实验内容1(1)实验内容1的流程图,如图所示:
(2)实验内容1的程序:
CODE SEGMENT
ASSUME
CS: CODE
DEC_DIV MACRO
MOV
AX, BX
MOV
DX, 0
DIV
CX
MOV
BX, DX
MOV
DL, AL
ADD
DL, 30H
MOV
AH, 2
INT
21H
ENDM
START: MOV
BX, 0FFFH
MOV
CX, 1000
DEC_DIV
MOV
CX, 100
DEC_DIV
MOV
CX, 10
DEC_DIV
MOV
CX, 1
DEC_DIV
MOV
AH, 4CH
INT
21H
CODE ENDS
END
START(3)实验结果:
2.实验内容2(1)实验容1的程序: DATA SEGMENT A DW 1000 B DW 100 C DW 10 D DW 1 DATA ENDS CODE SEGMENT
ASSUME
CS: CODE,DS:DATA
START: MOV
AX,DATA
MOV
DS,AX
MOV
BX, 0FFEFH;-0017的补码是0FFEFH
OR BX,BX
JNS NEXT
NEG BX
AND BH,7FH
MOV DL,2DH
MOV AH,2
INT 21H
NEXT:
MOV
SI,OFFSET A
CALL
DEC_DIV
MOV
SI,OFFSET B
CALL
DEC_DIV
MOV
SI,OFFSET C
CALL
DEC_DIV
MOV
SI,OFFSET D
CALL
DEC_DIV
MOV
AH, 4CH
INT
21H
DEC_DIV PROC
NEAR
MOV CX, [SI]
MOV
AX, BX
MOV
DX, 0
DIV
CX
MOV
BX, DX
MOV
DL, AL
ADD
DL, 30H
MOV
AH, 2
INT
21H
RET
DEC_DIV ENDP
CODE ENDS
END
START(2)实验结果:
3.实验内容3(1)实验内容3的流程图,如图所示:
(2)实验3的程序: DATA
SEGMENT
BLOCK
DB 1,0,5,7,10,30,100,127,90,80
RESULT
DB
?,?
BUF
DB
'MAX IS:$' DATA
ENDS CODE
SEGMENT
ASSUME
CS:CODE,DS:DATA
BEGIN
PROC
FAR
MOV
AX, DATA
MOV
DS, AX
MOV
CX, 9
LEA
SI, BLOCK
MOV
AL, [SI]
X1: INC
SI
CMP
AL, [SI]
JAE
X2
MOV
AL, [SI]
X2: LOOP
X1
MOV
RESULT, AL
MOV DX, OFFSET BUF
MOV AH, 9
INT 21H
MOV
BL,RESULT
CBW
MOV
CX, 1000
CALL
DEC_DIV
MOV
CX, 100 CALL
DEC_DIV MOV
CX, 10 CALL
DEC_DIV
MOV
CX, 1
CALL
DEC_DIV
MOV
AH, 4CH
INT
21H
DEC_DIV PROC
NEAR
MOV
AX, BX
MOV
DX, 0
DIV
CX
MOV
BX, DX
MOV
DL, AL
ADD
DL, 30H
MOV
AH, 2
INT
21H
RET
DEC_DIV ENDP
BEGIN
ENDP
CODE
ENDS
END
BEGIN(3)实验3的运行结果:
4.实验内容4(1)实验内容4的流程图,如图所示:
(2)实验内容4程序: DATA
SEGMENT
BLOCK DB
-1,-2,-3,-4,-5,-6,-7,-8,-9,-10
DB
11,12,13,14,15,16,17,18,19,20
POSIT DW
?
NEGAT DW
?
BUF1
DB
'POSIT:$'
BUF2
DB
'NEGAT:$'
DATA
ENDS
CODE SEGMENT
ASSUME
CS:CODE,DS:DATA
START PROC
MOV
AX, DATA
MOV
DS, AX
MOV
BX, OFFSET BLOCK
MOV
SI, 0
MOV
DI, 0
MOV
CX, 20
X1: MOV
AL, [BX]
CBW
CMP
AX, 0
JGE
X3
ADD
DI, AX
JMP
X2
X3: ADD
SI, AX
X2: INC
BX
LOOP
X1
MOV
POSIT, SI
MOV
NEGAT, DI
MOV DX, OFFSET BUF1
MOV AH, 9
INT 21H
MOV
BX,POSIT
MOV
CX, 1000
CALL
DEC_DIV
MOV
CX, 100
CALL
DEC_DIV
MOV
CX, 10
CALL
DEC_DIV
MOV
CX, 1
CALL
DEC_DIV
MOV
DL,0AH
MOV
AH,2
INT
21H
MOV DX, OFFSET BUF2
MOV AH, 9
INT 21H
MOV BX,NEGAT
NEG BX
AND BH,01111111B
MOV DL,2DH;显示负号
MOV AH,2
INT 21H
MOV
CX, 1000
CALL
DEC_DIV
MOV
CX, 100
CALL
DEC_DIV
MOV
CX, 10
CALL
DEC_DIV
MOV
CX, 1
CALL
DEC_DIV
MOV
AH, 4CH
INT
21H
DEC_DIV PROC
NEAR
MOV
AX, BX
MOV
DX, 0
DIV
CX
MOV
BX, DX
MOV
DL, AL
ADD
DL, 30H
MOV
AH, 2
INT
21H
RET
DEC_DIV ENDP
CODE ENDS
END
START
(3)实验结果:
5.实验内容5(1)实验内容5的流程图,如图所示:
图2-4 内容5流程图
(2)实验内容5的源程序,参考如下:
CODE
SEGMENT
ASSUME
CS:CODE
BINHEX PROC
FAR
MOV
CH,4
MOV
BX,1000
ROTATE: MOV
CL,4
ROL
BX,CL
MOV
DL,BL
AND
DL,0FH
ADD
DL,30H
CMP
DL,3AH
JL
OUTPUT
ADD
DL,7
OUTPUT: MOV
AH,2
INT
21H
DEC
CH
JNE
ROTATE MOV
DL,'H' MOV
AH,2 INT
21H
MOV
AH,4CH
INT
21H
BINHEX ENDP
CODE ENDS
END
BINHEX(3)实验结果:
五、心得体会 实验内容1:
宏定义必须先定义,后调用,自己刚开始时把宏定义放在调用的后面,导致程序出错。看了生产的LIST给出的源程序和目标程序,发现每个宏调用处,通过宏扩展,宏体中的指令的机器代码被插入到宏调用处,不节省内存单元,但相对于子程序,简化了源程序。
实验内容2:
刚开始的时候给BX寄存器送负值,比如-17,我写成了1000 0000 0001 0001 即 MOV BX,8011H,后来发现显示出来的数不是-17。经过思考,懂得原来负数的表示要用补码,下面是两种LIST 文件里对应地方的目标程序和源程序,可以看出转化为目标程序的时候,用补码表示。0000 BB FFEF 0000 BB FFEF
START: MOV
BX,-0011H
START: MOV
BX, 0FFEFH
实验内容3:求一个数据块中最大元素的时候,把数据块中的第一个元素AL中,并通过循环把其余的元素和AL比较,如果新元素较大的话就取代原来的元素放到AL中。比较完成后,把最大的元素放到预先为其保留的地址中,注意要控制的次数CX,是数据块的个数减一。
LOOP 标号
功能相当于
DEC CX JNZ 标号 实验内容4:
回车和换行的效果不一样。显示字符串的时候要注意用$。
因为要将正数与负数分别累加,这时候需要分支,而分支的条件有很多种,比如跟0比较大小,比如通过提取符合位来判断,只要能正确实现分支都可以。实验内容5:
16位的二进制数,4位一组可以显示为4位十六进制数,从高到低依次取出4位二进制数变成ASCⅡ码输出即可。
要注意ASICC代码中,1-9的ASICC代码要比1-9的二进制值大30H,A-F的ASICC代码要比1-9的二进制值大37H,所以对不同的四位二进制,要加个判断分支,才能找到相应得ASICC代码。
六、思考题
1.请总结显示寄存器或者内存中的十进制和十六进制数据的方法。十进制显示的方法:
先判断是正数负数,是负数要把它转化成负数的绝对值,并在前面加一个负号。
把BX中的数按位由高到低转化成十进制数,即依次对其除以10000、1000、100、10、1,将获得的商放到 DL中,加30H变成ASCⅡ码,调用DOS系统中断INT 21H的2号功能显示出来;对于每一位十进制数的获得和显示,实验通过编制子程序DEC_DIV并不断调用来实现。
十六进制的显示方法:
16位的二进制数,4位一组可以显示为4位十六进制数,从高到低依次取出4位二进制数变成ASCⅡ码输出即可,可以用循环左移的指令POL,循环左移四位,并提取这四位。
2.请总结子程序编写、调用及参数传递的要点。子程序定义格式如下:
过程名
PROC [NEAR/FAR]
RET
过程名
ENDP 调用的时候用
CALL 过程名
参数传递有三种方法:(1)通过寄存器传递参数,这种方式适合于传递参数较少的一些简单程序。(2)通过地址表传递参数地址,这种方式适合于参数较多的情况,但要求事先建立一个用来传送参数的地址。(3)通过堆栈传递参数。为了利用堆栈传递参数,必须在主程序中调用子程序之前的地方,把这些参数压入堆栈后利用在子程序中的指令从堆栈弹出而取得参数。同样,要从子程序传递回调用程序的参数也被压入堆栈内,然后由主程序中的指令把这些参数从堆栈中取出。
3.修改源程序,改变屏幕显示的内容。1:
2:
3:
4:
5:
实验三 从键盘上输入数据实验
一、实验目的
1.掌握从键盘上输入数据的方法。
2.键盘上输入的是ASCII字符,掌握如何将ASCII字符转换为机内数字。
二、实验内容
1.从键盘上输入一个十进制数(0~65535),转换成二进制数并放入寄存器BX中。2.从键盘上输入0~65535范围的一个十进制数,在屏幕上显示出相 PC机一台、masm汇编程序
三、实验设备 PC机一台、masm汇编程序
四、实验步骤:
依照上次实验步骤,对每一个实验内容对应的程序进行编辑、编译、连接和运行,直到达到实验要求。
1.实验内容1的程序: CODE SEGMENT
ASSUME
CS:CODE
START PROC
CALL
DECBIN
MOV
DL,0DH
MOV
AH,2
INT
21H
CALL
XIANSHI
MOV
AH,4CH
INT
21H
START ENDP
DECBIN PROC
NEAR
MOV
CX,10
MOV
BX,0
LOP1: MOV
AH,1
INT
21H
CMP
AL,30H
JL
EXIT
CMP
AL,39H
JG
EXIT
SUB
AL,30H
MOV
AH,00H
XCHG
AX,BX
MUL
CX
ADD
BX,AX
JMP
LOP1
EXIT: RET
DECBIN ENDP
XIANSHI PROC
NEAR
LP1: MOV
CX,10000
CALL
DEC_DIV
MOV
CX,1000
CALL
DEC_DIV
MOV
CX,100
CALL
DEC_DIV
MOV
CX,10
CALL
DEC_DIV
MOV
CX,1
CALL
DEC_DIV
RET
XIANSHI ENDP
DEC_DIV PROC
NEAR
MOV
AX,BX
MOV
DX,0
DIV
CX
MOV
BX,DX
MOV
DL,AL
ADD
DL,30H
MOV
AH,2
INT
21H
RET
DEC_DIV ENDP
CODE ENDS
END
START
(2)运行结果:
输入11111后,程序显示如图所示:
2.实验内容2(1)实验内容2的程序: STACK SEGMENT DB 20 DUP(?)STACK ENDS CODE SEGMENT
ASSUME
CS:CODE,SS:STACK
START PROC
MOV AX,STACK
MOV SS,AX
CALL
DECBIN
CALL
XIANSH
MOV
DL,0AH
MOV
AH,2
INT
21H
MOV
CH,4
CALL
ROTATE
MOV
AH,4CH
INT
21H
START ENDP
XIANSHI PROC
NEAR
PUSH BX
LP1: MOV
CX,10000
CALL
DEC_DIV
MOV
CX,1000
CALL
DEC_DIV
MOV
CX,100
CALL
DEC_DIV
MOV
CX,10
CALL
DEC_DIV
MOV
CX,1
CALL
DEC_DIV
POP BX
RET
XIANSHI ENDP
DEC_DIV PROC
NEAR
MOV
AX,BX
MOV
DX,0
DIV
CX
MOV
BX,DX
MOV
DL,AL
DECBIN PROC
NEAR ADD
DL,30H MOV
AH,2 INT
21H RET
DEC_DIV ENDP
MOV
MOV
LOP1: MOV
INT
CMP
JL
CMP
JG
SUB
MOV
XCHG
MUL
ADD
JMP
EXIT:
RET
DECBIN ENDP ROTATE PROC
LOP2: MOV
ROL
MOV
AND
ADD
CMP
JL
ADD
OUTPUT: MOV
INT
DEC
JNE
MOV
MOV
INT
RET
CX,10 BX,0 AH,1 21H AL,30H EXIT AL,39H EXIT AL,30H AH,00H AX,BX CX BX,AX LOP1 CL,4 BX,CL DL,BL DL,0FH
DL,30H DL,3AH
OUTPUT;小于转移 DL,7 AH,2 21H CH LOP2 DL,'H' AH,2 21H
ROTATE ENDP
CODE ENDS
END
START
(2)运行结果:
输入00010,显示结果如图3-4所示:
五、心得体会
在写实验二的时候,调用子程序的地方比较多,可是调用子程序的时候,没有对寄存器的数据进行保护,导致程序的执行结果不正确,后来用压栈会保护寄存器里的数据,并用出栈来恢复寄存器的数据,使程序的执行结果正确。
六、思考题
1.请总结从键盘上输入字符的方法。
从键盘上输入一个十进制数(0~65535),转换成二进制数并放入寄存器BX中。对于输入的字符,先判断它是不是1~9的数字字符,若不是,直接跳出循环,若是的话,将ASCⅡ码转化成对应数值并存到AX中,对于下一个输入的数值,判断完成后,通过将AX和BX内容交换并将AX中的数*10,再累加实现。
2.请总结将二进制数转换为十六进制数并显示的方法。
16位的二进制数,4位一组可以显示为4位十六进制数,从高到低依次取出4位二进制数变成ASCⅡ码输出即可,可以用循环左移的指令POL,循环左移四位,并提取这四位。
3.修改源程序,改变屏幕显示的内容。
实验内容1:输入22222,显示
实验内容2:输入12,显示
实验四
字符串的显示实验
一、实验目的: 掌握字符串的显示方法。
二、实验内容: 1.在内存中存有一个字符串,以0为结尾,程序开始输出“HELLO”然后等待从键盘输入一个字符,在字符串中寻找该字符,若找到,输出“yes”;若找不到,输出“no”,然后再输入下一个字符。
2.实验内容1的程序是一个无限循环的程序,若按“ESC”键,让程序推出循环,使系统返回DOS。已知“ESC”键的键值是1BH。按照上面的要求对实验内容1的程序进行修改,然后再重新汇编、链接和运行。
三、实验设备: PC机一台、masm汇编程序
四、实验步骤:
1.实验内容1(1)实验内容1程序: DATA
SEGMENT
STR1 DB
'HELLO',0DH,0AH,'$'
STR2 DB
20H,'YES',0DH,0AH,'$'
STR3 DB
20H,'NO',0DH,0AH,'$'
STR4 DB
'1 2 3 0 4 5 A B a=!?',00H
DATA
ENDS
CODE SEGMENT
ASSUME
CS:CODE,DS:DATA
START PROC
FAR
MOV
AX,DATA
MOV
DS,AX
MOV
DX,OFFSET STR1
MOV
AH,9
INT
21H
LOOP1: MOV
AH,1
INT
21H
MOV
BX,OFFSET STR4
GON: MOV
AH,[BX]
CMP
AH,0
JZ
NO
INC
BX
CMP
AH,AL
JNZ
GON
MOV
DX,OFFSET STR2
GO: MOV
AH,9
INT
21H
JMP
LOOP1
NO: MOV
DX,OFFSET STR3
JMP
GO
START ENDP
CODE ENDS
END
START(2)运行结果
2、实验内容2(1)实验内容2程序: DATA
SEGMENT
STR1 DB
'HELLO',0DH,0AH,'$'
STR2 DB
20H,'YES',0DH,0AH,'$'
STR3 DB
20H,'NO',0DH,0AH,'$'
STR4 DB
'1 2 3 0 4 5 A B a=!?',00H
DATA
ENDS
CODE SEGMENT
ASSUME
CS:CODE,DS:DATA
START PROC
FAR
MOV
AX,DATA
MOV
DS,AX MOV
DX,OFFSET STR1 MOV
AH,9 INT
21H
LOOP1: MOV
AH,1
INT
21H
CMP
AL,1BH
JZ
EXIT
MOV
BX,OFFSET STR4
GON: MOV
AH,[BX]
CMP
AH,0
JZ
NO
INC
BX
CMP
AH,AL
JNZ
GON
MOV
DX,OFFSET STR2
GO: MOV
AH,9
INT
21H
JMP
LOOP1
NO: MOV
DX,OFFSET STR3
JMP
GO
EXIT:
MOV
AH, 4CH
INT
21H
START ENDP
CODE ENDS
END
START(2)运行结果:
五、心得体会
通过这次实验,掌握了字符算的显示方法。该程序要用到DOS系统功能调用的9号子程序,9号子程序的功能是在屏幕上输出一个字符串,字符串要以字符“$”做为结尾符,但“$”在屏幕上不显示。
六、思考题
1.请总结字符串的显示方法。
该程序要用到DOS系统功能调用的9号子程序,9号子程序的功能是在屏幕上输出一个字符串,字符串要以字符“$”做为结尾符,但“$”在屏幕上不显示。
调用9号子程序的格式是:
MOV
DX,字符串起始地址(入口参数)
MOV
AH,9
INT
21H 9号子程序遇到 “0DH”处理成回车;
遇到 “0AH”处理成换行;
遇到 “20H”处理成空格。
2.巩固汇编语言分支程序设计的方法。
许多实际问题并不能设计成顺序程序,需要根据不同的条件作出不同的处理。把不同的处理方法编制成各自的处理程序段,运行时由机器根据不同的条件自动作出选择判断,绕过某些指令,仅执行相应的处理程序段。按这种方式编制的程序,称之为分支程序。分支程序是机器利用改变标志位的指令和转移指令来实现的。
转移指令有JMP和Jcc两类。前者是无条件转移指令,后者是条件转移指令。
第五篇:微机实验报告要求
实验报告的撰写要求
一、封面(统一要求)
二、报告内容:
① 题目
② 程序框图
③ 硬件原理图(在做硬件实验时需此步骤)
④ 源程序(左边为实验前预习的源程序,右边为实验后调试正确的)
⑤ 指令分析(分析源程序中用到的条件转移、逻辑、移位、算术运算等指令在程序段
中的作用)
⑥ 结果记录及分析
三、收获感想。可以从以下几个方面总结
① 进一步掌握并理解x86指令系统的功能及应用
② 加深对寻址方式的理解。
③ 了解程序设计过程,掌握x86程序设计的基本方法。
④ 掌握编程、调试方法(包括排除程序错误、决解问题的方法)。
⑤ 通过编程设计、软件调试,进一步了解和掌握x86软、硬件的工作原理,为下一步
硬件实验打下良好的基础。