0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

俺cpuAdvent Calendar 2020

Day 18

vistaでquartus その30

Last updated at Posted at 2020-08-22

#概要

vistaでquartusやってみた。
アセンブラ作ってみた。

#参考にしたページ

#アセンブラ仕様

ニーモニック 意味 stackの状態 code
% stack-1, stackの剰余を求める。 1個減る f00
+ stack-1, stackの加算を求める。 1個減る f000
/ stack-1, stackの除算を求める。 1個減る f00
* stack-1, stackの乗算を求める。 1個減る f002
- stack-1, stackの減算を求める。 1個減る f001
= stack-1, stackの等しいを求める。 1個減る f00a
> stack-1, stackの大を求める。 1個減る f00e
< stack-1, stackの小を求める。 1個減る f00f
push 1 stackに整数1を積む。 1個増える 1001
set i 変数iにstackを入れる。 1個減る 300i
get i stackに、変数iの値を入れる。 1個増える 200i
out stackを数値で印字する。 1個減る e000
jz i stackが真ならiへ飛ぶ。 1個減る 500i
jnz i stackが偽ならiへ飛ぶ。 1個減る 600i
jmp i 無条件でiへ飛ぶ。 変化無し 400i

#ソース

push 'h'
out
push 'e'
out
push 'l'
out
push 'l'
out
push 'o'
out
push ' '
out
push 'w'
out
push 'o'
out
push 'r'    
out
push 'l'
out
push 'd'
out
push '!'
out
loop:
jmp loop

    

#結果

mem[12'h000]=16'h1068 ; //             push 'h'
mem[12'h001]=16'he000 ; //             out
mem[12'h002]=16'h1065 ; //             push 'e'
mem[12'h003]=16'he000 ; //             out
mem[12'h004]=16'h106c ; //             push 'l'
mem[12'h005]=16'he000 ; //             out
mem[12'h006]=16'h106c ; //             push 'l'
mem[12'h007]=16'he000 ; //             out
mem[12'h008]=16'h106f ; //             push 'o'
mem[12'h009]=16'he000 ; //             out
mem[12'h00a]=16'h1NaN ; //             push ' '
mem[12'h00b]=16'he000 ; //             out
mem[12'h00c]=16'h1077 ; //             push 'w'
mem[12'h00d]=16'he000 ; //             out
mem[12'h00e]=16'h106f ; //             push 'o'
mem[12'h00f]=16'he000 ; //             out
mem[12'h010]=16'h1072 ; //             push 'r'    
mem[12'h011]=16'he000 ; //             out
mem[12'h012]=16'h106c ; //             push 'l'
mem[12'h013]=16'he000 ; //             out
mem[12'h014]=16'h1064 ; //             push 'd'
mem[12'h015]=16'he000 ; //             out
mem[12'h016]=16'h1021 ; //             push '!'
mem[12'h017]=16'he000 ; //             out
mem[12'h018]=16'h4018 ; //loop:  jmp loop

#成果物

#実機実行結果

無題.jpg

以上。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?