2023年06月01日
ハンドアセンブル
昨日も書いた通り、私はハンドアセンブルでずっとマシン語のプログラミングをしてきました。
ここまでのサンプルプログラム等を見ていただければすぐに解ると思いますが、BASICにDATAでマシン語コードを書き、POKE命令でメモリに書き込む方法です。 (2023年5月13日記事参照「 SPRITE EDITOR 活用方法 」)
確か「BASICマガジン」でこのやり方を覚え、それ以来ずっとこの方法でやってます。 (2023年3月28日記事参照「 いざ、プログラミング! 」)
この方法は、特にツールが要らないので手軽にできるメリットがあります。
逆に、マシン語コードは16進数(2進数)なのでコードを覚えるのが大変なのと、後で見直す時、コメントがないとプログラムを追い難いデメリットがあります。
ハンドアセンブルで特に大変なのが、飛び先指定です。
アセンブラ言語だとラベルが使えるので、ラベル指定しておけばアセンブルした際、自動で飛び先変更してくれますが、ハンドアセンブルだと、いちいち指定しないといけません。
一番面倒なのが、機能変更等でプログラムの途中にコード追加になった時です。
プログラムの間にコード追加するとアドレスが変わってしまい、飛び先が全部変わってくるので絶対にしたくありません。(と言うか、長いプログラムで最初の方に追加となるとまず無理!)
なので、その時は追加になったプログラムを無理やりサブルーチン化するか、最後に追加して本来入れないといけない部分から飛ばずかの2択でやっていました。
これをやると、後から追うのが尚一層困難になってしまうので、可能な限りサブルーチン化していました。
今からマシン語を始められる方は、小さな部品的なルーチンならハンドアセンブルでいいと思いますが、長いプログラムを書く時はアセンブラ言語を使う事をお勧めします。
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/12008398
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック