汇编语言基础教程-寻址方式

简介: 1立即寻址 在指令中使用的操作数为常数 如: mov eax,190;与mov eax,00BEH相同,低字节在前s mov eax,0FFFFFFFFH;与 mov eax,-1相同 eax可以存放一个双字   2寄存器寻址 操作数已经在CPU的寄存器中 如: mov EAX,...

1立即寻址

在指令中使用的操作数为常数

如:

mov eax,190;与mov eax,00BEH相同,低字节在前s

mov eax,0FFFFFFFFH;与 mov eax,-1相同

eax可以存放一个双字

 

2寄存器寻址

操作数已经在CPU的寄存器中

如:

mov EAX,EBX

 

3直接寻址

操作数为一个已经定义好的变量

如:

mov eax,dvar;dvar为一个双字变量

mov dvar,eax

在翻译成及其指令后,以上指令就变成了类似以下形式

mov eax,[00404011];地址外面加一个方括号,表示取这个地址的内容

 

4寄存器间接寻址

操作数的地址放在寄存器中

如:

mov ESI,00404011H

mov EAX,[ESI]

32位CPU中EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP能用作间接寻址

 

5寄存器相对寻址

如:

mov ESI,00404011H

mov EAX,[ESI+4]

 

6基址变址寻址

如:

mov ESI,00404011H

mov EBX,4

mov EAX,[ESI+EBX]

 

7基址变址相对寻址

如:

mov ESI,00404011H

mov EBX,4

mov EAX,[ESI+EBX+4]

 

8基址变址比例相对寻址

如:

mov ESI,00404011H

mov EBX,4

mov EAX,[ESI+EBX*2+4]

 

9*段超越

内存操作数的地址由两个部分指定:段和有效地址。

寻址方式中确定操作数的有效地址后,还要依靠段寄存器一起来确定操作数的内存地址

默认情况下内存操作指令在DS段中

如果使用了ESP和EBP来寻址,那么使用的是SS段寄存器

如:

mov eax,[ebp+8];内存操作数在SS段中

使用段超越前缀可以改变寻址方式中默认使用的段寄存器

如:

mov eax,cs:[ESP-4]

windows 32编程环境下CS,DS,ES,SS在内存中指向同一个段,其大小为4G

所以一般用不到段超越的操作

目录
相关文章
Win10 汇编工具 EMU8086安装教程
EMU8086是一种学习汇编工具,它结合了一个原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟PC),还有一个循序渐进的指导工具。下面的这一教程是 bs.aiesst.cn 专门为初学者入门而准备的一个安装教程,以及下载地址。
7548 1
|
8月前
|
传感器 安全 Java
汇编语言基础教程
汇编语言基础教程
|
8月前
|
存储 Java 程序员
汇编语言教程及实例
汇编语言教程及实例
|
7月前
|
传感器 安全 Java
汇编语言基础教程
汇编语言基础教程
|
8月前
|
程序员 索引
逆向学习汇编篇:内存管理与寻址方式
逆向学习汇编篇:内存管理与寻址方式
84 0
|
9月前
|
索引 存储 C语言
【汇编】[bx+idata]的寻址方式、SI和DI寄存器
【汇编】[bx+idata]的寻址方式、SI和DI寄存器
316 0
【汇编】[bx+idata]的寻址方式、SI和DI寄存器
|
9月前
汇编指令学习(寻址方式)
汇编指令学习(寻址方式)
73 0
|
算法 vr&ar 网络架构
汇编实验4(99乘法表,整数分解,素数环,迷宫问题)【栈传参,递归,寻址方式】
汇编实验4(99乘法表,整数分解,素数环,迷宫问题)【栈传参,递归,寻址方式】
113 0
|
存储 编译器 C语言
0基础C语言自学教程——第九节 从底层汇编的角度简单理解函数栈帧的创建和销毁
我们在现在,其实已经比较清楚函数是怎么样运行的了,包括怎样传参 、函数调用等等。但是呢,这样也只是理解到了会用的地步。
181 0
0基础C语言自学教程——第九节 从底层汇编的角度简单理解函数栈帧的创建和销毁
汇编语言与微机原理/计算机组成原理第三章:寻址方式与数据传送
汇编语言与微机原理/计算机组成原理第三章:寻址方式与数据传送
162 0