2.4通用寄存器下

2.4通用寄存器下

本节必须掌握的知识点:

u掌握DTDebug界面、并熟练使用

u熟记汇编窗口的组成及寄存器窗口的组成

u MOV指令的熟练使用

u掌握字节、字、双字的知识

u使用汇编指令对8位、16位、32位寄存器数据的存储

在2.3节中介绍通用寄存器的知识,并且知道了寄存器是处理器(CPU)中用来存储数据的地方。接下来我们借用软件了解2.3节中的知识点。

2.4.1【DTDebug软件】

DTDebug.exe是供程序员使用的程序调试工具。【本节只简单介绍DTDebug的使用,详细说明书请到编程达人官网去下载相关文档】

在2.1节中介绍DTDebug软件的安装步骤,相信大家已经安装好这个软件。接下来介绍这个软件的使用。

双击DTDebug.exe软件图标如图2-4-1所示,打开界面如图2-4-2所示。


图2-4-2是软件的原始界面,没有任何记录。那该怎么把将要被调试的程序打开哪?

有四种方式:

1、在如图2-4-2程序窗口中找到File -> Open ->找到调试程序;

2、直接将要被调试的程序拖拽到如图2-4-2程序窗口中。

3、关闭如图2-4-2窗口,把将要被调试的程序拖到如图2-4-1DTDebug图标上。

4、在如图2-4-2程序窗口中找到File -> Attach ->找到将要被调试的程序(正在运行的软件)。

以IPMGS.exe为例,介绍DTDebug界面,如图2-4-3,图2-4-4所示。


图2-4-4中标注的4个窗口,分别为汇编窗口、寄存器窗口、内存窗口、堆栈窗口。

【本节中只是简单介绍,更深入的操作以后课程会介绍】

 2.4.2【汇编窗口】

   简单介绍汇编窗口,汇编窗口由内存、特征码、汇编、标注区(从左向右)这四块组成。【在本节这三块不做介绍】

一个程序运行以后,处理器会一行行的执行它的代码,如图2-4-4处理器会沿着汇编窗口从上往下一行行执行代码,直至结束。跟着操作时肯定会有如下疑问,首先没有看到被调试的程序运行,其次汇编窗口并没有从上往下一行行执行代码。接下来解答一下,DTDebug软件是可以中断当前运行的程序的,如图2-4-4黄色区域中写着Paused

表示当前程序是被中断的,其次接着看图2-4-4汇编窗口中有黑色区域表示当前被调试的程序被中断在这块内存区域。该块区域是被调试程序的入口点。【文中讲到的中断指:处理器运行到该段程序时,让该程序停止运行了】。 那怎么让程序一行行往下执行哪?看图2-4-4中有一个三角符号

,按下程序将会一行行往下执行,此时被调试的程序就会运行起来。

接下来介绍寄存器窗口。如图2-4-4寄存器窗口所示。

2.4.3【寄存器窗口】

简单介绍寄存器窗口,寄存器窗口由EAX、ECX、EDX、EBX、ESP、EBP、ESI、EDI这8个通用寄存器,还有EIP寄存器、EFLAGS寄存器及它们相对应存储的数值。

EIP、EFLAGS寄存器与8个通用寄存器的区别在于,以EAX寄存器为例,EAX寄存器可以任意读写数据,而EIP寄存器,它的作用是存放当前代码段即将被执行的下一条指令的地址,不可以随意读写,如图2-4-4寄存器窗口所示,EIP当前存储的值为:004185B7,看汇编窗口黑色区域和EIP存储的值是一样的。那么EFLAGS是标志寄存器,它是受特殊汇编指令的控制,特殊汇编指令决定它当前数值位的变化,【本节不做详细介绍,内存窗口和堆栈窗口本节不做介绍】。

寄存器窗口简单介绍完了,那怎么用通用寄存器哪?在介绍使用之前先介绍一个指令。

2.4.4【MOV指令】

MOV指令是移动数据。MOV指令可以把立即数移动到寄存器,也可以把寄存器的数据移动到寄存器。


例:

MOV EAX,1    (把1移动到EAX寄存器里)

    MOV EAX,ECX (把ECX寄存器的数据移动到EAX寄存器里)

用DTDebug软件把例题操作一遍。首先打开软件如图2-4-4所示,将鼠标移动到汇编窗口,双击黑色区域所对应的那一行汇编代码,弹出输入指令窗口如图2-4-5所示,把鼠标移动到输入窗口中,将里面的指令编写成:MOV EAX,1如图2-4-6所示,点击Enter键,汇编指令将被显示到汇编窗口,如图2-4-7所示。MOV EAX,ECX重复以上的操作。完成后按F8执行,观察寄存器窗口,如图2-4-8、图2-4-9所示。


弹出输入指令窗口


输入指令:MOV EAX,1


              输完指令点击键盘Enter键                                                                                                 


F8单步运行


                     F8单步运行

简单介绍完了MOV指令,通过对MOV指令的编写、运行,寄存器相对应存储的数据发生了变化,那这些数据是怎么存储的哪?接下来介绍数据在通用寄存器中的存储。

2.4.5【通用寄存器对数据的存储】

先回顾一下8位、16位、32位通用寄存器。

如通用寄存器表所示。

根据图2-4-9寄存器窗口所示,EAX对应的数据是:0x0012FFB0.只有8个数据。而EAX是32位的,它是怎么存储的哪?

这里要回顾一下字节、字、双字这个知识点。

字节:记为Byte,一个字节由8个bit组成,可以存在8位寄存器中。

字:记为Word,一个字由两个字节组成,这两个字节分别为这个字的高位字节和低位字节,可以存在16位寄存器中。

双字:记为DoubleWord,一个双字由2个字组成,这两个字分别为这个双字的高位字和低位字,可以存在32位寄存器中。


     一个双字可以存在一个32位寄存器中,这个双字由高位字和低位字组成。低位字可以存放16位寄存器,而16位寄存器,由两个字节组成,这个高位字节和低位字节自然就存在这个寄存器的高8位寄存器和低8位寄存器中。

以EAX寄存器为例,如图2-4-10所示。


图2-4-10 EAX寄存器逻辑结构图

    知道了字节、字、双字,在看寄存器窗口中的数据相信大家知道它是怎麽存储了的。

接下来用汇编指令来实现对8位、16位、32位寄存器进行存储。

以下例题自己在软件中实验,增强寄存器对数据存储的认识,其次可以加强对MOV指令的练习,再者多熟悉该软件,我们以后的章节都会用到。

例:

     MOV AL,1

     MOV AH,2

     MOV AX,0xFFFF

     MOV EAX,0xFFFF0000

     MOV CL,1

     MOV CH,2

     MOV CX,0xFFFF

     MOV ECX,0xFFFF0000


u下一节介绍内存。

练习:

     1、MOV EAX,200

        MOV EAX,CX  可以这样操作吗?对吗?大家思考一下

        MOV CL,300  这个指令是错误的吗?思考一下为什么错?怎样写才正确

        MOV ECX,EAX 说出哪个是源操作数、哪个是目的操作数、哪个是操作码

     2、能够正确理解字节、字、双字,且可以用汇编指令对8位寄存器的高位、低位熟练的操作,熟练对16位、32位寄存器正确存储数据。     

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容