博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
指令常用寻址方式
阅读量:5250 次
发布时间:2019-06-14

本文共 2220 字,大约阅读时间需要 7 分钟。

知识点:立即寻址寄存器寻址寄存器间接寻址直接寻址方式直接寻址方式寄存器相对寻址一、了解指令常用寻址方式  寻址方式就是寻找操作数或操作数地址的方式。  寄存器是中央处理器内的组成部分。寄存器是一组容量有限的高速存贮部件,它们可用来暂存指令、数据和位址。(DWORD)MOV    EAX,0x1234        //立即寻址                  MOV    EAX,EBX          //寄存器寻址    数据寄存器,一般称之为通用寄存器组 通用寄存器有4个 EAX,EBX,ECX,EDX              MOV    EAX,[EBX]         //寄存器间接寻址                 MOV    EAX,v             //v是一个变量名   MOV    EAX,[1234]         //直接寻址方式                  MOV    EAX,[EBX+1234]    //寄存器相对寻址      二、理解寻址  上边的名字看起来很多,总结起来也就2种方式:   带[]与不带[]   1、不带括号的 有立即数与寄存器   2、带括号的就是指针,从地址里边取值出来。    MOV    EAX,0x1234        //立即寻址         eax=0x1234;            MOV    EAX,EBX          //寄存器寻址       eax=ebx               MOV    EAX,[EBX]         //寄存器间接寻址   eax=*(int*)ebx;                MOV    EAX,v             //v是一个变量名    eax=v; //被编译后 一般会呈后边两种形式MOV    EAX,[1234]         //直接寻址方式     eax=*(int*)(0x1234)MOV    EAX,[EBX+1234]    // 寄存器相对寻址  eax=*(int*)((int)ebx+1234); //这里的1234称为偏移,EBX是基址三、对调位置MOV    EAX,0x1234        //立即数不能出现在MOV指令左边。如:     MOV 0x1234,EAX 这是错的写法     后边的都可以对换位置       MOV    EAX,EBX          //寄存器寻址       eax=ebx                  mov ebx,eax         MOV    EAX,[EBX]         //寄存器间接寻址   eax=*(int*)ebx;            mov [ebx],eax      MOV    EAX,v             //v是一个变量名    eax=v;                    mov v,eaxMOV    EAX,[1234]         //直接寻址方式     eax=*(int*)(0x1234)         mov [1234],eaxMOV    EAX,[EBX+1234]    // 寄存器相对寻址  eax=*(int*)((int)ebx+1234)   mov [ebx+1234],eax

 

//下边指令,前边是寄存器相对寻址,后边是立即寻址0040105A  |.  C745 FC 20304>MOV DWORD PTR SS:[EBP-4],001_MOV.00403020     ;  int *da=a //a是数组的地址 00401061  |.  B8 11110000   MOV EAX,1111                                  ;  eax=0x1111  立即寻址00401066  |.  8BD8          MOV EBX,EAX                                   ;  mov ebx,0x1111-->ebx=0x1111 //寄存器寻址00401068  |.  8B1D 18304000 MOV EBX,DWORD PTR DS:[403018]                 ;  mov ebx,008899FF-->ebx=009988FF 直接寻址0040106E  |.  8B5D FC       MOV EBX,DWORD PTR SS:[EBP-4]                  ;  mov ebx,da 寄存器 相对寻址00401071  |.  8B45 00       MOV EAX,DWORD PTR SS:[EBP]                        //寄存器间接寻址00401074  |.  8B43 04       MOV EAX,DWORD PTR DS:[EBX+4]                  ;  eax=da[1]=1  寄存器 相对寻址

 

转载于:https://www.cnblogs.com/whzym111/p/6362899.html

你可能感兴趣的文章
【欧拉函数模板题】最大公约数
查看>>
C 筛选法找素数
查看>>
TCP为什么需要3次握手与4次挥手(转载)
查看>>
IOC容器
查看>>
织梦仿站第三课:网站的文件分割
查看>>
Windows 2003全面优化
查看>>
URAL 1002 Phone Numbers(KMP+最短路orDP)
查看>>
web_day4_css_宽度
查看>>
用sql删除数据库重复的数据的方法
查看>>
学习笔记21—PS换图片背景
查看>>
electron入门心得
查看>>
格而知之2:UIView的autoresizingMask属性探究
查看>>
Spring3.0 AOP 具体解释
查看>>
我的Hook学习笔记
查看>>
EasyUI DataGrid 中字段 formatter 格式化不起作用
查看>>
海量数据存储
查看>>
js中的try/catch
查看>>
[导入]玫瑰丝巾!
查看>>
自动从网站上面下载文件 .NET把网站图片保存到本地
查看>>
【识记】 域名备案
查看>>