^;本演示程序用法: ^;(1)先进入tr程序 ^;(2)在TR中用命令DO DEMO3.TXT ^ ^ ^delay c0 ^MSG -2 -2 ^下面介绍TR提出的新的断点 ^$ ^MSG -2 -2 ^ 一、BP conditions ^如果指定条件满足,则暂停,如 ^ bp ax=1234 ;当ax等于1234H时停 ^ bp ax=0 bx=0 cx=0 ;当AX,BX,CX同时为0时停 ^ bp ah=3 dx=80 ^可同时设定3个条件,只有同时满足时,才有效。 ^条件判断可用=,!=,>,<,>=,<=。第一个参量用寄存器,可以用任何8位16位 ^寄存器或段寄存器,第二个参量用立即数。 ^$ ^MSG -2 -2 ^ 二、BPREG REG|SEG [conditions] ^如果指定寄存器改变,并且条件满足,则暂停。 ^特别推荐使用bpreg cs AX=0 DX=0 ES=#,一般可用来快速查找加外壳程序 ^真正的开始。 ^$ ^MSG -2 -2 ^ 三、BPXB bytes [conditions] ^如果执行到批定的机器码,则暂停。如,因NOP的机器码是90H,所以 ^ BPXB 90 ^在运行过程中遇到NOP会停下。又如,MOV AX,????的机器码为B8????,可用 ^ BPXB b8 ^其它: ^ BPXB cd ;所有中断 ^ BPXB 33 C0 ;XOR AX,AX ^指定机器码长度不要超过8个字节。还可以加条件,如 ^ BPXB cd 13 ah=3 ^$ ^MSG -2 -2 ^ 三、BPINT intnum [conditions] ^ $ ^中断断点。如果执行指定中断,则暂停。如: ^ BPINT 21 AH=30 ^$ ^MSG -2 -2 ^特别重要的是,如果一个断点只用一次,把设断点命令前面的'BP'改为'GO' ^便可直接执行。有了这个一次性断点,一般根本不需要专门设置断点。 ^$ ^MSG -2 -2 ^以上这些新增的断点,千百倍地提高了跟踪的效率, ^ $ ^再也不需要苦苦地跟踪了! ^$ ^delay 0