-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathheaderFuncCode.cpp
More file actions
76 lines (68 loc) · 1.74 KB
/
headerFuncCode.cpp
File metadata and controls
76 lines (68 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include "headerFuncCode.hpp"
std::string generate_getChar(){
std::string result =
"\n_getchar:\n";
result += "\tli $v0, 12 \n";
result += "\tsyscall \n";
result += "\tjr $ra";
return result;
}
std::string generate_halt(){
std::string result =
"\n_halt:\n";
result += "\tli $v0, 10 \n";
result += "\tsyscall \n";
result += "\tjr $ra";
return result;
}
std::string generate_printb(){
std::string result =
"\n_printb:\n";
result += "\tli $v0, 1 \n";
result += "\tsyscall \n";
result += "\tjr $ra";
return result;
}
std::string generate_printc(){
std::string result =
"\n_printc:\n";
result += "\tli $v0, 11 \n";
result += "\tsyscall \n";
result += "\tjr $ra";
return result;
}
std::string generate_printi(){
std::string result =
"\n_printi:\n";
result += "\tli $v0, 1 \n";
result += "\tsyscall \n";
result += "\tjr $ra";
return result;
}
std::string generate_prints(){
std::string result=
"\n_prints:\n";
result += "\tli $s0, 0 # store 0 in $s0\n";
result += "\tmove $s1, $a0\n";
result += "W1: # Loop start\n " ;
result += "\tbeq $s0, $a1, EW1\n";
result += "\taddu $t1, $s1, $s0\n";
result += "\tlbu $a0, ($t1)\n";
result += "\tli $v0, 11\n";
result += "\tsyscall\n";
result += "\taddiu $s0, $s0, 1\n";
result += "\tj W1\n";
result += "EW1:\n";
result += "\tjr $ra";
return result;
}
std::string generate_error(){
std::string result=
"\nERROR:\n";
result += "\tli $v0, 4 # print error message ascii\n";
result += "\tsyscall \n";
result += "\tli $v0, 10 # halt\n";
result += "\tsyscall \n";
result += "\tjr $ra";
return result;
}