質問

アセンブラーでプログラミングする方法を学びたいです。以前 (A レベル コンピューティング コース中に) アセンブリを少し実行したことがありますが、それは間違いなく単純化された「疑似アセンブラ」でした。父の古い Z80 アセンブラのリファレンス マニュアルを借りたのですが、とても面白そうなので、できれば Z80 アセンブラを試してみたいと思っています。

ただし、Z80 プロセッサーが手元にないので、PC で実行したいと考えています (Windows または Linux を使用しているので、どちらでも良いです)。インターネット上でさまざまなアセンブラを見つけましたが、16 進数ファイルにアセンブルすることに特に興味はなく、PC 上の何らかのシミュレータが実行できるものにアセンブルできるようにしたいだけです。できれば、このシミュレーターですべてのレジスターの内容、メモリー位置などを表示し、手順を実行できるようにしてください。これを行う可能性を示唆するソフトウェアをいくつか見つけましたが、コンパイルを拒否するか、正しく動作しないようです。誰か何か提案はありますか?別のタイプのアセンブラに利用できる優れたシミュレータ/IDE がある場合は、代わりにそれを試すこともできます (優れたオンライン リファレンス マニュアルが利用可能であると仮定します)。

役に立ちましたか?

解決

私は彼らがこれを行うかもしれないことを示唆するいくつかのソフトウェアを見つけました - しかし、彼らはコンパイルを拒否するか、適切に動作しないようです。誰か何か提案はありますか?

一つ書いてください。優れたシンプルな命令セットを選択するのが最善です (Z80 が最適です)。これは学部 1 年生の演習として行ったことを覚えています。C++ でシミュレータを作成し、6800 アセンブリをシミュレートしたと思いますが、実際にはどのような言語/命令セットでも使用できます。

最近の「アセンブリ言語を学ぶ」という考えは、コンピューターが最低レベルでどのように動作するかを理解することです。最近では、実際にアセンブリ コードを書く本当の理由があるのは、選ばれた少数の人 (コンパイラ作成者など) だけです。最新のプロセッサには、速度、同時実行、消費電力などに関してコードを最適化するためにコンパイラが使用するように設計された機能が満載されており、最新のプロセッサ向けにアセンブリを手動で記述しようとするのは悪夢でしょう。

望まない限り、アプリケーションを本番環境に準備することについて心配する必要はありません。おそらく、これまでに見つけたソフトウェアの一部は、アセンブリがどのように機能するかを知りたくて独自のシミュレータを作成した、あなたとまったく同じ人々によって書かれたものである可能性が高いです。その後、一般の人々が使用できるように「本番環境」にするには、どれだけの労力がかかるかに気づきました。

他のヒント

オープンソースの 8085 シミュレータをチェックしてみるとよいでしょう。」GnuSim8085」は、特に教育目的で使用することを目的としており、実際に学生が試験の準備中に書いたものです。Linux と Windows の両方で動作します。

Windows を使用している場合 8085シミュレータ が最良の選択です。8085 Simulator by J-tech Softwares

ユーザーインターフェイスは他のどのシミュレーターよりも優れています。また、このシミュレータはメモリ マップのライブ ビューをその場で (実行中も) 提供します。

ただし、これは Windows 98 以前をサポートしていないため、「GnuSim8085」などの他のシミュレータを確認する必要があります。

MipSimは無料です

http://www.mipsim.com

MIPSim 2 の主な機能

  • 構文のハイライトや折りたたみなどの機能を備えた組み込みのコード エディター
  • レジスタとメモリの値をさまざまな表現 (符号付き整数、符号なし整数、16 進数、ASCII) で表示します。
  • メモリ値の検査を容易にするために、メモリセルのブロックサイズ(フルワード、ハーフワード、バイト)を設定します。
  • シミュレーションやデバッグ中でも、シングルクリックでレジスタやメモリセルの値を変更できます。
  • リアルタイムのユーザー インターフェイス更新により、実行中にレジスタとメモリ セルの値がどのように変化するかを確認できます。
  • ステップバイステップの命令実行、命令スキップ、ブレークポイント機能を備えた内蔵デバッガ
  • コードのテストのために ASCII、UNICODE 文字列、および整数値をメモリに挿入するためのツール
  • 重複または欠落しているラベルおよび命令パラメータをチェックするためのツール
  • コンピュータの状態 (すべてのレジスタとメモリ セルの値) を保存して、次回シミュレータを実行するときに、終了したところから続行できるようにします。
  • シミュレーション速度を設定します - コードをトレースし、その動作を確認するには低速が最適です
  • 命令をエンコード - バイナリまたは 16 進表現でマシンコードを生成します。
  • アセンブリ時間と実行時エラーを捕捉する
  • 説明的なエラー メッセージによるデバッグの容易化
  • マルチスレッド設計 - 実行されたアセンブリ コードが間違っているか、無限ループが含まれている場合でも、MIPSim はスタックしません (うまくいけば ;)
  • MIPSim API - MIPSim のレジスタとメモリを読み書きできる独自のプログラムを作成し、強力なテストを実現する優れた柔軟性を実現します。

もっと上を目指せ!より強力なアセンブリ言語のシミュレーターを入手してみてください。Z80 と 808x は、ローエンドで扱いにくい命令セットを備えたローエンド プロセッサであったことを思い出してください。

DEC の VAX のようなものは、命令セットのロールスロイスとみなされていました。そして、本当に奇妙なことを行うクレイジーな Risc 命令セットもあります。おそらく、それらの定義を見つけて、それらを実装することができるでしょう。

興味があるかもしれません これ Z80 シミュレータの場合、良い経験がありました。 WinAsm.

また、x86 アセンブリ言語の学習を検討することもできます。x86 アセンブリ言語は、Visual Studio のインライン アセンブラを使用して実行できます。これは、Z80 よりも大きい命令セットですが、X86 アセンブリ言語で使用できるツールよりもはるかに優れたツールを使用できるという利点があります。 Z80。

Keil 8051 および Arm ツールには IDE にシミュレータがあることも思い出しました。これらのサイズ制限付きバージョンは www.keil.com から無料でダウンロードできます。

すでに .NET を知っている場合は、これが役に立つかもしれません。

http://www.viksoe.dk/code/asmil.htm

これには少し制限があり、.NET 1.1 でのみ動作する可能性がありますが、少なくとも「最新の」IDE を使用することはできます。また、それに関するドキュメントがたくさんあります。

<%@ page language="Asm80386" %>
<%
Str:  DB "Testing...", 0

  mov eax, -2
  cmp eax, 2
  jle Label1
  xor eax, eax
Label1:
  lea esi, Str
  push esi
  call "Response.Write(string)"
  pop esi
%>
<br>EAX: <%= eax %>

「ハードコア」にしたい場合のもう 1 つのオプションは、FreeDOS や VMWare などを入手してそれを使用することです。確かガレージセール(カーブートセール?)ヤードセール?)または古本屋には、ピーター・ノートンの古い DOS 割り込み聖書が置いてあるでしょう。:)

個人的には、関数内にアセンブリ命令を埋め込む機能を備えた Turbo Pascal (現在は Borland から無料になっていると思います?) を使用して x86 asm を学びました。アプリのセットアップが簡単になり、やりたいことに集中できるようになりました。その後、オークランド大学で MacVAX を使用しましたが、それは問題ありませんでしたが、VAX は完全に機能しなくなっています。x86 を学習したほうがよいでしょう :)

シンプシム 間違いなく一見の価値があります。Windows のみですが、機能セットはかなり充実しています。

  • メインメモリとレジスタ表示
  • 構文強調表示機能を備えた組み込みエディター
  • 実行、ステップ、およびブレーク関数

ウィンエイプ の優れたエミュレータです アムストラッド CPC. 。Amstrad CPC は、80 年代に製造されたホーム コンピューターです。CPUにはZ80を採用。エミュレータを使用すると、プログラミング中に多くの内部を表示できます。Z80 コード用のデバッガと逆アセンブラが含まれています。

これは今あなたにとっては何の意味も持たないが、単に立ち寄る人にとってだけだろう。これは私が出会った中で最高のアセンブリ コード シミュレーターです。本当に価値があります!

http://www.emu8086.com/

を見てみましょう Thomas Scherrer Z80 エミュレータ 使用できる可能性のあるエミュレータのリストについては、こちらをご覧ください。

私は ZX Spectrum 用の z80 asm を作成し (それでも、私は知っています :) )、SJasmPlus を使用してスペクトル エミュレーター ファイルにリンクします。Fuse や ZXSpin などの優れた Spectrum エミュレータの多くには、オンザフライのデバッグやパッチ適用用のエディタも組み込まれています。

私が大学にいたとき、PIC マイクロプロセッサを使用していました。これらはMicrochipという会社によって作られています。また、チップエミュレータ/シミュレータを備えた優れた IDE も備えており、実際にチップを持たずに作業を行うことができます。

なぜエミュレータを使用するのでしょうか?

ダウンロード マズム または NASM そして古き良き 80386 アーキテクチャを作成します。豊富なオンラインサンプルと学習ツール。

アセンブラを使用する現実的な理由はたくさんあります。

マイクロプロセッサアーキテクチャの基礎を教えるための Visual6502 シミュレータがあります。エディター、アセンブラー、I/O 操作、およびマイクロプロセッサーの動作方法のアニメーションが含まれています。次のリンクから入手できます。

http://www.pcsistem.net/visual/index.htm

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top