硬件基础实验指导书与答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算机硬件基础》课程实验指导书
辽宁工程技术大学软件学院
2017年5月
目录
64位操作系统下使用MASM (3)
实验上机操作范例 (5)
实验一CPU结构 (15)
实验二指令格式 (22)
//实验三循环程序设计 (25)
实验四综合程序设计(一) (32)
实验五综合程序设计(二) (36)
实验六高级汇编技术 (42)
64位操作系统下使用MASM
1.安装DOSBox。双击DOSBox0.74-win32-installer.exe。
2.运行DOSBox。双击桌面的DOSBox快捷方式,如图1所示。
图1 运行DOSBOX虚拟机
3.将MASM文件夹里的全部文件拷贝到一个目录下,比如d:\masm下,然后将这个目录挂载为DOSBox的一个盘符下,挂载命令为Mount c d:\masm 。然后切换到挂载的c盘,如图2所示。
图2 挂载masm文件夹3.编译汇编源程序,如图3所示。
图3 汇编源程序4.连接和运行源程序,如图4所示。
图4连接和运行源程序
实验上机操作范例
【范例】完成具有如下功能的分段函数
1 X>0
Y = 0 X=0
-1 X<0
其中:X存放在内存单元中,Y为结果单元。【问题分析】根据题意画出程序流程图,如图1所示。
图1 分段函数的程序流程图
根据程序流程图编写如下程序
DSEG SEGMENT
X DW ?
Y DW ?
DSEG ENDS
CSEG SEGMENT
ASSUME CS: CSEG, DS: DSEG
START:MOV AX, DSEG
MOV DS, AX
LEA SI, X
MOV AX, [SI]
AND AX, AX
JNS LP1
MOV Y, 0FFH ; X<0
JMP END1
LP1: JNZ LP2
MOV Y, 00H
JMP END1
LP2: MOV Y, 01H
END1: MOV AH, 4CH
INT 21H
CSEG ENDS
END START
汇编语言程序的开发分为以下4个部分:编辑(生成.asm文件)—→汇编(生成.obj文件)—→连接(生成.exe文件)—→调试。
下面介绍汇编语言源程序从编辑到生成一个可执行文件(.exe文件)的过程。利用Microsoft公司提供的MASM6.15版本的工具包(包括MASM.EXE、LINK.EXE、ML.EXE、DEBUG32.EXE等),如图2所示。
图2 G盘下的MASM615工具包
下面的例子按以下几个步骤完成:
(1)先编写一个fenduan.asm文件;
(2)保存并通过运行masm.exe生成目标文件fenduan.obj;(3)再利用link.exe生成可执行文件fenduan.exe;
(4)运行fenduan.exe文件;
(5)运行debug32 fenduan.exe后即可对程序进行跟踪调试。
1.通过DOSbox调用MASM6.15
图3 挂载masm6.15
将masm汇编工具文件夹g:\masm615\挂载到DOSbox虚拟机的C盘下。命令为mount c g:\masm615,然后,进入虚拟盘符C盘下,即g:\masm615下。
2.编辑源程序
在masm615文件下建立记事本,把文件扩展名改为.asm并进行保存,这时弹出图4所示窗口,单击“是”。
图4 重命名对话框
双击fenduan.asm文件,编写汇编语言源程序,如图5所示。
图5 记事本中编写汇编语言源程序
2、汇编
汇编的命令格式是:masm 文件名.asm (扩展名.asm可以省略)
图6 汇编fenduan.asm文件
汇编fenduan.asm文件,在DOS环境下键入―masm fenduan.asm‖,按回车。如图6所示生成fenduan.obj文件,显示的信息含义为:
Object filename [FENDUAN.OBJ]: ←是否改动输出OBJ文件名,如不改就按回车键―ENTER‖。
Source listing [NUL.LST]: ← 是否需要列表文件(LST),不需要就按回车键。
Cross-reference [NUL.CRF]: ←是否需要对照文件(CRF),不需要则按回车键。
51670 + 464874 Bytes symbol space free
0 Warning Errors ←警告错误,表示编译器对某些语句不理解,通常是输入错误。
0 Severe Errors ←严重错误,会造成程序无法执行,通常是语法结构错误。
如果没有一个错误存在,即可生成OBJ文件。OBJ中包含的是编译后的二进制结果,它还无法被DOS载入内存中加以执行,必须加以连接(Linking)。
以LINK将OBJ文件(FENDUAN.OBJ)链结成EXE 文件(FENDUAN.EXE)。
3、连接
连接的命令格式:link 文件名.obj (扩展名.obj可以省略)
图7 连接fenduan.obj文件
连接fenduan.obj文件,在DOS环境下键入―link fenduan.obj‖,按回车。如图7所示生成了fenduan.exe文件,显示的信息含义为:
Microsoft (R) Overlay Linker Version 3.60
Copyright (C) Microsoft Corp 1983-1987. All rights reserved.
Run File [SMILE.EXE]: ← 是否改动输出EXE文件名,如不改就ENTER。
List File [NUL.MAP]: ← 是否需要列表文件(MAP),不需要则ENTER。
Libraries [.LIB]: ←是否需要库文件,要就键入文件名,不需要则ENTER。
LINK : warning L4021: no stack segment← 由于COM文件不使用堆栈段,所以错误信息。"no stack segment"并不影响程序正常执行。
4、调试
调试的命令格式是:DEBUG32 文件名.exe ←.exe可以省略。
若调试fenduan.exe文件,如图14所示在DOS环境下键入―debug fenduan.exe‖,按回车,这时进入debug动态调试窗口。
先用命令U反汇编整个程序,查看每条指令的物理地址,其显示内容如图8和9所示。