汇编语言——Intel格式和AT&T格式
2020-05-22 15:27 作者:Iammyself001 | 我要投稿
80386指令
观察一下Intel 的80x86 CPU文档手册会发现,Intel的80x86 CPU支持几百条指令,如此多的指令莫说深入研究,连入门恐怕也非易事。
幸运的是,在这几百条的指令中,常用的也不过几十条而已,Intel 的80x86 CPU之所以支持几百条指令,原因在于Intel 的80x86 CPU为了保持向下兼容的问题,所以从过去到现在的所有指令都包含在CPU里面,例如有8086/8088、80186、80286和80386等。
Intel格式和AT&T格式(&在英语里读and)
编写IA-32架构的汇编语言常见有两种格式,一种是Intel格式,另一种是AT&T格式。
(1)Intel 格式的指令格式。
指令名称 目标操作数DST,源操作数SRC
示例代码:
Mov eax,[edx] //将内存地址为EDX的数据放入EAX寄存器
Xchg eax,edi //交换EAX和EDI寄存器的值
Add eax,ebx // 将EAX和EBX相加,结构放回EAX中
Shl eax,4 //将EAX逻辑左移4位。
(2)AT&T格式的指令格式。
指令名称 源操作数SRC,目标操作数DST
示例代码:
Mov (%EDX),%EAX //将内存地址为EDX的数据放入EAX寄存器
XCHG %EDI,%EAX //交换EAX和EDI寄存器的值
ADD %EBX,%EAX //将EAX和EBX相加,结构放回EAX中
SHL $4,%EAX //将EAX逻辑左移4位。
本教程中讲解的汇编语言统一采用Intel 格式的汇编格式。
