当前位置:
文档之家› 汇编语言程序设计-实验指导书
汇编语言程序设计-实验指导书
All rights reserved.
Libraries [.LIB]: ↙
Warning: No STACK segment
There was 1 error detected. C:> 连接程序 Link 需要和用户进行上述相关信息交互,以便连接和生成相应的 文件。
(a)提示用户输入需要连接的目标模块名;
制数,其后不用“H”说明。 z 在 DEBUG 下,源程序中不能使用“标号”、“变量”和一些伪指令。 z 在 DEBUG 下,大小写不敏感。
5、程序未执行前,用“R”命令观察,相关寄存器的内容。
–R↙
如:(AX)=
,(BX)=
,(SI)=
,
(DI)= ,(CS)= ,(IP)= 。
6、在程序未执行前,用“D”命令观察 DS:0200H,DS:0204H、DS:0208H
8
汇编语言程序设计实验指导书
实验三 分支程序设计(1)
(一)实验目的
1、掌握多路分支 IF…Else IF…Else 程序结构和设计方法。 2、学会使用地址表和转移表法写多路分支程序。
程序对源程序进行修改,然后重新汇编、连接、直至无错。但连接程序给出的无 堆栈段的警告性错误并不影响程序的执行,所以,到此为止,连接过程已经结束, 生成了有效的可执行程序。
5、在 DOS 提示符下,直接输入 EXE 文件名,运行程序。 C:>EXAMPLE ↙ 注意: 此时可能屏幕上没有任何显示,因为你没有让结果显示在屏幕上,但是你 的计算结果必然在内存中。所以应该采用 DEBUG 进行动态调试。 6、调用 DEBUG 程序对 EXE 文件进行动态调整,其方法和步骤与实验一 相同。 C:>DEBUG EXAMPLE.EXE
(一)实验目的
1、学习算术运算(加、减、乘、除)和扩展指令的用法; 2、掌握顺序程序结构和设计方法; 3、熟悉在 PC 机上建立、汇编、连接、调试和运行 8086/8088 汇编语言程 序的过程。
(二)实验设备
硬件环境:IBM-PC 及其兼容机 软件环境:操作系统 DOS3.0 以上
编辑程序 EDIT 或其它编辑程序 汇编程序 MASM.EXE 6.1X 连接程序 LINK.EXE 调试程序
C:>DEBUG↙ – ;“( –”为 DEBUG 提示符,仅当屏幕出现该提示符后,才可输入 DEBUG 命令) 3、用“A”命令编辑和汇编源程序 –A ↙ 186E:0100 MOV AX,[0200]↙ 186E:0103 MOV BX,[0202]↙ 186E:0107 ADD AX,[0204]↙ 186E:010B ADC BX,[0206]↙ 186E:010F MOV [0208],AX↙ 186E:0112 MOV [020A],BX↙
(四)预习要求
1、复习 DOS 启动方式和 DOS 有关命令的使用; 2、阅读本书后的附录,熟悉掌握 DEBUG 调试程序中的 A、D、E、G、Q、 R、T、U 命令的书写格式及功能; 3、复习寻址方式和相关的数据传送指令及算术运算指令。
(五)实验步骤
1、启动 DOS 操作系统 2、运行 程序(若当前盘为 C)
程序进行修改、编辑和汇编。
4、在 DOS 提示符下,打入 LINK 调用连接程序,以便对目标文件进行连
接。产生可执行 EXE 文件。操作如下所示: C:> LINK
Microsoft (R) Overlay Linker Version 3.60
Copyright (C) Microsoft Corp 1983-1987. Object Modules [.OBJ]: EXAMPLE↙ Run File [EXAMPLE.EXE]: ↙ List File [NUL.MAP]: ↙
(三)实验内容和要求
实验内容: X、Y、Z、V 均为字变量,在 X、Y、Z、V 字单元中存放是 16 位带符号 数。试编写汇编语言程序完成以下功能: ①计算表达式值(V–(X*Y+Z-720))/X; ②将上述表达式运算结果整数放在 SUM1 单元,余数放在 SUM2 单元。 要求: ①编写出完整的汇编语言源程序,根据题目的需要建立相应的逻辑段(如 程序段、数据段)。 ②可选用任何一种编辑程序在磁盘上建立一个源文件(扩展名为.ASM)。 ③用宏汇编程序 MASM 对源文件进行汇编,生成目标文件(扩展名 为.OBJ)。 ④用连接程序 LINK 对目标文件进行连接,生成可执行程序.EXE 文件。 ⑤用 DEBUG 调试程序对源程序进行动态调试。
(四)预习要求
1、复习掌握 8086 指令系统相关指令,按实验内容和要求预先编写好源程序; 2、熟悉在宏汇编程序 MASM 环境下,对源程序进行编辑、汇编、连接、 运行。 3、进一步熟练用 DEBUG 对源程序进行动态调试,掌握一些常用的调试命 令和方法。
(五)实验步骤
1、启动 DOS 操作系统; 2、调用某种编辑程序,在磁盘上建立扩展名为 ASM 的源程序; 3、在 DOS 提示下,打入 MASM 调入宏汇编程序,用以对源程序进行汇编。
单元的内容
0 0116 ↙
8、再用“D”命令观察 DS:0200H~DS:020BH 字节单元中的内容
–D 200 20B↙
9、用“T”单步操作命令对源程序单步执行,观察 AX、BX、CS、IP 寄存
器内容的变化,并与预计的结果相比较。
注意:
本实验指导书是完全按照《汇编语言程序设计自学考试大纲》中“实验大 纲”的要求编写的,为便于考生较好完成上机操作和实验报告,特此作出如下说 明和要求:
(1)做好上机实验的准备工作:应考者对每个实验需要进行预习,了解相 关内容和具体要求,熟悉上机操作步骤,学会相关系统软件的使用,掌握各种操 作调试命令。
z D 命令显示内存数据,注意观察多字节数据在内存中的存放方式。
z 指令执行的时候,IP 寄存器随着变化,注意观察。
(六)实验结果分析
1、程序运行结果:(AX)= ,(BX)=
DS:0208H 四字节单元的内容:
2、试用寄存器间接寻址方式编写程序段,完成上述程序段的功能。(参考
4
下列程序流程图)
汇编语言程序设计实验指导书
(a)提示用户输入需要汇编的源程序名; (b)提示用户输入要建立的目标文件名,若默认括弧内的目标文件名,则可 直接按回车;
(c)询问用户是否要建立汇编列表文件,若要,则打入文件名,否则按回车; (d)询问用户是否要建立交叉索引文件,若要,则打入文件名,否则按回车。
注意:
仅当屏幕上显示无错误时(警告错误为“0”,严重错误为“0”),才可进行 下一步骤连接,否则要根据提供源程序的错误行号和错误性质,重新对源
(2)编写源程序:按照实验题目的要求,应考者要事先独立完成汇编语言 源程序的编写工作,并对源程序进行认真的静态检查,减少错误的发生。
(3)完成实验报告:做完上机实验,应考者要严格按照实验报告的格式要 求写出实验报告。实验报告的内容为:实验名称、实验的目的、实验的内容和要 求、实验步骤、实验结果并附上源程序清单和程序流程图。
6
汇编语言程序设计实验指导书
设在磁盘上已建立了一个 EXAMPLE.ASM 源程序,操作如下所示: C:>MASM↙
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved. Source filename [.ASM]:EXAMPLE↙
03060402 131E0602 A30802 891E0A02
ADD ADC MOV MOV
AX,[0204] BX,[0206] [0208],AX [020A],BX
– 注意:
z 检查源程序是否有错误,若有则返回到第 3 步用“A 地址”命令进 行修改,直到程序无错误。
z DEBUG 约定在其命令或源程序中所涉及到的数据均被看作十六进
汇编语言程序设计实验指导书
汇编语言程序设计
实验指导书
编写:郑利平 合肥工业大学计算机与信息学院
2008-9-1
1
汇编语言程序设计实验指导书
汇编语言程序设计实验指导书
《汇编语言程序设计》实验是学习本课程的每个考生必须要通过的一个重 要的实践环节,根据“汇编语言程序设计自学考试大纲”规定:上机实验单独作 为本课程的实验考核成绩。《汇编语言程序设计》是一门实践性很强的课程,只 有多上机操作,对汇编语言源程序进行编辑、汇编、连接、调试和运行全过程的 训练,才能加深对本课程基本知识的理解,才能熟练地掌握程序设计的方法与技 巧,才能学好本课程。
– 再可以用 U,D,T,G 等命令进行调试,其方法和步骤与实验一相同。
(六)实验结果分析
1、程序运行结果:SUM1 单元: ;SUM2 单元: 。 2、若在 X、Y、Z、V 字单元中存放的均为无符号数,对相关十六位二进 制数进行扩展,采用什么方法可以实现?
(七)编程提示
(a)执行 16 位 IMUL 指令运算结果乘积在 DX、AX 中。 (b)相加或相减的二个数长度一定要相同,注意使用 CWD 扩展指令将(AX) →DX、AX。 (c)使用 16 位 IDIV 指令一定要将被除数放在 DX、AX 中。
Object filename [EXAMPLE.OBJ]: ↙ Source listing [NUL.LST]:EXAMPLE↙ Cross reference [NUL.CRF]:EXAMPLE↙
Warning Severe
Errors Errors
0
0
C:>
汇编程序 MASM 需要和用户进行上述相关信息交互,以便进行汇编、生成 相应的文件。
始化为:540,1,-1,1080,0, 试求 w=(v-(x*y+z-540))/x 2. 完成 BX 中 1 的个数的统计。 3. 用串操作指令将 DS:0000 开始 20 个字节初始化为:0CCH。并将这 20