这是AT&T 汇编语言语法格式,操作数的长度用加在指令后的符号表示b(byte, 8-bit), w(word, 16-bits), l(long,
32-bits),如“movb %al, %bl”,“movw%ax,%bx”,“movl%eax,%ebx”。
如果没有指定操作数长度的话,编译器将按照目标操作数的长度来设置。比如指令“mov
%ax,%bx”,由于目标操作数bx的长度为word,那么编译器将把此指令等同于“movw %ax,
%bx”。同样道理,指令“mov$4,%ebx”等同于指令“movl$4,%ebx”,“push%al”等同于
“pushb%al”。对于没有指定操作数长度,但编译器又无法猜测的指令,编译器将会报错,比如指令“push$4”。
参考这里