欢迎光临散文网 会员登陆 & 注册

汇编语言——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 格式的汇编格式。


汇编语言——Intel格式和AT&T格式的评论 (共 条)

分享到微博请遵守国家法律