fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7. // Эмуляция памяти (размер 65536 байт)
  8. vector<unsigned char> memory(65536, 0);
  9.  
  10. // Регистры
  11. unsigned short AX = 0, BX = 0, CX = 0;
  12.  
  13. // Имитация данных в памяти по адресам 0x304 и 0x300
  14. memory[0x304] = 0x04; // Младший байт значения 4
  15. memory[0x305] = 0x00; // Старший байт значения 4
  16. memory[0x300] = 0x06; // Младший байт значения 6
  17. memory[0x301] = 0x00; // Старший байт значения 6
  18.  
  19. // Эмуляция инструкций
  20. // MOV AX, [0304]
  21. AX = (memory[0x305] << 8) | memory[0x304]; // Чтение 16-битного значения из памяти
  22.  
  23. // MOV BX, 0300
  24. BX = 0x0300;
  25.  
  26. // MOV CX, [BX]
  27. CX = (memory[BX + 1] << 8) | memory[BX];
  28.  
  29. // ADD AX, CX
  30. AX += CX;
  31.  
  32. // Вывод результата
  33. cout << "AX = " << (int)AX << endl; // Вывод значения AX
  34.  
  35. return 0;
  36. }
  37.  
Success #stdin #stdout 0s 5284KB
stdin
45
stdout
AX = 10