一.实验目的与内容
目的:1)进一步熟悉汇编语言程序的编辑、宏汇编、链接、运行基本概念;2)熟练掌握动态调试程序TDDEBUG的常用命令或窗口功能,学会用TDDEBUG调试程序,修改数据和寄存器等环境;3)熟悉掌握汇编语言程序的典型数据结构设计、典型程序流控制方法,了解DOSBIOS功能调用的基本方法。
内容:(1)编写程序实现如下功能:①从键盘输入任意字符串后,存入自定义存储单元,判断处理后将字符串中小写字母转换为大写字母(其他字符不变)并按原顺序将这些字符在屏幕上显示出来。②从键盘输入在065535之间的十进制数,将其转换为16进制数并在屏幕中显示出来,要求判断输入字符串是否为在065535之间的十进制数。(2)复习TD各种操作,并用DEBUG调试程序,学会基本命令操作,并通过单步、设置断点等方法观察中间结果,完成正常运行。命令行方式下直接键入debugmyfileexe回车(myfile为待调试可执行程序),进入调试方式(显示),键入H回车显示全部命令、格式和功能。常用命令有:U(反汇编)、A(汇编输入指令程序)、R(寄存器显示修改)、I(端口输入)、O端口输出、D(显示数据)、E(修改数据)。除资源修改管理功能外,重点应用T(单步)、T
(执行
步)、P(过程指令)、G××××(从当前CSIP执行到断点××××)或G××××1××××2(从××××1执行到××××2断点)调试实验程序。程序流程图:1
2
0
f三方案实现与测试
1)实验一的基本实验内容和要求①编写代码完成功能要求,文件格式为asm文件(如文件名为addasm),将文件放入带汇编工具的文件夹中,即含有汇编工具(MASMTASMEXE)和链接工具(LINKTLINKEXE)的文件夹。②全屏启动命令行模式,进入上述文件夹输入:tasmaddasm或masmadd回车后编译产生addobj文件再输入:tli
kaddobj或li
kadd回车后链接产生addexe文件如果程序有错误,编译时会产生错误提示,指出错误的位置和错误类型及错误码,改正错误后再重新编译链接。③启动TD并载入addexe,在代码段可以看到程序指令,部分符号已被实际地址或数值替换表示。④直接运行运用TD功能键F9,运行结果如下图所示
1
f由图可以看出,在数据区13B3:0000到13B3:0005分别存放的是data1,data2两个加数和data3和的数据,且运行结果正确,在运行结束之后,寄存器器中的值恢复到随机值。⑤单步运行:使用TD功能键F7当单步运行完movcx0002这条指令后,程序的运行结果如下图所示
⑥断点运行,比如在指令movsi0004alzhetiao指令上设置断点后,程序r