vistaでquartus その40

#概要

vistaでquartusやってみた。
俺言語をコンパイルして、俺cpuのアセンブラにかけた。
焼いてみた。

#写真

![無題.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/e066ce77-97ca-83e7-45d8-52aef8693e4f.jpeg)

#アセンブル結果

```
mem[12'h000] = 16'h1000;//       push  0
mem[12'h001] = 16'h3049;//       set  a
mem[12'h002] = 16'h10ea;//       push  234
mem[12'h003] = 16'h304a;//       set  b
mem[12'h004] = 16'h204a;//label30:  get  b
mem[12'h005] = 16'h1005;//       push  5
mem[12'h006] = 16'hf004;//       *
mem[12'h007] = 16'h304a;//       set  b
mem[12'h008] = 16'h204a;//       get  b
mem[12'h009] = 16'h1001;//       push  1
mem[12'h00a] = 16'hf000;//       +
mem[12'h00b] = 16'h304a;//       set  b
mem[12'h00c] = 16'h204a;//       get  b
mem[12'h00d] = 16'h1078;//       push  120
mem[12'h00e] = 16'hf002;//       <
mem[12'h00f] = 16'h5021;//       jz  label100
mem[12'h010] = 16'h107a;//       push  'z'
mem[12'h011] = 16'he000;//       out
mem[12'h012] = 16'h1075;//       push  'u'
mem[12'h013] = 16'he000;//       out
mem[12'h014] = 16'h106e;//       push  'n'
mem[12'h015] = 16'he000;//       out
mem[12'h016] = 16'h1020;//       push  32
mem[12'h017] = 16'he000;//       out
mem[12'h018] = 16'h2049;//       get  a
mem[12'h019] = 16'h1001;//       push  1
mem[12'h01a] = 16'hf000;//       +
mem[12'h01b] = 16'h3049;//       set  a
mem[12'h01c] = 16'h2049;//       get  a
mem[12'h01d] = 16'h1004;//       push  4
mem[12'h01e] = 16'hf001;//       >
mem[12'h01f] = 16'h502e;//       jz  label130
mem[12'h020] = 16'h4004;//       jmp  label30
mem[12'h021] = 16'h1064;//label100:  push  'd'
mem[12'h022] = 16'he000;//       out
mem[12'h023] = 16'h106f;//       push  'o'
mem[12'h024] = 16'he000;//       out
mem[12'h025] = 16'h106b;//       push  'k'
mem[12'h026] = 16'he000;//       out
mem[12'h027] = 16'h106f;//       push  'o'
mem[12'h028] = 16'he000;//       out
mem[12'h029] = 16'h1020;//       push  32
mem[12'h02a] = 16'he000;//       out
mem[12'h02b] = 16'h1000;//       push  0
mem[12'h02c] = 16'h3049;//       set  a
mem[12'h02d] = 16'h4004;//       jmp  label30
mem[12'h02e] = 16'h1064;//label130:  push  'd'
mem[12'h02f] = 16'he000;//       out
mem[12'h030] = 16'h106f;//       push  'o'
mem[12'h031] = 16'he000;//       out
mem[12'h032] = 16'h106b;//       push  'k'
mem[12'h033] = 16'he000;//       out
mem[12'h034] = 16'h106f;//       push  'o'
mem[12'h035] = 16'he000;//       out
mem[12'h036] = 16'h1020;//       push  32
mem[12'h037] = 16'he000;//       out
mem[12'h038] = 16'h106b;//       push  'k'
mem[12'h039] = 16'he000;//       out
mem[12'h03a] = 16'h1069;//       push  'i'
mem[12'h03b] = 16'he000;//       out
mem[12'h03c] = 16'h1079;//       push  'y'
mem[12'h03d] = 16'he000;//       out
mem[12'h03e] = 16'h106f;//       push  'o'
mem[12'h03f] = 16'he000;//       out
mem[12'h040] = 16'h1073;//       push  's'
mem[12'h041] = 16'he000;//       out
mem[12'h042] = 16'h1069;//       push  'i'
mem[12'h043] = 16'he000;//       out
mem[12'h044] = 16'h1021;//       push  '!'
mem[12'h045] = 16'he000;//       out
mem[12'h046] = 16'h1020;//       push  32
mem[12'h047] = 16'he000;//       out
mem[12'h048] = 16'h4048;//end:  jmp  end
mem[12'h049] = 16'h0000;//a:  0x0000  
mem[12'h04a] = 16'h0000;//b:  0x0000

```

#修正点

aluを16bit から8bitへ

以上。