diff options
Diffstat (limited to 'ue3/mycpu/instructions.h')
| -rw-r--r-- | ue3/mycpu/instructions.h | 57 |
1 files changed, 42 insertions, 15 deletions
diff --git a/ue3/mycpu/instructions.h b/ue3/mycpu/instructions.h index 0e4d99c..a52b991 100644 --- a/ue3/mycpu/instructions.h +++ b/ue3/mycpu/instructions.h | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | /** | 1 | /** |
| 2 | * @module instructions | 2 | * @module instructions |
| 3 | * @author Guenther Neuwirth (0626638), Manuel Mausz (0728348) | 3 | * @author Guenther Neuwirth (0626638), Manuel Mausz (0728348) |
| 4 | * @brief TODO | 4 | * @brief Implementations of CInstruction |
| 5 | * @date 10.05.2009 | 5 | * @date 10.05.2009 |
| 6 | */ | 6 | */ |
| 7 | 7 | ||
| @@ -14,7 +14,9 @@ | |||
| 14 | /** | 14 | /** |
| 15 | * @class CInstructionInc | 15 | * @class CInstructionInc |
| 16 | * | 16 | * |
| 17 | * TODO | 17 | * Implementation of assembler command "inc" |
| 18 | * Syntax: inc R1 | ||
| 19 | * (R1++) | ||
| 18 | */ | 20 | */ |
| 19 | class CInstructionInc | 21 | class CInstructionInc |
| 20 | : public CInstruction | 22 | : public CInstruction |
| @@ -41,7 +43,9 @@ class CInstructionInc | |||
| 41 | /** | 43 | /** |
| 42 | * @class CInstructionDec | 44 | * @class CInstructionDec |
| 43 | * | 45 | * |
| 44 | * TODO | 46 | * Implementation of assembler command "dec" |
| 47 | * Syntax: dec R1 | ||
| 48 | * (R1--) | ||
| 45 | */ | 49 | */ |
| 46 | class CInstructionDec | 50 | class CInstructionDec |
| 47 | : public CInstruction | 51 | : public CInstruction |
| @@ -68,7 +72,9 @@ class CInstructionDec | |||
| 68 | /** | 72 | /** |
| 69 | * @class CInstructionAdd | 73 | * @class CInstructionAdd |
| 70 | * | 74 | * |
| 71 | * TODO | 75 | * Implementation of assembler command "add" |
| 76 | * Syntax: add R1, R2, R3 | ||
| 77 | * (R1 = R2 + R3) | ||
| 72 | */ | 78 | */ |
| 73 | class CInstructionAdd | 79 | class CInstructionAdd |
| 74 | : public CInstruction | 80 | : public CInstruction |
| @@ -97,7 +103,9 @@ class CInstructionAdd | |||
| 97 | /** | 103 | /** |
| 98 | * @class CInstructionSub | 104 | * @class CInstructionSub |
| 99 | * | 105 | * |
| 100 | * TODO | 106 | * Implementation of assembler command "sub" |
| 107 | * Syntax: sub R1, R2, R3 | ||
| 108 | * (R1 = R2 - R3) | ||
| 101 | */ | 109 | */ |
| 102 | class CInstructionSub | 110 | class CInstructionSub |
| 103 | : public CInstruction | 111 | : public CInstruction |
| @@ -126,7 +134,9 @@ class CInstructionSub | |||
| 126 | /** | 134 | /** |
| 127 | * @class CInstructionMul | 135 | * @class CInstructionMul |
| 128 | * | 136 | * |
| 129 | * TODO | 137 | * Implementation of assembler command "mul" |
| 138 | * Syntax: mul R1, R2, R3 | ||
| 139 | * (R1 = R2 * R3) | ||
| 130 | */ | 140 | */ |
| 131 | class CInstructionMul | 141 | class CInstructionMul |
| 132 | : public CInstruction | 142 | : public CInstruction |
| @@ -155,7 +165,9 @@ class CInstructionMul | |||
| 155 | /** | 165 | /** |
| 156 | * @class CInstructionDiv | 166 | * @class CInstructionDiv |
| 157 | * | 167 | * |
| 158 | * TODO | 168 | * Implementation of assembler command "div" |
| 169 | * Syntax: div R1, R2, R3 | ||
| 170 | * (R1 = R2 / R3) | ||
| 159 | */ | 171 | */ |
| 160 | class CInstructionDiv | 172 | class CInstructionDiv |
| 161 | : public CInstruction | 173 | : public CInstruction |
| @@ -184,7 +196,9 @@ class CInstructionDiv | |||
| 184 | /** | 196 | /** |
| 185 | * @class CInstructionLoad | 197 | * @class CInstructionLoad |
| 186 | * | 198 | * |
| 187 | * TODO | 199 | * Implementation of assembler command "load" |
| 200 | * Syntax: load R1, R2 | ||
| 201 | * (R1 = memory[R2]) | ||
| 188 | */ | 202 | */ |
| 189 | class CInstructionLoad | 203 | class CInstructionLoad |
| 190 | : public CInstruction | 204 | : public CInstruction |
| @@ -212,7 +226,9 @@ class CInstructionLoad | |||
| 212 | /** | 226 | /** |
| 213 | * @class CInstructionStore | 227 | * @class CInstructionStore |
| 214 | * | 228 | * |
| 215 | * TODO | 229 | * Implementation of assembler command "store" |
| 230 | * Syntax: store R1, R2 | ||
| 231 | * (memory[R2] = R1) | ||
| 216 | */ | 232 | */ |
| 217 | class CInstructionStore | 233 | class CInstructionStore |
| 218 | : public CInstruction | 234 | : public CInstruction |
| @@ -240,7 +256,9 @@ class CInstructionStore | |||
| 240 | /** | 256 | /** |
| 241 | * @class CInstructionTest | 257 | * @class CInstructionTest |
| 242 | * | 258 | * |
| 243 | * TODO | 259 | * Implementation of assembler command "test" |
| 260 | * Syntax: test R1 | ||
| 261 | * (R1 == 0: zeroflag: true, R1 < 0: signflag: true) | ||
| 244 | */ | 262 | */ |
| 245 | class CInstructionTest | 263 | class CInstructionTest |
| 246 | : public CInstruction | 264 | : public CInstruction |
| @@ -267,7 +285,8 @@ class CInstructionTest | |||
| 267 | /** | 285 | /** |
| 268 | * @class CInstructionLabel | 286 | * @class CInstructionLabel |
| 269 | * | 287 | * |
| 270 | * TODO | 288 | * Implementation of assembler command "label" |
| 289 | * Syntax: label name: | ||
| 271 | */ | 290 | */ |
| 272 | class CInstructionLabel | 291 | class CInstructionLabel |
| 273 | : public CInstruction | 292 | : public CInstruction |
| @@ -294,7 +313,9 @@ class CInstructionLabel | |||
| 294 | /** | 313 | /** |
| 295 | * @class CInstructionJumpA | 314 | * @class CInstructionJumpA |
| 296 | * | 315 | * |
| 297 | * TODO | 316 | * Implementation of assembler command "jumpa" |
| 317 | * Syntax: jumpa labelname | ||
| 318 | * (jump to labelname) | ||
| 298 | */ | 319 | */ |
| 299 | class CInstructionJumpA | 320 | class CInstructionJumpA |
| 300 | : public CInstruction | 321 | : public CInstruction |
| @@ -321,7 +342,9 @@ class CInstructionJumpA | |||
| 321 | /** | 342 | /** |
| 322 | * @class CInstructionJumpZ | 343 | * @class CInstructionJumpZ |
| 323 | * | 344 | * |
| 324 | * TODO | 345 | * Implementation of assembler command "jumpz" |
| 346 | * Syntax: jumpz labelname | ||
| 347 | * (jump to labelname if zeroflag) | ||
| 325 | */ | 348 | */ |
| 326 | class CInstructionJumpZ | 349 | class CInstructionJumpZ |
| 327 | : public CInstruction | 350 | : public CInstruction |
| @@ -348,7 +371,9 @@ class CInstructionJumpZ | |||
| 348 | /** | 371 | /** |
| 349 | * @class CInstructionJumpS | 372 | * @class CInstructionJumpS |
| 350 | * | 373 | * |
| 351 | * TODO | 374 | * Implementation of assembler command "jumps" |
| 375 | * Syntax: jumps labelname | ||
| 376 | * (jump to labelname if signflag) | ||
| 352 | */ | 377 | */ |
| 353 | class CInstructionJumpS | 378 | class CInstructionJumpS |
| 354 | : public CInstruction | 379 | : public CInstruction |
| @@ -375,7 +400,9 @@ class CInstructionJumpS | |||
| 375 | /** | 400 | /** |
| 376 | * @class CInstructionWrite | 401 | * @class CInstructionWrite |
| 377 | * | 402 | * |
| 378 | * TODO | 403 | * Implementation of assembler command "write" |
| 404 | * Syntax: write DEV, R1 | ||
| 405 | * (write R1 to DEV, which is a name of a display) | ||
| 379 | */ | 406 | */ |
| 380 | class CInstructionWrite | 407 | class CInstructionWrite |
| 381 | : public CInstruction | 408 | : public CInstruction |
