心血来潮的复习了下汇编的寻址方式!
来源:互联网 发布:gamma scalping 知乎 编辑:程序博客网 时间:2024/04/28 08:14
1.8086/8088寻址方式
立即寻址
立即数可以是8位,或者16位,采用高高低低存取的原则。
例:mov ax,1234h
这种寻址方式用于对存储单元或寄存器赋初值的情况
寄存器寻址
由于不需要访问存取器,这种寻址方式速度比较快
例:mov ax, bx
直接寻址
直接寻址通常用于处理单个存储器变量的情况,可以使用段超越前缀改变不用的段
例:mov ax,[1234h]
使用段超越前缀的话
Mov es:[1234h], bl
寄存器间接寻址
有效地址放于si,di,bx,bp四个寄存器当中,一般在不指定段前缀时,使用si,di,bx默认使用ds段寄存器,如果使用bp寄存器保存地址,则默认使用ss段寄存器
例:mov ax, [si]
使用段超越前缀
例:Mov dl,es:[bx]
当使用bp保存地址引用的则是ss段寄存器
例:mov [bp], cx
寄存器相对寻址
操作数的有效地址为一个基址寄存器(bx, bp)或者一个变址寄存器(si, di)加上一个8位或者16位的偏移量之和
例:mov ax, [di+ 1234h]
基址加变址寻址方式
操作数的有效地址由基址寄存器内容加变址寄存器的内容组成
例:mov ax, [bx+ si]
相对基址加变址寻址方式
操作数的有效地址由基址寄存器内容加变址寄存器内容加8位或者16位的偏移量构成
例:mov ax, [bx+ si + 1234h]
注意问题
基址寄存器可以混用但是不能用两个基址寄存器合用
例:mov ax, [bx+ bp]
这个是错误的
80386寻址方式
在80386模式下除了可以兼容之前8086寻址方式外,还提供了更为灵活的32位寄存器的寻址方式:
80386的内存地址可以由3部分构成:一个32基址寄存器,一个可以乘以比例因子1,2,4,8的变址寄存器和一个8位或者32位的常数偏移量这3个部分可以任意省略去其中两部分
例:mov bh, [ebx+ esi * 8 + 8]
而所有的8个32位通用寄存器都可以当做基址寄存器,而除了esp外的另外7个通用寄存器都可当做变址寄存器使用
- 心血来潮的复习了下汇编的寻址方式!
- 汇编的寻址方式
- 【汇编】操作数的寻址方式
- 51 单片机汇编指令的 寻址方式的通俗解析
- Linux下汇编学习-3寻址方式
- 汇编(三)——8086的寻址方式
- 那些年我们一起学的汇编----之寻址方式
- 汇编学习笔记--更灵活的寻址方式
- ARM汇编 – (1) ARM处理器的寻址方式
- 8086汇编5:更灵活的寻址方式
- 32位下CPU的寻址方式
- 解决Linux下内联汇编的宏融合寻址问题
- 关于在8086/88内存寻址方式 (这是我一次复习汇编时看到的好文章,所以转来共享)
- 汇编 寻址方式总结
- [汇编]8086寻址方式
- 汇编寻址方式总结
- 汇编 寻址方式总结
- 汇编寻址方式
- 任何一个使用.NET的人
- ATX电源维修
- TreeList 选中节点时图标状态和背景色
- TeeChart的用法
- No2.字符串查找
- 心血来潮的复习了下汇编的寻址方式!
- 关于phpMyAdmin "必须启用 Cookies 才能登录" 的解决办法
- 面向对象程序设计的基本原则
- 大家好!
- 主机加电自动开机
- 35个非主流开源数据库 你知道吗?
- Hibernate 映射文件_新手
- 无法为更新定位行。一些值可能已在最后一次读取后已更改
- PHP和Socket