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); }
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); }
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); }