引用寄存器要在前面加% mov %eax %ebx
操作顺序从左到右 mov %eax(源) %ebx(目的)
立即数/地址前要$
操作数长度加在指令后面b(byte)w(word)l(long) 列movw
跳转 ljump $section, $offset==jmp far section:offset
lcall $section,$offset==call far section:offset
寻址方式 section:disp(base,index,scale)==secton:[base+index*scale +disp]
例如
movl -4(%ebp),%eax==mov eax, [ebp-4]
movl array(,%eax,4),%eax==mov eax,[eax*4+array]
movw array(%ebx,%eax,4),%cx==mov cx,[ebx+4*eax+arry]
嵌入汇编
_asm_("asm statement":outputs:inputs:register-modigied)
asm statements 汇编语句
ouputs 从什么东西输出
inputs 输入到什么
后面是改变的寄存器