4、除法指令
除法指令的被除数是隐含操作数,除数在指令中显式地写出来。CPU会根据除数是8位、16位,还是32位,来自动选用被除数AX、DX-AX,还是EDX-EAX。
除法指令功能是用显式操作数去除隐含操作数,可得到商和余数。当除数为0,或商超出数据类型所能表示的范围时,系统会自动产生0号中断。
、无符号数除法指令DIV(Unsigned                                   
Divide Instruction)
指令的格式:DIV  Reg/Mem
                              
指令的功能是用显式操作数去除隐含操作数(都作为无符号数),所得商和余数按表5.3的对应关系存放。指令对标志位的影响无定义。
、有符号数除法指令IDIV(Signed                                   
Integer Divide Instruction)
指令的格式:IDIV  Reg/Mem
                              
受影响的标志位:AF、CF、OF、PF、SF和ZF
指令的功能是用显式操作数去除隐含操作数(都作为有符号数),所得商和余数的对应关系见表5.3。
表5.3 除法指令除数、被除数、商和余数的对应关系
|   
       除数位数  |   
      
       隐含的被除数  |   
      
       商  |   
      
       余数  |   
      
       举例  |   
  
|   
       8位  |   
      
       AX  |   
      
       AL  |   
      
       AH  |   
      
       DIV BH  |                                  
  
|     
       16位  |    
       
       DX-AX  |    
       
       AX  |    
       
       DX  |    
       
       DIV BX  |                                  
  
|     
       32位  |    
       
       EDX-EAX  |    
       
       EAX  |    
       
       EDX  |    
       
       DIV ECX  |