微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题利用DEBUG进行系统的单步实时跟踪
栏目软件操作与技巧
发布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