^;本演示程序用法: ^;(1)先tr demo1.dat进入tr程序 ^;(2)在TR中用命令DO DEMO1.TXT ^ ^ ^delay c0 ^u 100 ^msg -2 -2 ;center x,centre y ^欢迎使用解释型跟踪调试软件----TR ^ $ ^ 刘涛涛 ^$ ^msg -2 -2 ^以下向您演示TR的强大功能 ^具体使用方法请看说明书(README.TXT) ^ $ ^ 1、TR基本介绍 ^ 2、TR基本操作 ^ $ ^本演示也是TR的功能之一! ^$ ^msg -2 -2 ^TR是一个跟踪调试软件,它类似于DEBUG,TD,CODEVIEW和SOFT-ICE, ^与它们又有本质的不同。因为这些软件无非是利用单步中断(int1) ^陷井中断(int3),甚至更高级的,利用386调试寄存器对应用软件 ^进行跟踪调试,它们只适合调试那些规规矩矩的、愿意被跟踪调试的 ^程序。如果应用程序不予合作,便不能跟踪。TR则不同,TR要跟踪所 ^有CPU能处理的程序,甚至TR能嵌套跟踪另一个TR。因为TR是 ^ $ ^ 新一代解释型跟踪调试软件 ^ $ ^$ ^msg -2 -2 ^ 解释型跟踪调试软件 ^TR对应用程序的代码是解释执行的。TR就象是一个CPU,能读懂每一 ^句程序代码并正确解释执行,不需要使用INT1,INT3,不需要使用 ^386调试寄存器DR0-DR7,不需要进入保护模式(是不会)。理论上, ^TR永远不会被应用程序发现,永远不会有跟踪不下去的程序。因为 ^所有的程序都要交给CPU去解释执行,只要CPU认识的指令,TR也要 ^认识,TR会想象CPU处在这种状态会怎么作,那我也那么去作(如果 ^你发现TR作错了,那是TR还尚待完善)。 ^$ ^msg -2 -2 ^ 2、TR基本操作 ^ $ ^TR的屏幕由寄存器区、内存区、代码区、命令区、状态行组成, ^$ ^msg -1 2 ^屏幕的最上端是寄存器区。 ^缺省为16位方式显示,可以用R32命令改为32位方式。 ^$ R32 ^msg -1 3 ^用R命令置寄存器值,如: ^ R AX 1234 ^ R ebx 12321456 ^ R ch 87 ^ R dl ah ^ R ip ip+1 ^ R fl z ^对标志寄存器用ODISZAPCT ^最近改变过的寄存器以不同颜色表示。 ^$ R ax 1234 R ebx 12321456 R ch 87 R dl ah R fl z ^msg -1 5 ^寄存器区下面是内存区,以十六进制和ASCII码方式显示内存内容。 ^用WD lines改变内存区行数。 ^$ WD 6 ^msg -1 5+4 ^用D命令改变内存显示地址,如 ^ D 200 ^ D cs:ip ^ D * ^ D 1234:5678>myfile ^ D cs:0lffff>file ^ D >file ^用E命令修改内存内容。 ^$ ^WD 2 ^msg -1 6 ^屏幕中央是代码区 ^显示程序的汇编代码。 ^ $ ^<-----支持386代码 ^ $ ^下面用A命令输入一组代码。 ^$ A 100 begin: jmp 104 xor ax,ax start: mov bx,[0] mov ah,9 int 21 int 20 $ ^msg -1 5 ^<--------这是输入的结果。 ^TR允许给程序加标号和注解! ^ $ ^跟踪执行的主要命令有: ^ T或: 执行一句代码 ^ P或:执行一个过程 ^ G: 执行 ^ PRET: 执行直到RET ^ $ ^现在用T命令执行一步。 ^$ ^R ax ax ;I donnot know why,but this line is needed T $ ^msg -1 2 ^数据提示! ^ | ^ | ^ V ^$ T T ^msg -1 A ^<----中断提示! ^$ ^msg ^用U命令查看指定位置的代码, ^后加‘>’号把结果输出到文 ^件,如命令 ^ U 100,120>tem.txt ^把cs:100到120的代码输出到 ^文件tem.txt ^$ U 100,120 >tem.txt ^msg ^下面可以用VIEW命令查看一下输出结果。 ^$ VIEW tem.txt ^msg ^按任意键返回。 ^$ ^REDRAW ^delay 0 $