vistaでquartus その42

#概要

vistaでquartusやってみた。
俺cpuで、練習問題、やってみた。
aluを拡張した。(<<,>>,&)

#4桁の１６進文字を２進に変換して、１６進４桁で出力せよ。


```
mem[12'h000] = 16'h1030;//       push  '0'
mem[12'h001] = 16'h309d;//       set  i
mem[12'h002] = 16'h1030;//       push  '0'
mem[12'h003] = 16'h309e;//       set  j
mem[12'h004] = 16'h1035;//       push  '5'
mem[12'h005] = 16'h309f;//       set  k
mem[12'h006] = 16'h1035;//       push  '5'
mem[12'h007] = 16'h30a0;//       set  l
mem[12'h008] = 16'h209d;//       get  i
mem[12'h009] = 16'he000;//       out
mem[12'h00a] = 16'h209e;//       get  j
mem[12'h00b] = 16'he000;//       out
mem[12'h00c] = 16'h209f;//       get  k
mem[12'h00d] = 16'he000;//       out
mem[12'h00e] = 16'h20a0;//       get  l
mem[12'h00f] = 16'he000;//       out
mem[12'h010] = 16'h103d;//       push  '='
mem[12'h011] = 16'he000;//       out
mem[12'h012] = 16'h209d;//       get  i
mem[12'h013] = 16'h1030;//       push  48
mem[12'h014] = 16'hf003;//       -
mem[12'h015] = 16'h309d;//       set  i
mem[12'h016] = 16'h209d;//       get  i
mem[12'h017] = 16'h1009;//       push  9
mem[12'h018] = 16'hf002;//       >
mem[12'h019] = 16'h601e;//       jnz  tu3
mem[12'h01a] = 16'h209d;//       get  i
mem[12'h01b] = 16'h1027;//       push  39
mem[12'h01c] = 16'hf003;//       -
mem[12'h01d] = 16'h309d;//       set  i
mem[12'h01e] = 16'h209d;//tu3:  get  i
mem[12'h01f] = 16'h100c;//       push  12
mem[12'h020] = 16'hf007;//       <<
mem[12'h021] = 16'h309d;//       set  i
mem[12'h022] = 16'h209e;//       get  j
mem[12'h023] = 16'h1030;//       push  48
mem[12'h024] = 16'hf003;//       -
mem[12'h025] = 16'h309e;//       set  j
mem[12'h026] = 16'h209e;//       get  j
mem[12'h027] = 16'h1009;//       push  9
mem[12'h028] = 16'hf002;//       >
mem[12'h029] = 16'h602e;//       jnz  tu2
mem[12'h02a] = 16'h209e;//       get  j
mem[12'h02b] = 16'h1027;//       push  39
mem[12'h02c] = 16'hf003;//       -
mem[12'h02d] = 16'h309e;//       set  j
mem[12'h02e] = 16'h209e;//tu2:  get  j
mem[12'h02f] = 16'h1008;//       push  8
mem[12'h030] = 16'hf007;//       <<
mem[12'h031] = 16'h209d;//       get  i
mem[12'h032] = 16'hf000;//       +
mem[12'h033] = 16'h309d;//       set  i
mem[12'h034] = 16'h209f;//       get  k
mem[12'h035] = 16'h1030;//       push  48
mem[12'h036] = 16'hf003;//       -
mem[12'h037] = 16'h309f;//       set  k
mem[12'h038] = 16'h209f;//       get  k
mem[12'h039] = 16'h1009;//       push  9
mem[12'h03a] = 16'hf002;//       >
mem[12'h03b] = 16'h6040;//       jnz  tu1
mem[12'h03c] = 16'h209f;//       get  k
mem[12'h03d] = 16'h1027;//       push  39
mem[12'h03e] = 16'hf003;//       -
mem[12'h03f] = 16'h309f;//       set  k
mem[12'h040] = 16'h209f;//tu1:  get  k
mem[12'h041] = 16'h1004;//       push  4
mem[12'h042] = 16'hf007;//       <<
mem[12'h043] = 16'h209d;//       get  i
mem[12'h044] = 16'hf000;//       +
mem[12'h045] = 16'h309d;//       set  i
mem[12'h046] = 16'h20a0;//       get  l
mem[12'h047] = 16'h1030;//       push  48
mem[12'h048] = 16'hf003;//       -
mem[12'h049] = 16'h30a0;//       set  l
mem[12'h04a] = 16'h20a0;//       get  l
mem[12'h04b] = 16'h1009;//       push  9
mem[12'h04c] = 16'hf002;//       >
mem[12'h04d] = 16'h6052;//       jnz  tu0
mem[12'h04e] = 16'h20a0;//       get  l
mem[12'h04f] = 16'h1027;//       push  39
mem[12'h050] = 16'hf003;//       -
mem[12'h051] = 16'h30a0;//       set  l
mem[12'h052] = 16'h20a0;//tu0:  get  l
mem[12'h053] = 16'h209d;//       get  i
mem[12'h054] = 16'hf000;//       +
mem[12'h055] = 16'h309d;//       set  i
mem[12'h056] = 16'h209d;//       get  i
mem[12'h057] = 16'h100c;//       push  12
mem[12'h058] = 16'hf008;//       >>
mem[12'h059] = 16'h100f;//       push  15
mem[12'h05a] = 16'hf009;//       &
mem[12'h05b] = 16'h1030;//       push  48
mem[12'h05c] = 16'hf000;//       +
mem[12'h05d] = 16'h30a0;//       set  l
mem[12'h05e] = 16'h20a0;//       get  l
mem[12'h05f] = 16'h1039;//       push  57
mem[12'h060] = 16'hf002;//       >
mem[12'h061] = 16'h6066;//       jnz  to0
mem[12'h062] = 16'h20a0;//       get  l  
mem[12'h063] = 16'h1027;//       push  39
mem[12'h064] = 16'hf000;//       +
mem[12'h065] = 16'h30a0;//       set  l
mem[12'h066] = 16'h20a0;//to0:  get  l
mem[12'h067] = 16'he000;//       out
mem[12'h068] = 16'h209d;//       get  i
mem[12'h069] = 16'h1008;//       push  8
mem[12'h06a] = 16'hf008;//       >>
mem[12'h06b] = 16'h100f;//       push  15
mem[12'h06c] = 16'hf009;//       &
mem[12'h06d] = 16'h1030;//       push  48
mem[12'h06e] = 16'hf000;//       +
mem[12'h06f] = 16'h30a0;//       set  l
mem[12'h070] = 16'h20a0;//       get  l
mem[12'h071] = 16'h1039;//       push  57
mem[12'h072] = 16'hf002;//       >
mem[12'h073] = 16'h6078;//       jnz  to1
mem[12'h074] = 16'h20a0;//       get  l  
mem[12'h075] = 16'h1027;//       push  39
mem[12'h076] = 16'hf000;//       +
mem[12'h077] = 16'h30a0;//       set  l
mem[12'h078] = 16'h20a0;//to1:  get  l
mem[12'h079] = 16'he000;//       out
mem[12'h07a] = 16'h209d;//       get  i
mem[12'h07b] = 16'h1004;//       push  4
mem[12'h07c] = 16'hf008;//       >>
mem[12'h07d] = 16'h100f;//       push  15
mem[12'h07e] = 16'hf009;//       &
mem[12'h07f] = 16'h1030;//       push  48
mem[12'h080] = 16'hf000;//       +
mem[12'h081] = 16'h30a0;//       set  l
mem[12'h082] = 16'h20a0;//       get  l
mem[12'h083] = 16'h1039;//       push  57
mem[12'h084] = 16'hf002;//       >
mem[12'h085] = 16'h608a;//       jnz  to2
mem[12'h086] = 16'h20a0;//       get  l  
mem[12'h087] = 16'h1027;//       push  39
mem[12'h088] = 16'hf000;//       +
mem[12'h089] = 16'h30a0;//       set  l
mem[12'h08a] = 16'h20a0;//to2:  get  l
mem[12'h08b] = 16'he000;//       out
mem[12'h08c] = 16'h209d;//       get  i
mem[12'h08d] = 16'h100f;//       push  15
mem[12'h08e] = 16'hf009;//       &
mem[12'h08f] = 16'h1030;//       push  48
mem[12'h090] = 16'hf000;//       +
mem[12'h091] = 16'h30a0;//       set  l
mem[12'h092] = 16'h20a0;//       get  l
mem[12'h093] = 16'h1039;//       push  57
mem[12'h094] = 16'hf002;//       >
mem[12'h095] = 16'h609a;//       jnz  to3
mem[12'h096] = 16'h20a0;//       get  l  
mem[12'h097] = 16'h1027;//       push  39
mem[12'h098] = 16'hf000;//       +
mem[12'h099] = 16'h30a0;//       set  l
mem[12'h09a] = 16'h20a0;//to3:  get  l
mem[12'h09b] = 16'he000;//       out
mem[12'h09c] = 16'h409c;//bye:  jmp  bye
mem[12'h09d] = 16'h0000;//i:  0x0000
mem[12'h09e] = 16'h0000;//j:  0x0000
mem[12'h09f] = 16'h0000;//k:  0x0000
mem[12'h0a0] = 16'h0000;//l:  0x0000


```

#実行結果

```
0055=0055
```


以上。