Changeset 56 for branches/ByteArray/Cpu.pas
- Timestamp:
- Nov 22, 2023, 11:37:44 PM (6 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ByteArray/Cpu.pas
r55 r56 88 88 procedure InstructionDec; 89 89 procedure InstructionDecSize; 90 procedure InstructionXor; 91 procedure InstructionXorSize; 92 procedure InstructionAnd; 93 procedure InstructionAndSize; 94 procedure InstructionOr; 95 procedure InstructionOrSize; 90 96 procedure InitInstructions; 91 97 procedure SetRunning(AValue: Boolean); … … 469 475 RegIndex := ReadRegIndex; 470 476 Regs[RegIndex] := Regs[RegIndex].Copy(DataSize) - 1; 477 end; 478 479 procedure TCpu.InstructionXor; 480 var 481 RegIndex: TRegIndex; 482 RegIndex2: TRegIndex; 483 begin 484 RegIndex := ReadRegIndex; 485 RegIndex2 := ReadRegIndex; 486 Regs[RegIndex] := Regs[RegIndex] xor Regs[RegIndex2]; 487 end; 488 489 procedure TCpu.InstructionXorSize; 490 var 491 DataSize: TBigIntSize; 492 RegIndex: TRegIndex; 493 RegIndex2: TRegIndex; 494 begin 495 DataSize := ReadSize; 496 RegIndex := ReadRegIndex; 497 RegIndex2 := ReadRegIndex; 498 Regs[RegIndex] := Regs[RegIndex].Copy(DataSize) xor Regs[RegIndex2].Copy(DataSize); 499 end; 500 501 procedure TCpu.InstructionAnd; 502 var 503 RegIndex: TRegIndex; 504 RegIndex2: TRegIndex; 505 begin 506 RegIndex := ReadRegIndex; 507 RegIndex2 := ReadRegIndex; 508 Regs[RegIndex] := Regs[RegIndex] and Regs[RegIndex2]; 509 end; 510 511 procedure TCpu.InstructionAndSize; 512 var 513 DataSize: TBigIntSize; 514 RegIndex: TRegIndex; 515 RegIndex2: TRegIndex; 516 begin 517 DataSize := ReadSize; 518 RegIndex := ReadRegIndex; 519 RegIndex2 := ReadRegIndex; 520 Regs[RegIndex] := Regs[RegIndex].Copy(DataSize) and Regs[RegIndex2].Copy(DataSize); 521 end; 522 523 procedure TCpu.InstructionOr; 524 var 525 RegIndex: TRegIndex; 526 RegIndex2: TRegIndex; 527 begin 528 RegIndex := ReadRegIndex; 529 RegIndex2 := ReadRegIndex; 530 Regs[RegIndex] := Regs[RegIndex] or Regs[RegIndex2]; 531 end; 532 533 procedure TCpu.InstructionOrSize; 534 var 535 DataSize: TBigIntSize; 536 RegIndex: TRegIndex; 537 RegIndex2: TRegIndex; 538 begin 539 DataSize := ReadSize; 540 RegIndex := ReadRegIndex; 541 RegIndex2 := ReadRegIndex; 542 Regs[RegIndex] := Regs[RegIndex].Copy(DataSize) or Regs[RegIndex2].Copy(DataSize); 471 543 end; 472 544 … … 507 579 FInstructions[inDec] := InstructionDec; 508 580 FInstructions[inDecSize] := InstructionDecSize; 581 FInstructions[inXor] := InstructionXor; 582 FInstructions[inXorSize] := InstructionXorSize; 583 FInstructions[inAnd] := InstructionAnd; 584 FInstructions[inAndSize] := InstructionAndSize; 585 FInstructions[inOr] := InstructionOr; 586 FInstructions[inOrSize] := InstructionOrSize; 509 587 end; 510 588
Note:
See TracChangeset
for help on using the changeset viewer.