1. bug和debug名词的由来:
1) 最早的计算机都是用电子管搭的,一次实验中因为电子管的光热引入一只小飞虫(bug)进入其真空结构内导致整个计算机瘫痪,废了科学家好长时间才排除了这个故障电子管,当时他们把这个排除故障的过程调侃为去除虫子(debug);
2) 现在人们将bug当做计算机系统、程序中的错误、漏洞和缺陷,而排除这些错误和漏洞的过程就叫debug,通常叫调试;
2. Windows古老的调试工具Debug简介:
1) 是DOS、Windows下的机器语言程序和汇编语言程序的调试工具;
2) 最初这款软件是工作在实模式下的(如果用户在调试过程中占用了其它正在运行的程序的内存空间(比如操作系统内核),则会对系统产生影响或导致那个正在运行的程序发生不可预料的错误,因此要求程序员对内存中那些段正在执行什么程序非常了解,程序员的压力非常巨大),但是现在基本上都是工作在保护模式下的,如果程序员占用了其它正在执行的程序的内存,就会被强行踢出(即拒绝执行这些命令);
3) 使用时直接在cmd控制台输入debug命令即可直接进入Debug程序;
注:64位系统需要自行下载一个32位的Debug放在DosBox虚拟机中运行!!!
i. Debug和cmd很像,也是通过使用命令对程序进行调试的;
ii. 在Debug中观察到的数据都用16进制表示!!!
**接下来介绍Debug中常用的命令
3. R——查看和改变寄存器中的内容:
1) Register的缩写,即寄存器,即用来查看以及修改寄存器中的值;
2) 查看:
i. R+回车;
ii. 会显示CPU各个寄存器中的值(16进制的);
iii. 最下面一行显示的是CS:IP指向的地址、该地址中的指令的16进制码以及相应的汇编语句形式;
!注意最后一行的第一个方框中的值就等于CS:IP中的值,后面的就是CS:IP指向的指令的机器码,第三个方