北方工业大学计算机专业汇编语言实验一详细报告(含代码).doc
文本预览下载声明
《汇编语言程序设计》报告书
?
??
学生姓名: 学 院: 信息工程学院? 专 业: 计算机科学与技术? 班 级: 指导教师: 杜春来
2012年10月26日
目 录
一.实验内容 1
二.实验模块设计(必须有流程图设计) 2
三.实验模块源码(必须有注释) 3
四.实验遇到的问题与解决方案 4
五.心得体会 4
一.实验内容
1、DEBUG程序的启动:
DEBUG的命令格式:[drive:][path] DEBUG [d:][p][filename][.ext][param...]
drive: 是指定DEBUG文件的磁盘驱动器标识符,若未指定,DOS将使用当前默认磁盘驱动器。
path: 是DOS查找DEBUG文件的一个子目录串表示的路径。若未指定,DOS将使用当前工作目录。
d: 是DEBUG将要调试的文件所在的磁盘驱动器。
p: 是查找DEBUG将要调试的文件所需的子目录路径,若未指定,DOS使用当前目录。
filename[.ext]是DEBUG将要调试的文件名;param是将被调试的程序(或文件)的命令行参数。
段寄存器CS、DS、ES和SS置为DEBUG程序后的第一个段。
指令指针寄存器IP置为100H(程序段前缀PSP后的第一个语句)。
堆栈指针SP置为段末或COMMAND.COM暂驻部分的结束地址(其中较小的那个地址)。
其余通用寄存器均置为0,标志寄存器置为下述状态:NV UP EI PL NE NA PO NC
段寄存器DS和ES指向PSP。寄存器BX和CX含有程序长度。
注意:
? 字母不分大小写;
? 只使用16进制数,不加H;
? 分割符只在两个数值之间是必须的,命令和参数之间可有可无 ;
? 键入回车键执行命令,Ctrl+Break或Ctrl+C中止命令的执行 ;
? 如命令不符合DEBUG的规则,则提示“error”并使用“^”指示错误位置。
2、DEBUG的主要命令:
(1)汇编命令A,格式为:-A[地址]:允许输入汇编语句。
(2)反汇编命令U,有两种格式:-U[地址],该命令从指定地址开始,反汇编32个字节;-U范围:
该命令对指定范围的内存单元进行反汇编,
(3)运行命令G,格式为:-G [=地址1][地址2[地址3。。。]]地址1规定运行起始地址,后面为断点地址。
(4)追踪命令T,有两种格式:-T[=地址]从指定地址起执行一条指令,显示寄存器内容和状态;-T[=地址][值]
该命令从指定地址起执行n条命令后停下来,n由[值]确定。
(5)显示内存单元内容的命令D,格式为:-D[地址]或-D[范围]
(6)修改内存单元内容的命令E,它有两种格式:-E地址 内容表;-E地址:逐个单元相继地修改。
(7)检查和修改寄存器内容的命令R,它有三种方式:-R显示CPU内部所有寄存器内容和标志位状态;
-R 寄存器名:显示和修改某个指定寄存器内容;-RF显示和修改标志位状态系统将给出响应。
(8)命名命令N,格式为:-N 文件名:此命令将文件名格式化在CS:5CH的文件控制块内。
(9)装入命令L,它有两种功能:-L 地址 驱动器 扇区号 扇区数:把磁盘上指定扇区的内容装入到内存指定地址起始的单元中;-L [地址]:此命令装入已在CS:5CH中格式化的文件控制块所指定的文件。
(10)写命令W,有两种格式:-W 地址 驱动器 扇区号 扇区数:把数据写入磁盘的指定扇区;-W [地址]此命令把指定内存区域中的数据写入由CS:5CH处的FCB所规定的文件中。
(11)退出DEBUG命令Q,该命令格式为Q:它退出DEBUG程序,返回DOS,但该命令本身并不把在内存中的文件存盘,如需存盘,应在执行Q命令前先执行写命令W。
3、实验题目:
实验1:设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。
实验2:设DS=当前段地址,BX=0300H,SI=0002H;请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么。
程序清单如下:
MOV AX,BX
MOV AX,0304H
MOV AX,[0304H]
MOV AX,[BX]
MOV AX,0001[BX]
MOV AX,[BX][SI]
MOV AX,0001[BX][SI]
H
显示全部