汇编速查-IA32指令系统

本文详细介绍了IA32指令系统,包括数据传送指令如MOV、变址寻址和寄存器间接寻址,条件传送指令如CMOV,交换数据的XCHG指令,堆栈操作如push和pop,以及控制执行流程的跳转、调用和中断。还涵盖了基本的数学功能,如整数运算、乘法和除法,以及移位、逻辑操作和位测试等。
摘要由CSDN通过智能技术生成

1 数据传送指令

格式:MOVX source, destination
X: L 32位值 W 16位值 B 8字节
MOVL %EAX, %EBX
MOVW %AX, %BX
MOVB %AL, %BL

使用规则,mov只有以下13种情况

情况 举例
立即数==>通用寄存器 movl $0, %eax
立即数==>内存位置 movl $100, value
通用寄存器==>通用寄存器 movb $al, %cl
通用寄存器==>段寄存器 movl %edx, %cs
通用寄存器==>控制寄存器 movl %edi, %cr0
通用寄存器==>调试寄存器 movl
段寄存器 ==>通用寄存器 movl %ds, %esi
控制寄存器==>通用寄存器 movl %cr4, %esp
调试寄存器==>通用寄存器
内存位置==>通用寄存器 movl value, %eax
内存位置==>段寄存器
通用寄存器==>内存位置 movl %ecx, value
段寄存器 ==>内存位置

变址寻址

地址格式: base_addr(offset_addr, index, size)
数据值位于base_addr + offset_addr + index * size
offset_addr,index必须为寄存器值,size可以是数字值

movl $2, %edi
movl values(, %edi, 4), %eax

寄存器间接寻址

$加标签获取内存位置的地址

movl $values, %edi ;把values地址送进EDI
movl %ebx, (%edi)  ;把EDX值送到EDI中包含的内存位置处
movl %ebx, 4(%edi) ;把值放到EDI寄存器指向位置之后4个字节的内存位置处
movl %ebx, -4(%edi);把值放到EDI寄存器指向位置之前4个字节的内存位
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值