汇编语言实验指导书
更新时间:2024-05-04 17:28:01 阅读量: 综合文库 文档下载
汇编语言实验指导书
邹先霞
暨南大学计算机系
二○一三年三月
目 录
实验一 汇编源程序的上机调试操作基础训练 ................................................. 3 实验二 顺序与分支程序设计 ............................................................................. 8 实验三 循环与子程序程序设计 ......................................................................... 9 实验四 算术运算与代码转换程序设计 ........................................................... 11 实验五 字符串的匹配与替换程序设计 ........................................................... 12 实验六 输入输出程序设计 ............................................................................... 13
1
《汇编语言程序设计》课程实验教学一览表
序号 实验项目名称 学时 实验类型 1 汇编语言硬指令及Debug的使用 2 验证性 2 顺序与分支程序 6 验证性 3 循环与子程序 8 验证性 4 算术运算与代码转换程序 6 综合性 5 字符串的匹配与替换程序 6 综合性 6 输入输出程序 8 综合性 2
实验一 汇编源程序的上机调试操作基础训练
一.实验目的:
例:使用masm6.15过程,将解压的所有文件1. 掌握DEBUG 的基本命令及其功能 放到c:\\masm615 运行Cmd进入DOS环境 2. 学习数据传送和算术运算指令的用法
键入cd c:\\masm615 3.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。 开始编辑、编译、连接、运行的过程 二.实验内容: (一)DEBUG命令的使用
DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。 1、DEBUG程序的启动
在DOS提示符下,可键入命令:
C>DEBUG[d:][path][文件名][ 参数1][参数2]
其中文件名是被调试文件的名称,它须是执行文件(EXE),两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令。
在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存。用户可以通过DEBUG的命令对指定文件进行修改、显示和执行。如果没有文件名,则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用DEBUG的命令进行修改、显示和执行。 2、DEBUG的主要命令 (1) -A[地址]
该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。 (2)
反汇编命令U,有两种格式: 汇编命令A,格式为:
1)-U[地址]
该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。 2)-U范围
3
该命令对指定范围的内存单元进行反汇编,例如: -U 04BA:0100 0108或 –U 04BA:0100 L9 此二命令是等效的。 (3)
运行命令G,格式为:
-G [=地址1][地址2[地址3。。。]]
其中地址1规定了运行起始地址,后面的若干地址均为断点地址。 (4)
追踪命令T,有两种格式:
1)逐条指令追踪:
-T[=地址]
该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。
2)多条指令追踪:
-T[=地址][值]
该命令从指定地址起执行n条命令后停下来,n由[值]确定。 (5)
显示内存单元内容的命令D,格式为:
-D[地址]或-D[范围] (6)
修改内存单元内容的命令E,它有两种格式:
1)用给定的内容代替指定范围的单元内容:
-E地址 内容表
例如:-E 2000:0100 F3 “XYZ” 8D
其中F3,“X”“Y”“Z”和8D各占一个字节,用这五个字节代替原内存单元2000:0100到0104的内容,“X”“Y”“Z”将分别按它们的ASCII码值代入。 2)逐个单元相继地修改:
-E地址 例如:-E 100:
18E4:0100 89.78
此命令是将原100号单元的内容89改为78。78是程序员键入的。
检查和修改寄存器内容的命令R,它有三种方式:
(7)
1)显示CPU内部所有寄存器内容和标志位状态;格式为:-R
R命令显示中标志位状态的含义如下表所示:
4
标 志 名 溢出Overflow(是/否) 方向Direction(减量/增量) 中断Interrupt(允许/屏蔽) 符号Sign(负/正) 零Zero(是/否) 辅助进位Auxiliary Carry(是/否) 奇偶Parity(偶/奇) 进位Carry(是/否) 2)显示和修改某个指定寄存器内容,格式为:
-R 寄存器名 例如打入:-R AX 系统将响应如下:
AX FIF4 :
置 位 OV DN EI NG ZR AC PE CY 复 位 NV UP DI PL NZ NA PO NC 表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,打入修改
后内容,如:
-R BX BX 0369 :059F
则BX内容由0369改为059F
3)显示和修改标志位状态,命令格式为:
-RF
系统将给出响应,如 OV DN EI NG ZR AC PE CY-
这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。如 OV DN EI NG ZR AC PE CY-PONZDINV
命名命令N,格式为:
(8)
-N 文件名
此命令将文件名格式化在CS:5CH的文件控制块内,以便使用L或W命令把文件装入内
5
存进行调试或者存盘。 (9)
装入命令L,它有两种功能:
1)把磁盘上指定扇区的内容装入到内存指定地址起始的单元中,格式为: -L 地址 驱动器 扇区号 扇区数 2)装入指定文件,格式为: -L [地址]
此命令装入已在CS:5CH中格式化的文件控制块所指定的文件。 在用L命令前,BX和CX中应包含所读文件的字节数。 (10)写命令W,有两种格式:
1)把数据写入磁盘的指定扇区: -W 地址 驱动器 扇区号 扇区数 2)把数据写入指定文件中: -W [地址]
此命令把指定内存区域中的数据写入由CS:5CH处的FCB所规定的文件中。在
用W命令前,BX和CX中应包含要写入文件的字节数。 (11)退出DEBUG命令Q,该命令格式为
Q
它退出DEBUG程序,返回DOS,但该命令本身并不把在内存中的文件存盘,如需存
盘,应在执行Q命令前先执行写命令W。 (二)程序的调试与运行
编写程序比较两个字符串string1和string2所含的字符是否相同。若相同显示’match’,否则,显示’no match’ 三.实验要求:
实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。 四.调试步骤
1.编辑源程序,建立一个以后缀为 .ASM的文件.
2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。无错时继续第3步。
3.连接目标程序,产生可执行程序。
6
4.用DEBUG程序调试可执行程序,观察每次比较的结果。
datarea segment
string1 db 'move the cursor backward,' string2 db 'move the cursor forward.' ;
mess1 db 'match.','$' mess2 db 'no match!','$' datarea ends; prognam segment main proc far
assume cs:prognam,ds:datarea,es:datarea start: push ds sub ax,ax push ax
mov ax,datarea mov ds,ax mov es,ax lea si,string1 lea di,string2 cld
mov cx,25 repz cmpsb jz match lea dx,mess2 jmp short disp match:
lea dx,mess1 disp:
mov ah,09 int 21h ret
main endp prognam ends; end start
7
实验二 顺序与分支程序设计
一 、实验目的
1) 掌握顺序程序设计方法。
2) 掌握分支程序的结构及分支程序的设计,调试方法。 学习数据传送及算术和逻辑运算指令的用法。
3) 熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程。 二、实验内容
1) 有一字变量BUF1是以原码表示的有符号数,要求将其转换为反码和补码,分别存入BUF2和BUF3单元,并在屏幕上显示出来。
2)有两个两字节无符号数分别放在存储单元A、B起始的缓冲器中,求其和,结果放在A起始的缓冲区并在屏幕上显示。相加若有进位不存入存储单元。
3) 在BUF和BUF+1、BUF+2单元分别放有一个无符号字节型数,编程序将其中最大数存入MAX单元,并在屏幕上显示。
4) 从键盘上接收两个一位十六进制数X和Y,然后再输入一个A-D之间的一个字符,按下列要求计算。
a) 当输入字符为A,则计算X+Y,并以十六进制形式显示出来 b) 当输入字符为B,则计算|X-Y|,并以十六进制形式显示出来 c) 当输入字符为C,则计算X*Y,并以十六进制形式显示出来 d) 当输入字符为D,则计算X/Y,并以十六进制形式显示出来 三、实验设备
PC机一台
四、实验准备
1) 分析题目,将程序中的原始数据和最终结果的存取方法确定好。 2) 画出流程图。 3) 写出源程序。
4) 对程序中的结果进行分析,并准备好汇编程序及汇编调试的过程。 五、实验步骤 1) 输入源程序。
2) 汇编、连接程序,生成 .EXE文件,执行文件,检查结果。 六、实验报告的要求
8
1) 列出源程序,说明程序的基本结构,包括程序中各部分的功能。 2) 说明程序中各部分所用的算法。 3)说明主要符号和所用到寄存器的功能。
4) 总结为什么在设计分支程序时必须解决三个问题:判断、转向和定标号。 5) 说明标志位CF、SF和OF的意义。 6) 上机调试过程中遇到的问题是如何解决的。 7) 对调试源程序的结果进行分析。
实验三 循环与子程序程序设计
一、实验目的
9
正在阅读:
汇编语言实验指导书05-04
建筑设计实习工作总结【通用5篇】03-28
全国土地利用总体规划纲要(2006—2020年) - 图文07-05
故乡之晨作文800字06-17
党员发展大会程序02-19
2016-2022年中国卡箍行业深度分析与投资前景预测报告 - 图文03-26
知识产权法案例10-06
实验指导书 3-6章(1)04-26
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 指导书
- 汇编语言
- 实验
- 《实用法律基础》形成性考核作业册参考答案
- 高等学校毕业生登记表(模板)
- 动铁芯式弧焊变压器的设计讲解
- 气动钻床
- 《中国古代文学》教学大纲 三
- 职业健康安全管理方案
- 4.炔烃和二烯烃
- 电力系统继电保护实验指导书
- ABAP+函数总结+常用函数解释
- 焊接钢管相关实用知识
- 四川省委党校2012年在职研究生入学考试复习资料-马克思主义哲学
- 高速公路建设管理办法
- 邵寨主立井井底连接处及绕道一号交岔点施工作业规程
- GST200主机说明书
- 自学考试行政管理专业独立本科段毕业论文仅供参考 抄袭必究!
- 贵州利生香中药科技公司可研报告
- 2017年医院感染知识考试试题及答案
- 析EPC总承包模式的项目管理要点
- 社交礼仪
- 全县城乡居民社会养老保险动员大会主持稿