汇编语言源程序的编辑与调试过程.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言源程序的编辑与调试过程
1.怎样在TD环境下载入被调试程序?
答:方法1:转到TD.EXE所在目录,在DOS提示符下键入以下命令:
C:\ASM>TD↙
进入TD后,按Alt-F键打开File菜单,选择Open,在文件对话框中输入要调试的程序名,按
回车。
方法2:转到TD.EXE所在目录,在DOS提示符下键入以下命令(假定要调试的程序名为HELLO.EXE):
C:\ASM>TD HELLO.EXE↙
方法3:在Windows操作系统中,打开TD.EXE所在目录,把要调试的程序图标拖放到TD 的
图标上。
2.在TD环境下如何编辑汇编指令?
答:
(1)用Tab键选择代码区为当前区域;
(2)用方向键把光标移到期望的地址处,如果是输入一个新的程序段,建议把光标移到CS:0100H处;
(3)打开指令编辑窗口,有两种方法:
一是在光标处直接键入汇编指令,在输入汇编指令的同时屏幕上就会自动弹出指令的临时编辑窗口。
二是用Alt-F10键激活代码区局部菜单,选择其中的汇编命令,屏幕上也会自动弹出指令
的临时编辑窗口。
(4)在临时编辑窗口中输入/编辑指令,每输入完一条指令,按回车,输入的指令即可出现在
光标处(替换掉原来的指令),同时光标自动下移一行,以便输入下一条指令。
3.在TD环境下如何查看/修改数据段的数据?
答:
(1)用Tab键选择数据区为当前区域;
(2)使用局部菜单中的“Goto”命令并结合使用方向键把光标移到期望的地址单元处(注意数
据区的光标是一个下划线),数据区就从该地址处显示内存单元的内容。
(3)若要修改该地址处的内容,则需打开数据编辑窗口。有两种方法:
一是在光标处直接键输入数据,在输入数据的同时屏幕上就会自动弹出数据编辑窗口。
二是用Alt-F10键激活数据区局部菜单,选择其中的“Change”命令,屏幕上也会弹出数据编
辑窗口。
(4)在数据编辑窗口中输入所需的数据,输入完后,按回车,输入的数据就会替代光标处的原
始数据。
4.在TD环境下如何修改寄存器内容?
答:
(1)用Tab键选择寄存器区为当前区域;
(2)用方向键把光标移到要修改的寄存器上;
(3)打开编辑输入窗口。有两种方法:
一是在光标处直接键入所需的值,在键入的同时屏幕上就会自动弹出编辑输入窗口。
二是用Alt-F10键激活寄存器区局部菜单,选择其中的“Change”命令,屏幕上也会弹出编辑
输入窗口。
(4)在编辑输入框中键入所需的值,然后回车,这个新的值就会取代原来该寄存器的内容。5.在TD环境下修改某个标志位内容,怎样操作?
答:
(1)用Tab键选择标志区为当前区域;
(2)用方向键把光标移到要修改的标志位上;
(3)按回车键或空格键即可使标志位的值在0、1之间变化。
6.指定程序的起始执行地址怎样操作?
答:方法一:
(1)用Tab键选择代码区为当前区域;
(2)用Alt-F10键激活代码区局部菜单,选择局部菜单中的“New CS:IP”命令。
方法二:
(1)用Tab键选择寄存器区为当前区域;
(2)用方向键把光标移到CS寄存器上,输入程序起始地址的段地址。
(3)用方向键把光标移到IP寄存器上,输入程序起始地址的偏移量。
7.在TD环境下怎样单步跟踪程序的执行?
答:(1)用上述第6条中的方法首先指定程序的起始执行地址;
(2)按F7或F8键,每次将只执行一条指令。
注:若当前执行的指令是CALL指令,则F7将跟踪进入被调用的子程序,而F8则把CALL 指令
及其调用的子程序当作一条完整的指令,要执行完子程序才停在CALL指令的下一条指令上。
8.在TD环境中,若只执行程序的某一部分指令,怎样处理?
答:方法一:用设置断点的方法。
(1)用上述第6条中的方法首先指定程序的起始执行地址;
(2)用方向键把光标移到要执行的程序段的最后一条指令的下一条指令的起始处(注意,不能
移到最后一条指令上,否则最后一条指令将不会被执行),按F2设置断点。也可按Alt-F2键,
然后在弹出的输入窗口中输入断点地址。
(3)按F9键执行,程序将会停在所设置的断点处。
方法二:用“运行程序到光标处”的方法。
(1)用上述第6条中的方法首先指定程序的起始执行地址;
(2)用方向键把光标移到要执行的程序段的最后一条指令的下一条指令上(注意,同方法一)。
(3)按F4键执行程序,程序将会执行到光标处停下。
方法三:用“执行到指定位置”的方法。
(1)用上述第6条中的方法首先指定程序的起始执行地址;
(2)按Alt-F9,在弹出的输入窗口中输入要停止的地址(即要在哪条指令起始处暂停,就输
入哪条指令的地址),按回车,程序将会执行到指定位置处暂停。
9.被调试程序的显示输出看不见怎么办?
答:在TD环境下按Alt-F5键。
10.用MASM编译时产生警告错误会影响结果吗?
答:会。警告错误是指仍然生成目标代码,并非是指目标代码是正确的。
11.在WIN2000和WINDOWS XP环境中可以使用命令行方式的EDIT编辑器和调试程序DEBUG吗?为什么点击该程序时会出现:Incorrect DOS version 的错误信息?
答:EDIT和DEBUG 属于系统命令程序文件,运行前要核对版本号,WIN98 / 2000 /XP有各自
配套的系统命令文件,使用上述两个软件时必须注意版本匹配。WIN98的命令文件放置在WINDOWS (或WIN98)文件夹下的COMMAND 子文件夹中;WIN2000/XP的系统命令文件路
径一般为:WINDOWS \SYSTEM32 或WINNT\SYSTEM32。
12.若使用DEBUG 调试运行程序,如何装入程序?
答:在命令行界面输入:DEBUG ABX . EXE 或双击DEBUG图标,之后在DEBUG 窗口中输
入:n ABC . EXE / L100 两条命令;运行程序即被载入。
13.在汇编语言源程序中怎样加入中文注释?
答:用记事本或C++编辑器编辑源程序。但须注意中英文切换,源程序中必须使用英文标点符
号。
14.用记事本工具编辑源程序,主名为123_ABCDEF . ASM,为什么编译程序MASM报告找
不到该文件?
答:MASM遵循MS-DOS的命名原则,即文件主名最长为8个字符,上述文件主名超过了规定。
15.用记事本工具编辑源程序,取名为123 . ASM,为什么编译程序MASM报告找不到该文
件?
答:出现此种情况,往往123 . ASM并非文件名的全部,其最后的扩展名仍是 .TXT,解决的办
法是:点击“我的电脑”或“资源管理器”在“查看”或“工具”菜单中选择“文件夹选项”,选择“查看”选项卡,将其中的“隐藏已知文件类型的扩展名”选项取消,可显示全部文件名,
再为文件重新命名。
16.已在程序中设有如下定义:STACK SEGMENT / DB 200 DUP(0) / STACK ENDS / 为
什么LINK 仍然警告:no stack segment ?
答:将段定义修改为:STACK SEGMENT STACK ;后面的STACK项是组合类型,即不再
出现警告信息。
17.使用DEBUG调试程序,如何设置断点?
答:例如,在DEBUG命令窗口中输入:G=100,0150;表示从代码段偏移地址100H执行到150H