zoukankan      html  css  js  c++  java
  • 操作系统编写之挖坑设断点

    有时我们用DOS来调试自己写的操作系统,很难确切获知操作系统的入口地址,所以设置断点也比较麻烦。

    有一个解决方法就是在一个已知的地址设置断点,然后让指令跑到那个已知的地址再跑回原来的地方,这样就可以实现断点的设置了,这个就叫挖坑设置断点。

    在DOS中,物理地址为0x200的内存是没有被使用的,所以可以在此处挖一个坑,让程序跑进来再跑出去。

     1  [SECTION .s16]
    2 [BITS 16]
    3 Hoot: ;坑的入口点
    4 mov ax,01h
    5 mov ax,02h
    6 GoBack:
    7 jmp 0:Back ;跳出坑外,执行正常的程序流
    8 HootLen equ $ - Hoot
    9
    10 LABEL_BEGIN: ;入口点
    11
    12 ;设置坑
    13 mov ax,cs
    14 mov [GoBack + 3],ax
    15 mov ds,ax
    16 mov si,Hoot
    17 mov ax,0
    18 mov es,ax
    19 mov di,200h
    20 mov cx,HootLen
    21 rep movsb
    22 jmp 0:200h ;跑到坑里面
    23
    24 Back: ; 跳出坑以后,从这里开始执行
    25 mov ax,cs
    26 mov ds,ax
    27 mov es,ax
    28 mov ss,ax
    29 mov sp,0100h

    只要在物理地址为0x200处设置一个断点,就可以让程序在执行我们的代码前先暂停一来。

  • 相关阅读:
    7-1 抓老鼠啊~亏了还是赚了?
    7-1 币值转换
    7-1 打印沙漏
    打印沙漏
    第十周作业
    第九周作业
    第八周作业
    第七周作业
    7-1 判断上三角矩阵 (15 分)
    第二次实验过程
  • 原文地址:https://www.cnblogs.com/teafree/p/2200453.html
Copyright © 2011-2022 走看看