問題タブ [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私がやりたいことを正確に行うように見える指示を使用するように変更されましたが、それでも機能しません。

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

assembly - MOVE で LEA 命令をシミュレートするにはどうすればよいですか?

LEAMOVE で命令をシミュレートするにはどうすればよいですか? これは可能ですか?私はx86アセンブリを使用しましたが、MOV命令はシンボルの場合はアドレスをコピーするだけです(アセンブリに依存しているかどうかはわかりません)。しかし、6800MOVEでは動作が異なるように見えます。たとえば、次の命令D1A1は値が異なります。指導は正確にどのように機能しLEAますか?どうすればシミュレートできますか?つまり、LEAそれを使用せずに行うことを行います。私はそれとMOVEいくつかの他のものと思います。また、事実上、MOVE入れてD1いるのはラベルの16進値ではないようです。

0 投票する
2 に答える
167 参照

assembly - 0(SP)で渡された値が4(SP)でしかアクセスできないのはなぜですか?

で渡された値が で0(SP)のみアクセスできるのはなぜ4(SP)ですか? たとえば、(ルーチンで使用されているため)の代わりにprintnbyに数値を渡す必要があります。そうしないと機能しません。私は何が欠けていますか?0(SP)4(SP)

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

easy68k - 署名されていない番号をテストするにはどうすればよいですか?

I/O トラップ #4 を使用して数値を読み取ります。これにより番号が得られますが、署名されているか署名されていないかについては言及されていません。これは、そのまま読み込むだけで、どちらかである可能性があるためだと思います。

値が署名されていないかどうかを確認するにはどうすればよいですか? ie: 0 から 2^32 までの間であることを確認するにはどうすればよいですか?

0 投票する
2 に答える
2469 参照

assembly - MC68kでASCII番号をバイナリに変換する方法

0 から 100 までの 20 個のユーザー入力数値を必要とするプログラムを作成して数値の平均を求め、それらを失敗または合格として分類する必要がありますが、入力を ascii としてメモリに保存し、ascii からバイナリに変更する必要があります。ascii 数値は 16 進数で 30 ~ 39 であることは知っていますが、93 を数値として入力すると 3933 として保存されるように、MC68K でそれを実装する方法がわかりませんが、バイナリに変換するにはどうすればよいですか?