汇编语言实验指导书
邹先霞
暨南大学计算机系
二○一三年三月
目 录
实验一 汇编源程序的上机调试操作基础训练 ................................................. 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