7
7
8
8
9
9
int main (int argc, char *argv[]){
10
-
11
- std::cout<<" =========lc3==========" <<std::endl;
12
10
lc3::VM vm;
13
11
std::vector<uint16_t > prog;
14
12
prog.push_back (0b0001000000100000 ); /* ADD R0 R0 0 */
13
+ prog.push_back (0b0001011011101111 ); /* ADD R3 R3 15 */
14
+ prog.push_back (0b0001011011000011 ); /* ADD R3 R3 R3 */
15
+ prog.push_back (0b0001011011000011 ); /* ADD R3 R3 R3 */
16
+ prog.push_back (0b0001011011100101 ); /* ADD R3 R3 4 */
17
+ prog.push_back (0b0001011011100111 ); /* ADD R3 R3 7 */
18
+ prog.push_back (0b0111011000000000 ); /* STR R3 R0 0 (h 72)*/
19
+ prog.push_back (0b0001011011111101 ); /* ADD R3 R3 -3 */
20
+ prog.push_back (0b0111011000000001 ); /* STR R3 R0 1 (e 69)*/
21
+ prog.push_back (0b0001011011100111 ); /* ADD R3 R3 7 */
22
+ prog.push_back (0b0111011000000010 ); /* STR R3 R0 2 (l 76)*/
23
+ prog.push_back (0b0111011000000011 ); /* STR R3 R0 3 (l 76)*/
24
+ prog.push_back (0b0001011011100011 ); /* ADD R3 R3 3 */
25
+ prog.push_back (0b0111011000000100 ); /* STR R3 R0 4 (o 79)*/
26
+ prog.push_back (0b0001011011110000 ); /* ADD R3 R3 -16 */
27
+ prog.push_back (0b0001011011110000 ); /* ADD R3 R3 -16 */
28
+ prog.push_back (0b0001011011111101 ); /* ADD R3 R3 -3 */
29
+ prog.push_back (0b0111011000000101 ); /* STR R3 R0 5 (, 44)*/
30
+ prog.push_back (0b0001011011101111 ); /* ADD R3 R3 15 */
31
+ prog.push_back (0b0001011011101111 ); /* ADD R3 R3 15 */
32
+ prog.push_back (0b0001011011101101 ); /* ADD R3 R3 13 */
33
+ prog.push_back (0b0111011000000110 ); /* STR R3 R0 6 (w 87)*/
34
+ prog.push_back (0b0001011011111000 ); /* ADD R3 R3 -8 */
35
+ prog.push_back (0b0111011000000111 ); /* STR R3 R0 7 (o 79)*/
36
+ prog.push_back (0b0001011011100011 ); /* ADD R3 R3 3 */
37
+ prog.push_back (0b0111011000001000 ); /* STR R3 R0 8 (r 82)*/
38
+ prog.push_back (0b0001011011111010 ); /* ADD R3 R3 -6 */
39
+ prog.push_back (0b0111011000001001 ); /* STR R3 R0 9 (l 76)*/
40
+ prog.push_back (0b0001011011111000 ); /* ADD R3 R3 -8 */
41
+ prog.push_back (0b0111011000001010 ); /* STR R3 R0 10 (d 68)*/
42
+ prog.push_back (0b0001011011110000 ); /* ADD R3 R3 -16 */
43
+ prog.push_back (0b0001011011110000 ); /* ADD R3 R3 -16 */
44
+ prog.push_back (0b0001011011111101 ); /* ADD R3 R3 -3 */
45
+ prog.push_back (0b0111011000001011 ); /* STR R3 R0 11 (! 33)*/
46
+ prog.push_back (0b0001011011110000 ); /* ADD R3 R3 -16 */
47
+ prog.push_back (0b0001011011111011 ); /* ADD R3 R3 -5 */
48
+ prog.push_back (0b0111011000001100 ); /* STR R3 R0 12 (enter 10)*/
49
+ prog.push_back (0b0001001001100000 ); /* ADD R1 R1 0 */
50
+ prog.push_back (0b0111011000101101 ); /* STR R3 R1 13 */
51
+ prog.push_back (0b1111000000100010 ); /* trap puts R0 */
52
+ prog.push_back (0b0001000000100000 ); /* ADD R0 R0 0 */
15
53
prog.push_back (0b0001001001101111 ); /* ADD R1 R1 15 */
16
54
prog.push_back (0b0001000001000001 ); /* ADD R0 R1 R1 */
17
55
prog.push_back (0b0001000000100010 ); /* ADD R0 R0 2 */
@@ -20,6 +58,11 @@ int main(int argc, char *argv[]){
20
58
prog.push_back (0b0001000000100001 ); /* ADD R0 R0 1 */
21
59
prog.push_back (0b1111000000100001 ); /* trap out R0 */
22
60
}
61
+ prog.push_back (0b1111000000100011 ); /* trap in */
62
+ prog.push_back (0b1111000000100011 ); /* trap in */
63
+ prog.push_back (0b1111000000100011 ); /* trap in */
64
+ prog.push_back (0b1111000000100011 ); /* trap in */
65
+ prog.push_back (0b1111000000100011 ); /* trap in */
23
66
prog.push_back (0b1111000000100101 ); /* trap halt */
24
67
vm.loadProgram (prog);
25
68
vm.run ();
0 commit comments