云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 汇编语言程序设计实验指导书

汇编语言程序设计实验指导书

  • 62 次阅读
  • 3 次下载
  • 2025/5/26 13:02:26

《汇编语言》实验指导书 后是命令的操作参数,操作参数与操作参数之间,用空格或逗号隔开,操作参数与命令符之间用空

格隔开,命令的结束符是回车键 Enter。命令及参数的输入可以是大小写的结合。Ctrl+Break键可中止命令的执行。Ctrl+Num Lock键可暂停屏幕卷动,按任一键继续。所用数均为十六进制数,且不必写H。

* 1. 汇编命令A

格式:A [[<段寄存器名>/<段地址>:] <段内偏移>] 上式等价于:

(1) A <段寄存器名>:<段内偏移> (2) A <段地址>:<段内偏移> (3) A <段内偏移> (4) A

功能:键入该命令后显示段地址和段内偏移并等待用户从键盘逐条键入汇编命令,逐条汇编成代码指令,顺序存放到段地址和段内偏移所指定的内存区域,直到显示下一地址时用户直接键入回车键返回到提示符“-”。

注: 其中(1)用指定段寄存器的内容作段地址,(3)用CS的内容作段地址,(4)以CS:100作地址。以后命令中提及的各种‘地址’形式,均指(1)、(2)、(3)中A后的地址形式。 2. 比较命令C

格式: C <源地址范围>,<目标地址>

其中<范围>是由<起始地址> <终止地址>或者是由<起始地址> L <长度>指出的一片连续单元。 功能:从<源地址范围>的起始地址单元起逐个与目标起始地址以后的单元顺序比较单元的内容,直至源终止地址为止。遇有不一致时,以<源地址> <源内容> <目标内容> <目标地址>的形式显示失配单元及内容。

* 3. 显示内存命令D

格式: D [<地址>/<范围>] 上式等价于: (1) D <地址> (2) D <范围> (3) D

功能:以两种形式显示指定范围的内存内容。一种形式为十六进制内容,一种形式为以相应字节的内容作为ASCII码的字符,对不可见字符以‘.’代替。

注: 其中(1)以CS为段寄存器。(3)显示CS:100起始的一片内容。 * 4. 修改内存命令E

格式: E <地址> [<单元内容表>] 上式等价于: (1) E <地址>

(2) E <地址> <单元内容表>

其中<单元内容表>是以逗号分隔的十六进制数,或用’或”括起来的字符串,或者是二者的组合。

功能: (1)不断显示地址,可连续键入修改内容,直至新地址出现后键入回车Enter为止。(2)将<单元内容表>逐一写入由<地址>开始的一片单元。 5. 填充内存命令F

格式: F <范围> <单元内容表>

功能: 将单元内容表中的值逐个填入指定范围,单元内容表中内容用完后重复使用。 例如: -F 5BC:200 L 10 B2,‘XYZ’,3C * 6. 执行命令G

格式: G [=<地址>[,<断点>]] 上式等价于: (1) G

(2) G=<地址>

(3) G=<地址>,<断点> 功能: 执行内存中的指令序列

-

4

《汇编语言》实验指导书 注: (1)从CS:IP所指处开始执行

(2)从指定地址开始执行

(3)从指定地址开始执行,到断点自动停止。 * 7. 读盘命令L

格式: L <地址> <驱动器号> <起始逻辑扇区> <所读扇区个数n>

其中<地址>的缺省值为CS:100。逻辑扇区可由物理扇区号换算得到,以双面双密度盘为例:物理扇区是按0面0道1区,0面0道2区,??,0面0道9区,0面1道1区,??,0面39道9区,1面0道1区,??,1面39道9区排列。而逻辑扇区与物理扇区号的对应关系为物理扇区0面0道1扇区至9扇区,逻辑扇区号为0—8;物理扇区1面0道1扇区至9扇区,逻辑扇区号为9—11H;物理扇区0面1道1扇区至9扇区,逻辑扇区号为12—1AH;??。这样每道先0面后1面一直排下去。

其中<驱动器号>为0、1或2,0表示A驱,1表示B驱,2表示硬盘。

功能: 将<驱动器号>指定的盘上,从<起始逻辑扇区>起,共n个逻辑扇区上的所有字节顺序读入指定内存地址开始的一片连续单元。当L后的参数缺省时,必须在L之前由N命令指定(或进入DEBUG时一并指出)所读驱动器文件名。此时L执行后将该文件装入内存。 例如:-N EXAMPLE -L

将当前驱动器上的EXAMPLE文件装入CS:100起始的一片内存单元。 * 8. 命名待读/写文件命令N 格式: N <文件名说明>

功能: 为L/W命令指定待装入/写盘文件 注: 其它形式参考DOS手册 9. 端口输出命令O

格式: O <端口地址> <字节>

功能:将该<字节>从指定<端口地址>输出。 例如:-O 2F 4F 将4FH从端口2FH输出

* 10. 结束DEBUG返回DOS命令Q 格式:Q

功能:返回DOS提示符下 * 11. 显示修改寄存器命令R 格式: R [<寄存器名>] 上式等价于: (1) R

(2) R <寄存器名> 功能: (1)显示当前所有寄存器内容,状态标志及将要执行的下一指令的地址,代码及汇编语句形式。其中对状态标志FLAG以每位的形式显示,详见表1-1。

表1-1 状态标志显示形式 标志位 状 态 显 示 溢出OF 有/无 OV/NV 方向DF 减/增 DN/UP 中断IF 开/关 EI/DI 符号SF 负/正 NG/PL 零 ZF 零/非 ZR/NZ 辅助AF 有/无 AC/NA 奇偶PF 偶/奇 PE/PO 进位CF 有/无 CY/NC

(2)显示指定寄存器内容 例如:-R AX -R F * 12. 跟踪命令T

格式:T [=<地址>] [<条数>]

功能:执行由指定地址起始的、由<条数>指定的若干条命令。其中<地址>的缺省值是当前IP值,<条数>的缺省值是一条。

例如:-T 执行当前指令并显示状态

-

5

《汇编语言》实验指导书 -T 10 从当前指令始执行10H条指令

* 13. 反汇编命令U

格式:U [<地址>/<地址范围>] 上式等价于: (1) U <地址> (2) U <地址范围> (3) U

功能:将指定范围内的代码以汇编语句形式显示,同时显示地址及代码。注意,反汇编时一定确认指令的起始地址后再作,否则将得不到正确结果。地址及范围的缺省值是上次U指令后下一地址的值。这样可以连续反汇编。 * 14. 写盘命令W

格式:W <地址> <盘号> <起始逻辑扇区> <所写逻辑扇区数n>

功能:与L命令不同的地方是将内存从<地址>起始的一片单元内容写入指定扇区。只有W而没有参数时,与N命令配合使用将文件写盘。

注:要求读者对其中打\的DEBUG命令必须能熟练使用。

三、使用DEBUG调试和运行可执行文件

用户程序经过编辑、汇编、连接后得到一个可执行文件(.EXE),这时借助于调试程序DEBUG对用户程序进行调试,查看程序是否能完成预定功能。对于初学者,如何选用DEBUG中各命令,有效地调试与运行程序,需要一个学习过程。在初次使用DEBUG时,可参照下列步骤进行。 1.调用DEBUG,装入用户程序

可以在调用DEBUG是直接装入用户程序可执行文件,也可以在进入DEBUG环境后使用N命令和L命令装入用户程序可执行文件。无论用哪种方法,装入用户程序可执行文件时,一定要指定文件全名(即文件名和扩展名)。 2.观察寄存器初始状态

程序装入内存后,用R命令查看寄存器内容。从各段寄存器现在的内容,便能了解用户程序各逻辑段(代码段,堆栈段等)在内存的分布及其段基值。R命令亦显示了各通用寄存器和标志寄存器的初始值,显示的第三行就是即将执行的第一条指令。 3.以单步工作方式开始运行程序

首先用T命令顺序执行用户程序的前几条指令,直到段寄存器DS和/或ES已预置为用户的数据段。在用T命令执行程序时,每执行一条指令,显示指令执行后寄存器的变化情况,以便用户查看指令执行结果。

4.观察用户程序数据段初始内容

在第3步执行后DS和/或ES已指向用户程序的数据段和附加段,这时用D命令可查看用户程序的原始数据。

5.继续以单步工作方式运行程序

对于初学者,一般编写的程序比较短,用T命令逐条执行指令,可清楚地了解程序的执行过程:现在执行的是什么指令,执行后的结果在哪里(寄存器,存储单元)?所得结果是否正确?等等。在逐次使用T命令时,若有需要,可选用D命令了解某些内存单元的变化情况。 用T命令逐条执行程序时,如遇上用户程序中的软中断指令INT(如INT 21H),这时,通常不要用单步工作方式执行INT指令。因为系统提供的软中断指令INT是以中断处理子程序形式实现功能调用,且这种处理子程序常常是较长的。若用T命令去执行INT指令,那么将跳转到相应的功能调用于程序中,要退出该子程序需要化费较多时间。如果既要执行INT指令,又要跳过这段功能调用子程序,则应使用连续工作方式(G命令),且设置断点,其断点应为INT指令的下一条指令。例如要以单步工作方式执行下面一段程序: 10B0:0022 MOV DX,0010 10B0:0026 MOV AH,09 10B0:0028 INT 21

10B0:002A MOV CX,00

当用T命令完成“MOV AH,09”指令后,应使用G命令: -G 002A

-

6

《汇编语言》实验指导书 这样,以连续工作方式实现功能调用后,即暂停在偏移量为002A的“MOV CX,00”指令处(未

执行),如同用单步工作方式完成INT指令的执行一样。 6.连续工作方式运行程序

在用单步工作方式运行程序后,可再用连续工作方式从头开始运行程序,查看运行结果。在用G命令时,注意指定运行程序的起始地址。若G命令中未指定起始地址,就隐含为从当前CS:IP指向的指令开始。 7.修改程序和数据

经过上面几步后,若发现程序有错,则需要适当进行修改。这时,如果仅需作个别修改,可在DEBUG状态下,使用A命令。这种修改仅仅是临时修改内存中的可执行文件,未涉及源程序。当确认修改正确后,应返回至编辑程序,修改源程序,然后再汇编、连接。

为了确认用户程序的正确性,常常需用几组不同的原始数据去运行程序,查看是否都能获得正确结果。这时,可用E命令在用户程序的数据段和附加段中修改原始数据,然后再用T命令或G命令运行程序,查看运行结果,直到各组数据都能获得正确结果为止。 8.运用断点调试程序

如果已确认程序是正确的,在连续工作方式下,可快速地运行程序;如果已知程序运行结果不正确,用G命令运行程序,中途不停,很难查找错误。改用T命令,虽然可以随意暂停程序的执行,但是运行速度慢,如果运用断点,可快速查找错误。这里的“断点”是程序连续运行时要求暂停的指令位置(地址),用要求暂停的一条指令首字节地址表示。当程序连续运行到这断点地址时,程序就暂停,并显示现在各寄存器内容和下面将要执行的指令(即断点处指令)。为了准确设置断点,可用反汇编命令U 察看源程序。运用断点,可以很快地查找出错误发生在哪一个程序段内,缩小查找错误的范围。然后在预计出错的范围内,再用T命令仔细观察程序运行情况,确定出错原因和位置,完成程序的调试。

-

7

搜索更多关于: 汇编语言程序设计实验指导书 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

《汇编语言》实验指导书 后是命令的操作参数,操作参数与操作参数之间,用空格或逗号隔开,操作参数与命令符之间用空格隔开,命令的结束符是回车键 Enter。命令及参数的输入可以是大小写的结合。Ctrl+Break键可中止命令的执行。Ctrl+Num Lock键可暂停屏幕卷动,按任一键继续。所用数均为十六进制数,且不必写H。 * 1. 汇编命令A 格式:A [[/:] ] 上式等价于: (1) A : (2) A : (3) A (4) A 功能:键入该命令后显示段地址和段内偏移并等待用户从键盘逐条键入汇编命令,逐条汇编成代码指令,顺序存放到段地址和段内偏移所指定的内存区域,直到显示

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com