検索
<< 2023年06月 >>
1 2 3
4 5 6 7 8 9 10
18 19 20 21 22 23 24
25 26 27 28 29 30
広告
駿河屋レトロゲーム
最新記事
ブログランキング
にほんブログ村 ゲームブログ ゲーム制作へ
プロフィール
J-JSOFTさんの画像
J-JSOFT
高校時代、あれほど熱心に取り組んだMSXに触れなくなって30年余…。 MSXエミュレータとの出会いで、MSX愛が再燃中。
カテゴリーアーカイブ
ファン
QRコード

2023年06月01日

ハンドアセンブル


昨日も書いた通り、私はハンドアセンブルでずっとマシン語のプログラミングをしてきました。
ここまでのサンプルプログラム等を見ていただければすぐに解ると思いますが、BASICにDATAでマシン語コードを書き、POKE命令でメモリに書き込む方法です。 (2023年5月13日記事参照「 SPRITE EDITOR 活用方法 」)
6_3_1.png
確か「BASICマガジン」でこのやり方を覚え、それ以来ずっとこの方法でやってます。 (2023年3月28日記事参照「 いざ、プログラミング! 」)
この方法は、特にツールが要らないので手軽にできるメリットがあります。
逆に、マシン語コードは16進数(2進数)なのでコードを覚えるのが大変なのと、後で見直す時、コメントがないとプログラムを追い難いデメリットがあります。

ハンドアセンブルで特に大変なのが、飛び先指定です。
アセンブラ言語だとラベルが使えるので、ラベル指定しておけばアセンブルした際、自動で飛び先変更してくれますが、ハンドアセンブルだと、いちいち指定しないといけません。
一番面倒なのが、機能変更等でプログラムの途中にコード追加になった時です。
プログラムの間にコード追加するとアドレスが変わってしまい、飛び先が全部変わってくるので絶対にしたくありません。(と言うか、長いプログラムで最初の方に追加となるとまず無理!)
なので、その時は追加になったプログラムを無理やりサブルーチン化するか、最後に追加して本来入れないといけない部分から飛ばずかの2択でやっていました。
これをやると、後から追うのが尚一層困難になってしまうので、可能な限りサブルーチン化していました。

今からマシン語を始められる方は、小さな部品的なルーチンならハンドアセンブルでいいと思いますが、長いプログラムを書く時はアセンブラ言語を使う事をお勧めします。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | MSX雑記
Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: