OpenCores
URL https://opencores.org/ocsvn/igor/igor/trunk

Subversion Repositories igor

[/] [igor/] [trunk/] [microprogram_assembler/] [simplemc.lisp] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 atypic
(in-package #:mcasm)
2
 
3
(defun write-microprogram (&key (output-format :simulator))
4
  (with-assembly ("/tmp/microcode" :output-format output-format)
5
    (%set-type-imm $zero +type-int+)
6
    (%set-datum-imm $zero 0)
7
    (%set-type-imm $one +type-int+)
8
    (%set-datum-imm $one 1)
9
    (%set-type-imm $two +type-int+)
10
    (%set-datum-imm $two 2)
11
 
12
    (%set-type-imm $tmp1 +type-int+)
13
    (%set-type-imm $tmp2 +type-int+)
14
 
15
    ;; do something (here, an %add) #x42 times:
16
    (%set-datum-imm $tmp1 #x42)
17
    (%set-datum-imm $tmp2 0)
18
    :loop1
19
    (%add $tmp2 $one)
20
    (%decr $tmp1)
21
    (branchimm-false :loop1)
22
 
23
    ;; do something else (here, a %sub) #x4 times:
24
    (%set-datum-imm $tmp1 #x4)
25
    :loop2
26
    (%sub $tmp2 $one)
27
    (%decr $tmp1)
28
    (branchimm-false :loop2)
29
 
30
    (%halt)))

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.