汇编笔记二【32位通用寄存器 以及 常用汇编指令】

一、32位通用寄存器(EAX,ECX,EDX,EBP,ESP,EBP,ESI,EDI)

二、十六位通用寄存器(AX,CX,DX,BX,SP,BP,SI,DI)

三、八位通用寄存器(AH,AL,CH,CL,DH,DL,BH,BL)

四、32位,16位,8位寄存器之间的关系

  1.寄存器都是高位在前,低位在后。

  2.都是包含关系,32位寄存器之中包含了16位寄存器,16位寄存器之中包含了8位寄存器。

  关系如下:

  

五、32位的含义

  一位只能放0或1,32位就意味着能放32个0或1。

  所以32位最小取值为00000000000000000000000000000000=0x00000000

            最大取值为11111111111111111111111111111111=0xFFFFFFFF

六、OD中EIP的含义:EIP指向了当前CPU运行到的指令地址。双击EIP的值,可以在CPU窗口中回到EIP指向的地址。

  

七、汇编常见指令及其用法

  A、Mov指令

    定义:拷贝源操作数到目标操作数

    语法定义:Mov 目标操作数,源操作数

    语法规定:

      a、源操作数可以使立即数,通用寄存器,段寄存器,或者内存单元

      b、目标操作数可以是通用寄存器,段寄存器,或者内存单元

      c、操作数的宽度必须一样

      d、源操作数和目标操作数不能同时为内存单元

           

  B、ADD指令

    定义:加法指令,两数相加

        

  C、SUB指令

    定义:减法指令,两数相减

  D、AND指令

    定义:与指令,两个数都是1,结果才是1

  E、OR指令

    定义:或指令,两个数只要有一个为1,结果就是1.

  F、XOR指令

    定义:异或指令,两个数不相同,结果才是1

  G、NOT指令

    定义:非指令,当被此运算符修饰时,每位取反

      

时间: 2024-07-30 13:49:55

汇编笔记二【32位通用寄存器 以及 常用汇编指令】的相关文章

64位和32位的寄存器和汇编的比较

转载于http://blog.csdn.net/qq_29343201/article/details/51278798 64位(新增)汇编指令的不同 mov指令和push pop扩展了movq系列的mov和pushq以及popq用来操作quad word. 注意:movabsq不是32位的扩展,是纯新增的指令.用来将一个64位的字面值直接存到一个64位寄存器中.因为movq只能将32位的值存入,所以新增了这样一条指令. 顺带提一个小问题,64位的汇编代码在ret之前可能会加一句rep,这里的r

32位通用寄存器

注意:主要用途不代表唯一的用途,需要记得寄存器的编号,由于时32 位的所以它的存储的范围是0~0 - 0xFFFFFFFF. 当使用od打开一个exe时,有一个EIP,它是指当前执行的地方. 原文地址:https://www.cnblogs.com/duxinzoeACM/p/9900035.html

HTML笔记二,HTML中的常用元素与属性(2)

语义相关元素 <mark>:用于显示关注的内容,通常用黄色显示 <time>:显示被标注内容是日期,时间等信息 两个特殊功能的元素 <meter>:用于表示一个已知最大最小值的计数仪器 value:指定计数仪器的当前值 min:指定计数仪器的最小值 max:指定计数仪器的最大值 low:指定计数仪器指定范围的最小值 high:指定计数仪器指定范围的最大值 optimum:指定计数仪器有效范围的最佳值 <progress>:用于表示一个进度条 max:指定进度

汇编32位寄存器和地址编号的五种书写形式

32位通用寄存器 32位:EAX   EBX  ECX   EDX  ESP  EBP   ESI  EDI  每个寄存器的最大宽度是32位 16位:AX       BX     CX    DX   SP     BP    SI     DI 8位   :AL     BL   CL      DL    AH    BH    CH    DH 想寄存器存一个数字可以用mov指令 mov eax,1  就是把1存到eax寄存器中 程序内存 一个32位的程序最大存储空间是4G 就是从0~0

梦回----32位CPU和64位CPU的通用寄存器

1 32位Intel的CPU通用寄存器 32位CPU所含有的寄存器有:4个数据寄存器(EAX.EBX.ECX和EDX):2个变址和指针寄存器(ESI和EDI):2个指针寄存器(ESP和EBP):6个段寄存器(ES.CS.SS.DS.FS和GS):1个指令指针寄存器(EIP):1个标志寄存器(EFlags). 其中4个数据寄存器和2个编址和指针寄存器以及2个指针寄存器也是我们常说的通用寄存器. 1.1 数据寄存器 数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需要占用总线和访问

32位汇编背景知识

目录 背景知识 GTDTR,是一个48位的寄存器, 指向的描述符表为全局描述符表GDT(Gloabl Descriptor Table) LDTR,是一个16位的寄存器,指向局部描述符表LDT(Local Descriptor Table),每个任务一个独立的LDT. 段选择器 内存分页机制 背景知识 以下说的知识皆以如非特别表明,皆说的是80386CPU 它的可寻址能力达到4GB 通过寄存器是32位 通用寄存器是32位的,2的32次方等于4GB,就可以使用一个通用寄存器来寻址,从而不必分段.虽

32位Intel CPU所含有的寄存器

4个数据寄存器(EAX.EBX.ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES.CS.SS.DS.FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) 1.数据寄存器 数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间. 32位CPU有4个32位的通用寄存器EAX.EBX.ECX和EDX.对低16位数据的存取,不会影响高16位的数据.这些低16位寄存器分别命名为:AX.BX

学习笔记-汇编-两个16位数字相加获得32位数字

使用的是MASM编译 在XP环境下 command内 debug 调试的 啥也不说 上代码!! assume cs:code,ds:data data segment dw 0fa12h,0fdffh data ends code segment start: mov ax,data mov ds,ax ;设置数据段 mov ax,0h ;清零 mov bx,0h ;清零 mov al,ds:[0] ;fa12低位 mov bl,ds:[2] ;fdff低位 add ax,bx ;两个8位数字相

32位汇编第五讲,逆向实战干货,(OD)快速定位扫雷内存.

32位第五讲,逆向实战干货,快速定位扫雷内存. 首先,在逆向之前,大家先对OD有一个认识. 一丶OD的使用 标号1: 反汇编窗口 (显示代码的地址,二进制指令,汇编代码,注释) 标号2: 寄存器窗口(显示通用寄存器,段寄存器,以及浮点协处理器,32位中还有多媒体寄存器) 标号3: 信息窗口 (这个主要是显示当你运行到的程序的位置处的信息) 标号4: 数据窗口   (内存中的数据,可以在这里查看内存) 标号5:堆栈窗口 (查看栈中的内容,以及变量的内容) 标号6,标号7,标号8 ,属于工具窗口,不