以下是save_all宏的源代码
pushl %es                       
pushl %ds                       
pushl %eax                        
pushl %ebp                       
pushl %edi                        
pushl %esi                                               
pushl %edx                                               
pushl %ecx                                               
pushl %ebx                                               
movl $(__KERNEL_DS),%edx                         
movl %edx,%ds                                                
movl %edx,%es                                              
请问movl,pushl和8086的mov,push指令有何区别,另外,百分号和$是什么意思?谢谢