汇编语言的寻址方式
来源:互联网 发布:js实现烟花的原理 编辑:程序博客网 时间:2024/06/07 12:40
Intel 汇编
立即寻址方式
MOV AH, 80H (直接给寄存器赋值)
寄存器寻址方式(源或者目的有一个是寄存器)
源操作数是寄存器寻址方式
如: ADD VARD, EAX ADD VARW, AX MOV VARB, BH等。
其中: VARD、VARW和VARB是双字,字和字节类型的内存变量。
目的操作数是寄存器寻址方式
如: ADD BH, 78h ADD AX, 1234h MOV EBX, 12345678H等。
源和目的操作数都是寄存器寻址方式
如: MOV EAX, EBX MOV AX, BX MOV DH, BL等。
直接寻址方式(地址值在括号里)
MOV BX, [1234H] (默认使用DS).
MOV ES:[1000H], AX
寄存器间接寻址方式(寄存器在括号里)
MOV BX, [DI]
操作数的有效地址用SI、DI、BX和BP等四个寄存器之一来指定,称这种寻址方式为寄存器间接寻址方式。
若有效地址用SI、DI和BX来指定,则其缺省的段寄存器为DS;若有效地址用BP来指定,则其缺省的段寄存器为SS(即:堆栈段)。
寄存器相对寻址方式(一个寄存器和一个立即数在括号里,并且还要计算)
MOV BX, [SI+100H]
基址加变址寻址方式(两个寄存器在括号里,并且还要计算)
MOV BX, [BX+SI]
相对基址加变址寻址方式(两个寄存器在括号里和一个立即数在括号里,并且还要计算)
MOV AX, [BX+SI+200H]
AT&T 汇编
立即寻址
movl $2, %ebx
它的意思就是把2这个数字写入%eax寄存器,$2就是立即寻址,其实就是立即数。
寄存器寻址
其实上面的例子也包括了寄存器寻址,顾名思义%ebx就是寄存器寻址,代表对这个寄存器本身的写入或读出。
直接寻址
movl ADDRESS, %eax
ADDRESS其实就相当于”地址或偏移”里的地址,反正就是一个数字。
寄存器间接寻址
movl (%eax), %ebx
(%eax)就是间接寻址了,意思就是访问eax寄存器里的数值所代表的地址。相当于通用公式里的基址或偏移量寄存器。
索引寻址(变址寻址)
movl 0xFFFF0000(,%eax,4), %ebx
0xFFFF0000(,%eax,4)就是索引寻址,意思是从0xFFFF0000地址开始,加上%eax * 4作为索引的最终地址。
基址寻址
movl 4(%eax), %ebx
4(%eax)就是基址寻址,意思是以eax寄存器里的数值作为基址,加上4得到最终地址。
注意
在 AT&T 汇编格式中,绝对转移和调用指令(jump/call)的操作数前要加上’*’作为前缀,而在 Intel 格式中则不需要。
参考
http://www.cnblogs.com/hdk1993/p/4820353.html Intel格式和AT&T格式汇编区别
http://www.cnblogs.com/findumars/archive/2013/09/05/3302457.html 汇编的8种寻址方式,以及2个默认段寄存器
http://blog.csdn.net/zr_lang/article/details/39962261 AT&T汇编语言及其寻址方式简述
- 汇编语言的寻址方式
- 汇编语言的七种寻址方式
- 汇编语言之寻址方式
- 汇编语言寻址方式
- 汇编语言寻址方式(Linux)
- 汇编语言之寻址方式
- 汇编语言寻址方式
- 汇编语言之寻址方式
- 汇编语言之寻址方式
- ARM汇编语言(3) 寻址方式
- 【汇编语言学习01】寻址方式
- 汇编语言实验3-寻址方式
- AT&T汇编语言寻址方式
- 汇编语言基础四 —— 操作数的寻址方式
- 汇编语言的寻址地址方式 (长沙戴维营)
- (2011.11.06)汇编语言第02章习题(寻址方式与汇编语言程序的组织)
- 汇编语言复习之--寻址方式1
- X86处理器架构------汇编语言寻址方式
- 微服务~分布式事务里的最终一致性
- VS2015C#使用Install Shield创建快捷方式为何属性中“目标”和“目标位置”为灰色
- 青蛙跳台阶
- 采用BigDecimal类减少计算误差
- 一个因为time/datetime引发的血案
- 汇编语言的寻址方式
- java鬼混笔记:lucene 8、过滤查询
- 国庆集训总结
- python机器学习基础语法入门
- 请输出1000以内能被11整除的最小的6个整数和最大的6个整数
- bzoj2744 [HEOI2012]朋友圈 ( 二分图最大团转补图最大独立集+时间戳优化+匈牙利算法)
- 计蒜客 17119 Trig Function(2017 ACM-ICPC 亚洲区(西安赛区)网络赛 F)
- 最新cygwin下使用zsh
- python中使用多进程和单进程分别拷贝大量文件效率对比