MIXAL
src
machine_conversion.cpp
Go to the documentation of this file.
1
#include <iostream>
2
#include "
machine.h
"
3
9
namespace
mixal {
10
15
void
Computer::executeNUM() {
16
int64_t num = 0;
17
for
(
int
i = 1; i <= 5; ++i) {
18
num = num * 10 +
rA
[i] % 10;
19
}
20
for
(
int
i = 1; i <= 5; ++i) {
21
num = num * 10 +
rX
[i] % 10;
22
}
23
bool
negative =
rA
.negative;
24
if
(num >= (1 << 30)) {
25
overflow
=
true
;
26
num %= (1 << 30);
27
}
28
rA
.
set
(num);
29
rA
.negative = negative;
30
}
31
33
void
Computer::executeCHAR() {
34
int32_t num = std::abs(
rA
.
value
());
35
for
(
int
i = 5; i >= 1; --i) {
36
rX
[i] = 30 + num % 10;
37
num /= 10;
38
}
39
for
(
int
i = 5; i >= 1; --i) {
40
rA
[i] = 30 + num % 10;
41
num /= 10;
42
}
43
}
44
45
};
// namespace mixal
mixal::Computer::rX
Register5 rX
Definition:
machine.h:32
machine.h
The virtual machine.
mixal::Computer::overflow
bool overflow
Definition:
machine.h:35
mixal::ComputerWord::value
int32_t value() const
Definition:
memory.cpp:132
mixal::ComputerWord::set
void set(int32_t value)
Definition:
memory.cpp:178
mixal::Computer::rA
Register5 rA
Definition:
machine.h:32
Generated by
1.8.20