Exemplo n.º 1
0
void SeniorVMHandle::q_sub(long _register1,long _register2)
{
  q_not(_register1);
  pop(T_INVALID);
  pop(T_TMP_REGISTER8);
  q_add(T_TMP_REGISTER8,_register2);
  //  pop(T_INVALID);
  pop(T_TMP_REGISTER6); //eflag 1
  q_copy_stack();
  q_not_and();
  pop(T_TMP_REGISTER7); //eflag 2 
  //pop(T_TMP_REGISTER8); //结果

  q_not(T_TMP_REGISTER6);
  pop(T_INVALID);
  w_push_imm_sx(0xf7ea);
  q_not_and();
  pop(T_INVALID);
  pop(T_TMP_REGISTER6);
  
  q_not(T_TMP_REGISTER7);
  pop(T_INVALID);
  w_push_imm_sx(0x815);
  q_not_and();
  pop(T_INVALID);
  pop(T_TMP_REGISTER7);
  q_add(T_TMP_REGISTER6,T_TMP_REGISTER7);
  pop(T_INVALID);
}
Exemplo n.º 2
0
void SeniorVMHandle::q_and(long _register1,long _register2)
{
  q_not(_register2);
  pop(T_INVALID);
  q_not(_register1);
  pop(T_INVALID);
  db(HANDLE.q_nand.handle);
}
Exemplo n.º 3
0
void SeniorVMHandle::q_and(long _register1,long _register2,bool is_data)
{
  if (is_data)
  {
    q_not( _register2 , true );
    pop( T_INVALID );
    q_not( _register1 );
    pop( T_INVALID );
    db( GET_HANDLE( q_nand ) );
    return;
  }
  q_not(_register2);
  pop(T_INVALID);
  q_not(_register1);
  pop(T_INVALID);
  db(HANDLE.q_nand.handle);
}