Assembly nasm中源寄存器周围带或不带[]括号的mov指令的含义

Assembly nasm中源寄存器周围带或不带[]括号的mov指令的含义,assembly,x86,nasm,cpu-registers,mov,Assembly,X86,Nasm,Cpu Registers,Mov,我对装配有点生疏。我想问你们几个问题 这些装配说明在NASM中有效吗 区别是什么?我们应该在什么时候使用它们 vs 你会读C吗?如果是这样的话,根据前面的定义inta,b,第一条指令或多或少等同于 a = b; a = *b; 鉴于,鉴于之前的定义int a,*b,第二条指令大致相当于 a = b; a = *b; 除了EAX和EBX是寄存器,而不是堆栈驻留变量 还有很多很多可以说的,但是前面的内容给了你一个想法 (顺便提一下,NASM——我承认在过去五年中没有使用过它——与GNU的汇编

我对装配有点生疏。我想问你们几个问题

  • 这些装配说明在NASM中有效吗
  • 区别是什么?我们应该在什么时候使用它们
  • vs


    你会读C吗?如果是这样的话,根据前面的定义
    inta,b,第一条指令或多或少等同于

    a = b;
    
    a = *b;
    
    鉴于,鉴于之前的定义
    int a,*b,第二条指令大致相当于

    a = b;
    
    a = *b;
    
    除了EAX和EBX是寄存器,而不是堆栈驻留变量

    还有很多很多可以说的,但是前面的内容给了你一个想法

    (顺便提一下,NASM——我承认在过去五年中没有使用过它——与GNU的汇编程序相比,它以相反的顺序显示参数。NASM将目标寄存器放在左边,源寄存器放在右边,而GNU则相反。NASM的约定与GNU的约定相比,也被称为“英特尔语法”“AT&T语法。”)

    将EBX的值移动到EAX中,同时

    mov EAX, [EBX]
    

    将EBX中地址的值(因此EBX必须包含有效地址,否则将出现分段错误)移动到EAX。

    +1.祝贺您获得投票权!(您的答案很好。)祝贺您获得评论权!一个答案不错。这里的语法有点混乱。”将EBX中地址的值移动到EAX“”中?您的意思是“移动到EAX中”?
    mov EAX, [EBX]