汇编笔记三【寻址公式】

一、寻址方式一:

   立即数寻址:[立即数]

   例:

    读取内存的值:

    MOV EAX,DWORD PTR DS:[0xFFFFFFFF]

    向内存中写入数据:

    MOV DWORD PTR DS:[0xFFFFFFFF],eax

    获取内存地址:

    LEA EAX,DWORD PTR:DS[0xFFFFFFFF]

二、寻址方式二:

    寄存器寻址:[reg] reg代表寄存器,可以是8个寄存器中的任意一个

    例:

      读内存中的值:

      MOV EAX DWORD PTR DS:[ECX]

      向内存中写入数据:

      MOV DWORD PTR DS:[EDX],0xFFFFFFFF

      获取内存编号:

      LEA EAX,DWORD PTR DS:[EDX]

三、寻址方式三

    寄存器+立即数寻址:[reg+立即数]

    例:

      读取内存的值:

      MOV EAX,DEWORD PTR DSl[ECX+4]

      向内存中写入数据:

      MOV DEWORD PTR DS:[EDX+0xC],0x12345678

      获取内存地址:

      MOV EAX,DWORD PTR DS:[EDX+4]

四、寻址方式四:

     寄存器+寄存器*偏移地址 寻址:[reg+reg*{1,2,4,8}],注意:后面只能乘以1,2,4,8其中一个

     例:

      读取内存的值:

      MOV EDX,DWORD PTR DS:[EAX+ECX*4]

      向内存中写入数据:

      MOV DWORD PTR DS:[EAX+ECX*4],0x12345678

      取内存地址:

      LEA EAX,DWORD PTR DS:[EAX+ECX*4]

五、寻址方式五:

    寄存器+寄存器*偏移地址+立即数 寻址:[reg+reg*{1,2,4,8}+立即数]

    例:

      读取内存的值:

      MOV EDX,DWORD PTR DS:[EAX+ECX*4+4]

      向内存中写入数据:

      MOV DWORD PTR DS:[EAX+ECX*4+4],0x12345678

      取内存地址:

      LEA EAX,DWORD PTR DS:[EAX+ECX*4+4]

时间: 2024-08-07 17:00:33

汇编笔记三【寻址公式】的相关文章

加壳学习笔记(三)-简单的脱壳思路&调试思路

首先一些windows的常用API: GetWindowTextA:以ASCII的形式的输入框 GetWindowTextW:以Unicaode宽字符的输入框 GetDlgItemTextA:以ASCII的形式的输入框 GetDlgItemTextW:以Unicaode宽字符的输入框 这些函数在使用的时候会有些参数提前入栈,如这函数要求的参数是字符串数目.还有大小写啦之类的东西,这些东西是要在调用该函数之前入栈,也就是依次push,就是说一般前面几个push接着一个call,那前面的push可能

Linux内存管理学习笔记——内存寻址

最近开始想稍微深入一点地学习Linux内核,主要参考内容是<深入理解Linux内核>和<深入理解Linux内核架构>以及源码,经验有限,只能分析出有限的内容,看完这遍以后再更深入学习吧. 1,内存地址 逻辑地址:包含在机器语言中用来指定一个操作数或一条指令的地址. 线性地址:一个32位无符号数,用于直接映射物理地址 物理地址:片上引脚寻址级别的地址 2,逻辑地址->线性地址 2.1 段选择符与段寄存器 逻辑地址:段选择符(16位)+段内偏移(32位) index:在GDT或L

Silverlight动画学习笔记(三):缓动函数

(一)定义: 缓动函数:可以将自定义算术公式应用于动画 (二)为什么要用缓动函数: 您可能希望某一对象逼真地弹回或其行为像弹簧一样.您可以使用关键帧动画甚至 From/To/By 动画来大致模拟这些效果,但可能需要执行大量的工作,并且与使用算术公式相比动画的精确性将降低. (三)实例讲解: 1 <UserControl x:Class="AnimationStudy.EasingFunctionAnimation" 2 xmlns="http://schemas.mic

TensorFlow深入MNIST笔记[三]

TensorFlow深入MNIST笔记[三] TensorFlow是进行大规模数值计算的强大库.其优点之一是实施和训练深层神经网络. 加载MNIST数据 from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets('MNIST_data', one_hot=True) 这mnist是一个轻量级的类,它将训练,验证和测试集存储为NumPy数组.它还提供了一个迭代数据服务的功

Caliburn.Micro学习笔记(三)----事件聚合IEventAggregator和 Ihandle&lt;T&gt;

Caliburn.Micro学习笔记(三)----事件聚合IEventAggregator和 Ihandle<T> 今天 说一下Caliburn.Micro的IEventAggregator和IHandle<T>分成两篇去讲这一篇写一个简单的例子 看一它的的实现和源码 下一篇用它们做一个多语言的demo 这两个是事件的订阅和广播,很强大,但用的时候要小心发生不必要的冲突. 先看一下它的实现思想 在Caliburn.Micro里EventAggregator要以单例的形式出现这样可以

构建之法阅读笔记三—结对编程

构建之法阅读笔记三——结对编程 何谓结对编程,结对编程就是程序员肩并肩,平等的,互补的进行开发工作,他们使用同一台电脑,编写同样的程序,一起分析,一起设计,一块交流想法. 然而我以前却并不是这样做的,我以前喜欢在没人打扰的环境下写代码,我觉得有人在我身边看着,会影响我的思路,还有我个人自尊心比较强,不太喜欢被人指指点点,所以每次都是,我写完代码之后,自己先找自己的bug,每当自己实在找不到之后,才会请教大神,但是有时候可能由于自己的能力不足,往往一个很简单的问题,我自己发现就会花费很久的时间,让

3. 蛤蟆的计算机组成原理笔记三系统总线

3. 蛤蟆的计算机组成原理笔记三系统总线 本篇名言:"公正,一定会打倒那些说假话和假作证的人. --赫拉克利特" 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47988545 1.  总线 总线是连接各个部件的信息传输线,是 各个部件共享的传输介质. 1.1             面向CPU 的双总线结构框图 1.2             单总线结构框图 1.3             以存储器为中心的双总线

OpenCV for Python 学习笔记 三

给源图像增加边界 cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value) src:源图像 top,bottem,left,right: 分别表示四个方向上边界的长度 borderType: 边界的类型 有以下几种: BORDER_REFLICATE # 直接用边界的颜色填充, aaaaaa | abcdefg | gggg BORDER_REFLECT # 倒映,abcdefg | gfedcbamn | nmabcd

NFC学习笔记——三(在windows操作系统上安装libnfc)

本篇翻译文章: 这篇文章主要是说明如何在windows操作系统上安装.配置和使用libnfc. 一.基本信息 1.操作系统: Windows Vista Home Premium SP 2 2.硬件信息: System: Dell Inspiron 1720 Processor: Intel Core 2 Duo CPU T9300 @ 2.5GHz 2.5GHz System type: 32-bit Operating System 3.所需软件: 在windows操作系统上安装软件需要下列