cryptoasm v0.0.1
CryptoAsm
CryptoAsmは仮想アセンブラです。
実行できる命令は1つ、データの移動だけです。
C言語のポインタの理解に役立ちます。
https://ztaku.github.io/cryptoasm/
レジスタ
レジスタにはaとpがあります。pはメモリのアドレスを指し示します。
mov p,a
pレジスタにaレジスタの値を入れます。
数値
mov a,1
aレジスタに数値の1を入れます。
メモリ
メモリには0番地から6番地があります。ここにデータを格納します。 番地のことをアドレスとも言います。
変数
変数i,j,kと配列lが使えます。 変数iはメモリの0番地、jは1番地、kは2番地に値を格納します。
mov j,a
aレジスタの値を変数j、つまりメモリの1番地に格納します。
mov a,k
変数k、つまりメモリの1番地の値をaレジスタに入れます。
配列
配列lはl0,l1,l2があり、 それぞれ3番地、4番地、5番地です。
mov a,l[1]
配列l1つまりメモリ4番地のデータをaレジスタに入れます。
mov l[0],a
aレジスタの値を配列l0つまりメモリ3番地に格納します。
ポインタ
pレジスタはアドレスを保持し、そのアドレスに格納されたデータに アクセスできます。
mov p,1
mov a,*p
pレジスタに1を入れます。 aレジスタに1番地の内容をいれます。
1番地の内容が10の時は10を、 1番地の内容が20の時は20を、aレジスタにいれます。
mov p,2
mov *p,a
pレジスタに2を入れます。 2番地にaレジスタにの内容をいれます。
ポインタ 2
mov p,2
mov *p+1,a
pに2を入れます。 それに1を足したアドレス、つまり3番地にaレジスタの値を格納します。
アドレス
変数のアドレスを取り出します。
mov p,&j
pレジスタに変数jのアドレス入れます。 変数jは1番地ですからpに数値1を入れることになります。
以下の命令はありません。
mov &j,p ;(NG)
&jは数値1を意味します。数値の1にpレジスタの値をいれることはできません。
命令行
実行する命令を並べてあります。 1行ずつ編集できます。
step実行ボタン
stepを押すと1命令ずつ実行します。
reset実行ボタン
resetを押すと最初の命令に戻ります。
insertボタン
insertを押すと命令行を増やすことができます。
インストール
mkdir crypto
cd crypto
npm install --save nw
プログラムの実行
nw.jsで実行できます。
..\node_modules.bin\nw
CryptoAsm is virtual assembler.
It is an assembler to understand the point of C language.
mov p,1 ; p <- 1. Register p has address 1 of memory. mov a,*p ; Register a <- Contents of memory address 1.
6 years ago