-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
131 lines (108 loc) · 5.46 KB
/
index.html
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<html>
<head>
<meta charset="utf-8">
<title>VM</title>
<style type="text/css">
.instructionsBlock {
padding: 5px;
width: 550px;
/* height: 600px;*/
padding-right: 20px;
border: solid 2px #fced3f;
color: #EEEEEE;
font-size: 14px;
font-family: sans-serif;
float: right;
}
.codeWindow {
width: 400px;
height: 500px;
background: #00007a;
padding: 5px;
border: solid 2px #AAAAAA;
color: #EEEEEE;
font-family: Courier new, sans-serif;
font-weight:bold;
float: left;
}
.procElem {
width: 100px;
height: 40px;
background: #00007a;
border: solid 2px #AAAAAA;
color: #00AAAA;
font-family:sans-serif;
font-weight:bold;
}
.buttons {
color: #000000;
background: #AAAAAA;
font-family: sans-serif;
font-weight:bold;
}
.regs {
color: #CC1111;
font-weight:bold;
}
</style>
</head>
<body style="background-color: #00007a">
<textarea id = "codeWindow", class="codeWindow"></textarea>
<button class = "buttons" onclick="sumbitCode()">Ввод</button>
<button class = "buttons" onclick="machineStep()">Шаг</button>
<button class = "buttons" onclick="machineStart()">Старт</button>
<button class = "buttons" onclick="pasteGCDAlg()">НОД</button>
<button class = "buttons" onclick="pasteFactorialAlg()">Факт.</button>
<div class="instructionsBlock">
<b>Справка:</b>
<p><em>Интерфейс:</em></p>
Окно для ввода кода (слева). Ввод - занести код в память. Шаг - построчно выполнять команды. Старт - выполнить весь код сразу.
<p>Синтаксис команд:</p>
Бинарные инструкции: <b>инструкция_оператор1,оператор2;</b> комментарий<br>
Унарные инструкции: <b>инструкция_оператор1;</b> комментарий <br>
Комментарии не обязательны. Строка обязательно должна заканчиваться символом "<b>;</b>".Так же можно использовать метки: <b>метка:_инструкция_...;</b>комментарий. Имена меток не должны содержать пробелов.
<p><em>Список и описание инструкций:</em>(можно писать маленькими буквами) </p>
<em><b>Бинарные:</b></em> <b>"MOV"</b> - положить значение в регистр, <b>"CMP"</b> - Сравнение левого операнда с правым(Результаты используются в операторах перехода см.унарные инструкции переходы);<br>След. инструкции производят операцю над операндами и кладут результат в левый операнд (должен быть регистр): <b>"ADD"</b> - сложение; <b>"SUB"</b> - вычитание; <b>"MUL"</b> - умножение; <b>"DIV"</b> - деление; <b>"RDV"</b> - остаток от деления;
<br>
<em><b>Унарные:</b></em>
<br>
След. инструкции проводятся над регистром: <b>"DEC"</b> - уменьшить на 1; <b>"INC"</b> - увеличть на 1; <b>"NEG"</b> - сделать отрицательным; <b>"POS"</b> - сделать положительным;<br>
След. инструкции проводятся над метками, на основе результата команды CMP : <b>"JMP"</b> - Безусловный переход к метке; <b>"JPU"</b> - переход если неравны; <b>"JPE"</b> - переход если равны; <b>"JPL"</b> - переход если меньше; <b>"JPG"</b> - переход если больше;
<br>
<b><em>Специальные(Без аргументов):</b></em> <b>"EXT"</b> выход из программы
</div>
<table>
<tr>
<td><div style = "color: #AAAAAA; font-weight:bold">IP:</div></td>
<td> <input id = "IP" class="procElem" value = 0> </td>
<td><div id = "ERF" class="procElem">ERF : false</div></td>
</tr>
<tr>
<td> <div class = "regs">r0:</div></td><td> <input id = "r0" class="procElem" value = 0> </td>
<td><div id = "CMPUF" class="procElem">CMPUF : false</div></td>
</tr>
<tr>
<td> <div class = "regs">r1:</div></td><td> <input id = "r1" class="procElem" value = 0> </td>
<td><div id = "CMPEF" class="procElem">CMPEF : false</div></td>
</tr>
<tr>
<td> <div class = "regs">r2:</div></td><td> <input id = "r2" class="procElem" value = 0> </td>
<td><div id = "CMPLF" class="procElem">CMPLF : false</div></td>
</tr>
<tr>
<td> <div class = "regs">r3:</div></td><td> <input id = "r3" class="procElem" value = 0> </td>
<td><div id = "CMPGF" class="procElem">CMPGF : false</div></td>
</tr>
<tr>
<td> <div class = "regs">r4:</div></td><td> <input id = "r4" class="procElem" value = 0> </td>
</tr>
<tr>
<td> <div class = "regs">r5:</div></td><td> <input id = "r5" class="procElem" value = 0> </td>
</tr>
</table>
<script type="text/javascript" src="memory.js"></script>
<script type="text/javascript" src="procINSTR.js"></script>
<script type="text/javascript" src="proc.js"></script>
<script type="text/javascript" src="machine.js"></script>
</body>
</html>