标题 / 作者 / 正文
软件操作与技巧
阅读文章
Area :《电脑报》1994年合订
Subj :利用DEBUG进行系统的单步实时跟踪
Date :1994-11-04

大家都知道,状态寄存器中有一位是陷井标志位TF,当TF被置位时,如果进行指令跟踪,就产生单步中断。我们利用这一特点,在软件执行程序的任何时候,只要使TF标志位置位即可使程序进入单步监视状态,使应用程序被有效地进行跟踪。
本文给出修改中断调用INTO9H的方法判断DOS通讯区0040:0017H(左SHIFT键+右SHIFT键+CTRL键同时按下),如果是则将TF标志单元置1进入单步监视状态,否则进行正常工作处理。本程序采用COM格式文件编制,只要在用DEBUG调试应用程序前运行一下该程序,在需要时同时按下左SHIFT键+右SHIFT键+CTRL键,即可实现在DEBUG状态下连续单步监视应用软件。
;TINT.ASM程序清单:
code segment
org 100h
assume sc:code,ds:code
begin: jmp start
int9 dd 0000h
int9h proc far
pushf ; 完成原来中断调用功能
call dword ptr cs:int9
push ax; 保存当前寄存器状态
push bx
push cx
push dx
push di
push si
push ds
push es
cli
mov ax,0040h
mov ds,ax
mov bx,0017h
mov al,[bx]
and al,07h
cmp al,07h
jne int9end
pushf
pop ax
or ax,0100h ;TF标志位置位
push ax
popf
int9end:sti
pop es
pop ds
pop si
pop di
pop dx
pop cx
pop bx
pop ax
iret
int9hendp
start:push cs
pop ds
mov ax,3509h ;修改中断INT 09H
int 21h
mov word ptr int9[0],bx
mov word ptr int9[2],es
mov ax,2509h
mov dx,offset int9h
int 21h
mov dx,offset start
add dx,000fh
mov cl,04h
shr dx,cl
mov ax,3100h
int 21h
code ends
end begin

F1Help ESC返回 PgUp上翻 PgDn下翻 上篇 下篇 software-archive.tifan.la 关于