質問: 今Assembly Language のテスト勉強をしているのですが、少し自分の理解が合っているのかがわかりません。それぞれのコードが何をしているのかを書いて見たのですが、答えは合っているのでしょうか?dcbの部分がわかりません。6502 のmnemonics のリストにはなかったので。お願いします。。。 jmp MAIN // MAINに移動。 INPUT: INPUT レーベル dcb $01 __**???わかりません** __ RESULT: // RESULT レーベル dcb $00 // ??? わかりません。 MAIN:// MAIN レーベル lda INPUT // a をINPUTに保存 pha // stack に加える。・??? jsr METHOD // METHODを呼ぶ?? sta RESULT // a をRESULT に保存?? pla // a を受け取る?? DONE: jmp DONE // forever loop?? METHOD: tsx // s をx に転送 lda $0103, x // わかりません。。。 clc // わかりません。 adc $0103, x // わかりません。 rts // わかりません。
回答: naomi3 さんが、殆ど説明されているので、 $:言語によって、&Hだったり、0X だったり、16進表記の記号と同じ、 ちなみに、アセンブラによっては、16進表記ではなく、8進表記のものもあるので、注意 Z80、8080などは、8進表記で表現すると、その命令がどのレジスタやハードを操作しようと しているのかが、直ぐにわかる様になっています。 ⇒当時は、日立始め、各社が独自ニーモニック表記を採用していたり、独自クロス開発環境があったり 混沌の時代でしたので、、、 また、償却終わってないから、なんて腐った理由で、 今でいう開発ホストが、10IIで、独自アセンブラだったりw。 ’ 検索ワード:6502 アーキテクチャー で、 MOS 6502:https://ja.wikipedia.org/wiki/MOS_6502 が探せると思います。そこの最下段のリンク 6502.org:http://www.6502.org/ Documents Archive http://www.6502.org/documents から、必要な資料を参照してみてください。 ’ Wiki の記述の、概要部分のうち 0から255番地までのメモリ(ゼロページ)を1バイト少ないコードでアクセスできる アドレッシングモードが豊富 Xレジスタでインデックストインダイレクト、Yレジスタでインダイレクトインデックストと動作が違う は、重要な部分です、実際扱う事は無いと思いますが。 ’ 当時のCPUで面白いのは、 東芝の12ビットCPU(PDP-11コンパチ命令)、 TIのCPU(超独自) NS32シリーズ MC6809:OS-9で、1MHzのCPUなのに、TSSで運用できた。 ’ OSでも、FLEX(6800/6809版CP/M)、MDOS、 TurboDOS(MultiCPU:Z80用OS)、歴史に埋もれた種々雑多。