問題タブ [68000]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - easy68k のマージソート
m68k でマージソートを行った人はいますか?
ありがとう。ジョン
assembly - 乱数の生成
1〜4の範囲のアセンブリコードを使用して乱数を生成するにはどうすればよいですか?
assembly - スタックでパラメーターを渡す
CPU スタック上の関数にパラメーターを渡すと、
パラメータを設定すると、JSR は戻りアドレスをスタックに置きます。つまり、関数では、他の項目を削除する前に、スタックの一番上の項目 (戻りアドレス) を取得する必要があります)
戻り値は慣例により register に格納されますD0
。
たとえば、次の正しい方法があります。
macos - 従来のMacOSがプログラムに入るとき、68000スタックには何がありますか?
古いクラシックMacアプリケーションのエントリポイントを理解しようとしています。最初のCODEリソースを分解しました(ジャンプテーブルであるCODE#0ではありません)。コードはスタックからいくつかの変数を参照します:0004(A7)の単語、長さが0004(A7)の値である000C(A7)で始まる長い単語の配列、およびその配列を超える最後の長い単語文字列へのポインタのようです。
長い単語の配列は一見文字列のように見えるため、「argv」配列がスタックフレームにインラインである点を除いて、表面的には(int argc、char ** argv)の状況を処理しているように見えます。
プログラムがMacOSによって最初に呼び出されたときに、プログラムがスタック/レジスタに何を期待する必要がありますか?
assembly - 異なる 68k シミュレーターには異なる TRAP タスクがありますか?
最近、Motorola 68000 のプログラミングを見直しています。確かに、私がコースを受講したとき、私は合格するために必要なことをしただけです(そしてひどい教授がいました)...しかし今、私は実際にそのようなものに興味があります. とにかく、私の古い教科書The 68000 Microprocessor by James L. Antonakosに目を通してみると、彼は次のコードを使用しています。
これはEasy68kではコンパイルされませんが、この本ではASM68K が参照されています。コードをこれに変更すると、うまくいきました。
これは単にコンパイラ間の違いによるものですか? それとも、ここでもっと大きなものを見逃していますか? シミュレーターでは、その時点でレジスター D0 にあるすべてのタスクが実行されることを理解していますが、TRAP #15
シミュレーターごとに異なるトラップ タスクがありますか、それとも 68000 プロセッサすべてで標準ですか?
assembly - 小数と分数をどのように格納しますか?
10.125 を保存したい場合はどうすればよいですか?
私はこれを持っています:
デバッグでは、次のように保存されます。
00001000=0000000A
それはそこに小数部分を取得していないようです。これはアセンブリ 68k です。
assembly - 68k アセンブリの基本的な for ループ?
とりわけ、for ループの使用を必要とするプログラムを作成しようとしています。このような基本的なコードの例を他の Web サイトで見つけるのに苦労しています。
誰かが私に簡単な for ループ、または私が見るべき命令さえも提供してくれれば、私はとても助かります。また、68k の初心者向けチュートリアルの良いリソースを知っている場合は、以下にコメントしてください。
ありがとう!
assembly - 住所録を更新するには?
私は Easy68k を使用して、while ループを含む単純なプログラムを作成しています。
レジスタ A0 が単語であるデータを指しているとします。これが機能しないのはなぜですか?
A0 が最初に数値 2 を指し、その後数値 4 を指している場合、最初の移動の後に 2 が格納され、インクリメントと 3 番目の移動の後に 4 が格納されるという結果が得られます。ただし、最後の移動は効果がありません。
assembly - 基本的なM68000の質問、NeoGeo関連
Motorola 68000アセンブラーでプログラムを作成したいのですが、ターゲットプラットフォームはNeo Geo(90年代のゲームコンソール)です。この質問は深刻な意味があり、実現したい特定のプロジェクトがあり、プログラミングの経験があります(最近は、ほとんどPerl / Rをプログラミングしていますが、アセンブリプログラミングに少ししか触れていません)。
Neo Geoには多くのドキュメントがありませんが、Alexander Stanteからのドキュメントが1つあります。このドキュメントには、フォーマットとスプライトの保存場所、メモリマップ、メモリマップされたレジスタの場所、グラフィックスとサウンドシステムの動作などに関する情報が含まれています。
したがって、68Kアセンブラーでプログラムを作成し、PCでアセンブルして、Neo Geo(またはテスト用に豊富に用意されているエミュレーター)から実行できるはずです。
私はM68アセンブラーのバックグラウンドを持っています。これは、私のCSマスター(10年前)のあるクラスのためのものでした。私たちはSunSparcstationで組み立て、プログラムを付属のボックスに送信しました。このボックスには、基本的にRAMが搭載されたM68Kが搭載されており、それ以外はほとんど搭載されていません。したがって、「純粋な」オブジェクトコードをCPUにロードすることが可能でした。
さて、Neo Geoについて私が理解していないのは、アセンブルされたコードをどの「フォーマット」に入れなければならないかということです。
つまり、68Kアセンブリで作成したプログラムをアセンブルした場合、エミュレータがROMイメージであると見なすように作成する方法、または物理的なNeoであるCD(またはCDZ)を作成する方法を教えてください。 Geo CDは受け入れますか?ファイル名やマジックヘッダーをチェックしますか?!だから私の質問は、アセンブルされたオブジェクトコードを正しい「ファイル形式」にするにはどうすればよいかということです。(申し訳ありませんが、それが正しい言葉かどうかさえわかりません)。
assembly - 浮動小数点 IEEE754 除算を 68k アセンブリまたは一般に実装するにはどうすればよいですか?
IEEE754 形式の 68k プロセッサ用の浮動小数点実装を作成する必要があり、他のすべての基本演算 (10 進数からの変換、加算、減算、乗算) を実行する方法を理解しましたが、方法がわかりません。分割をする。私の理解では、仮数を割ってから指数を減算することになっています。ただし、仮数を除算すると、別の浮動小数点が得られます。これは、私が望んでいるものでも使用できないものでもありません (68k プロセッサが提供する唯一の除算関数は、整数除算の結果と剰余の答えを表示するため)。
68kプロセッサでこの種の除算を行う方法の例を誰かが提供できますか、または一般的に私の制限がありますか?