4ensiX

4ensiX

Forensics専門でなければ、CTFはDFIRの勉強にほとんど役立たないことをを知ったこの頃

ZK-80エミュレータに触れる

最近Z80マイコンに触れる機会があったので、ちょっとだけ、ほんのちょっとだけZ80の話をします。かなり雑な記事なのでZ80エミュレータのリンクを踏むためだけに訪れてほしい。

Z80

 1976年に発表された8ビットのマイクロプロセッサ。80年代中頃まではパーソナルコンピュータのCPUとして使われて、現在でも組み込み機器など目に見えないところで活躍してるらしい。パチスロのコアCPUには暗号機能を付与したZ80ベースのカスタムLSIが使われている。「ゼッぱち」て呼ばれると聞いたけど、そんな呼び方聞いたことが無い。

 

 

Z80で何をする

何をするってと、プログラミングする。何の言語でするのかと聞かれるとアセンブリ言語と答える。

ここでアセンブリ言語とは何かと聞かれる。ざっくりと説明すると、例えばC言語コンパイルされるときの過程を思い浮かべてほしい。ここも簡単に説明すると

C言語コンパイル

人が書く -> C言語 -> アセンブリ言語 -> 機械語 -> コンピュータが読んで実行する

この過程におけるアセンブリ言語機械語に近い、機械語に一対一対応した機械語よりも人に読みやすいものなのである。Z80ではこのアセンブリ言語のプログラミングをする。

 

 

アセンブリ言語プログラミング

現在のコンピュータは64bitで演算を行えるがZ80は主に8bitで演算を行う。また、現在のCPUは1.8GHzなどだがZ80は20KHzである。64bitのアセンブリ言語のプログラミングではなく8bitのアセンブリ言語のプログラミングなのでそれほど気負うことは無いと思う(CTF極めるなら64bitのアセンブリ言語のプログラミングぐらいできなきゃいけなさそう)。それでも、普通のプログラミング言語よりも少ない命令で命令にない動作を実現しなければいけないので難しい。

例えば、乗算命令がないので加算命令やシフト演算を駆使して再現する。

残念ながら、この記事は全くアセンブリ言語のプログラミングには触れずに、見つけたZ80エミュレータの話を軽く行って終える。

アセンブラなど:

qiita.com

wisdom.sakura.ne.jp

 

 

 

Z80エミュレータ

hp.vector.co.jp

hp.vector.co.jp

ZK-80となっているがZ80の動作をする。ちゃんと動く、しっかり動く。Microsoft EdgeじゃなくてChromeとかFirefoxでアクセスした方が使いやすい。使い方などは説明しない。興味があれば色々読んで試してほしい。このサイトにはZ80だけでなく8080Aを選択できるなど、隠し要素が多くあるらしい。

一応Z80の参考を貼っておく:

www.yamamo10.jp

www.ibe.kagoshima-u.ac.jp

ticalc.fc2web.com

使用していないから分からないが他にもエミュレータがあるらしい。

web版が合わないと感じた場合は色々と試してみると良いのでは。

www.cug.net

www016.upp.so-net.ne.jp

最後に

一体これは誰向けの記事だったのか、それは

Z80使いたいけど金無いし、作り方分からんし、作る気はないけどZ80に触りたい。

という方向けのリンク紹介記事でした。