예제 #1
0
  public void execute(VM vm) {
    long ax = vm.getRegisterX(EAX);
    long imm = vm.getCodeX(1);

    long result = ax - imm - (vm.getEFlags().isCarry() ? 1 : 0);
    FlagCheck.subCheck(ax, imm, result, vm.getEFlags(), vm.is32bitOperand() ? 32 : 16);
    vm.setRegisterX(EAX, result);

    vm.addEIP(vm.is32bitOperand() ? 5 : 3);
  }