問題タブ [easy68k]

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.

0 投票する
1 に答える
1614 参照

assembly - Easy68k アセンブリ ORG ディレクティブ

同様の質問がされていることは知っていますが、とにかく聞いてください。

私は今学期にかなりの数の Easy68k プログラムを作成しましたが、org ディレクティブが常に $1000、または $2000、または $2500 に設定されている理由に興味があります。

答えは「個人的な慣習による」ですが、次のことを理解することにもっと興味があります。

  • org ディレクティブを設定する利点は何ですか。CPU は 0x0 から 0xffffffff まで何でも実行できるので、プログラムの開始を 0x1000 までオフセットする必要はありますか?

例えば:

動作しますが、下に 4096 バイトオフセットされます

も機能しますが、まったくオフセットされません

では、なぜこの指令が必要なのでしょうか? 特定の目的のために [0x0, 0x1000) を予約していないので、このオフセットを保持するポイントは何ですか?

ここまでの結論

  • Easy68k には、グローバル変数のデフォルトの場所がありません。それらは pc に配置されます (通常、慣例によりプログラムの最後に配置されます)。
  • Easy68k のデフォルトのスタック ポインタは 0 で、下方向に 0xffffffe まで成長します (ワード アラインメントされます)。これは、[0, 0x1000) 領域との競合がないことを意味します。実際、[0, 0x1000) 領域が破損する前にコードが破損します。

私は本当に興味があります。

お早めにどうぞ!

〜ドミトリー

0 投票する
0 に答える
263 参照

instructions - キャリー命令による加算の合成

私は最近、プロセッサーにない場合に備えて、他の命令を使用して ADC (キャリー付き加算) 命令を合成するように依頼されました。68k マシンでこれを行うにはどうすればよいですか?

0 投票する
1 に答える
1089 参照

assembly - EASY68K アセンブリ - 最初のプログラム エラー

私はアセンブリ言語に慣れていないので、最初のプログラムで少し問題があります。明らかにアセンブリ言語を除いて、基本的に次のコードを再作成することになっています。エラーを修正し、プログラムを正しく動作させるのを手伝ってくれる人はいますか? 私は近いと思います。

元の非アセンブリ コード:

ここに私がこれまでに持っているものがありますが、エラーが発生しています。エラーを一番下に掲載します。

4 行目: ERROR: 無効なアドレッシング モード 7 行目: ERROR: 無効なアドレッシング モード

0 投票する
1 に答える
680 参照

assembly - アセンブリ言語を英語に翻訳する (EASy68K)

クラスで次のコードが与えられ、右側のコメントで各行の意味を説明することになっています。これは正しいです?

0 投票する
1 に答える
184 参照

assembly - 自分のテスト コードをプログラムする方法

この表現が英語で何を意味するのかはわかりませんが、コードが正しいこと、考えられるすべてのケースが機能すること、プログラムが想定どおりに動作していることを確認するために使用するコードのことです (たとえば、コードを作成した場合)マトリックスで操作するには、3x3、5x100、およびすべての種類のマトリックスで動作することを確認したいと思います。これがテストコードで意味することです)。

そのため、大学向けにこのプロジェクトを作成する必要があります。主な問題は、現時点ではテスト コードの作成方法がわからないため、テストできないコードを書いていることです。

私は組み立ての経験があり、昨年は組み立てで巨大なプロジェクトを行わなければなりませんでしたが、それは 88k で、今年は 68k で、これもまた巨大です。

プロジェクト自体はI / Oに関するもので、「バッファ」で読み書きできるようにする必要があります(DUARTはMC68681 DUARTと呼ばれ、アセンブラ自体はMC68000と呼ばれると思います)。

そのため、バッファに何かを書き込むように命令し、それが送信されていることを確認する必要があります。その後、バイトを読み取ろうとしたときに、正しく読み取れたかどうかを確認したいなどです。

情報を追加したり、自分自身をよりよく説明したりする必要があるかどうか教えてください。この概念を英語で表現するのは非常に困難です。

0 投票する
1 に答える
693 参照

assembly - メモリアドレスをレジスタで渡す

レジスタから他のレジスタにメモリアドレスを渡すにはどうすればよいですか? 私の次のルーチンは、スタックから文字列メモリ アドレスを受け取り (はい、必要です)、D1レジスタに入れようとしますが、これを実行しようとすると動作せず、EASy68kエミュレータがクラッシュします (または無限ループに入りますか?)。

コード:

更新:引数がスタックからプッシュおよびポップされるときに、方法を更新しました。PEA私がやりたいことを正確に行うように見える指示を使用するように変更されましたが、それでも機能しません。