8

私は電子工学の学位の一部としてマイクロプロセッサプログラミングのコースを受講しています。残念ながら、ラボでは、MASMを使用してDOSで作業する必要があります。

さて、DOSが邪魔になることはあまりありませんが、自宅のコンピューターにDOSがないだけなので(フロッピードライブを持っているコンピューターはありません)、プログラムの作成を練習することができません。Windowsで試しましたが、アセンブルされません(これはプロテクトモードが原因だと思います)。

私は何をすべきかについて何かアドバイスはありますか?プロテクトモードでのプログラミングを学ぶべきですか?それはコースで私を助けますか?コースは8086に焦点を当てています。

おそらく、仮想マシンが役立つでしょうか?もしそうなら、どこでDOSとMASMを入手できますか?

4

8 に答える 8

8

FreeDOSは別のオプションであり、virtualboxで実行します

http://www.freedos.org/

ところで、FreeDOSはCDから起動することもできます。傾いている場合は、サムドライブにインストールすることもできると思います。

于 2010-02-08T20:40:30.487 に答える
5

無料のVirtualBoxqemu、x86 (+ その他) エミュレーターなどの仮想マシンを使用することをお勧めします。ゲスト OS として MS-DOS を使用することをお勧めします。VirtualBox の下で FreeDOS の下でいくつかの基本的なアセンブリを試してみた以前の試みは信頼できなかったからです。

MASM v8は Microsoft からダウンロードできますが、16 ビット アセンブラが含まれているかどうかは覚えていません。MASM に関するRandall Hyde の宣伝文句も読んでください。Art of Assembly Web サイトは、アセンブリを学習するための頼りになるスポットです。もちろんウィキペディアにはアセンブラの比較があります。MASM と互換性があり、DOS (つまり 16 ビット) で動作するものが必要です。

追加の注意: Windows XP より前の古いバージョンの MS-Windows には、Windows 95 および 98 を含む MS-DOS が含まれていました。友人、地元のコンピュータ ストア、家族など、ほとんどまたはまったく労力をかけずにそれらを仮想マシンにインストールできるはずです。

于 2010-02-08T20:51:18.977 に答える
3

SunのVirtualBox(無料)を実行して、任意のプラットフォーム(Windows、Mac、Linuxなど)でDOSVMを実行することを検討します。

于 2010-02-08T20:39:16.830 に答える
2

私はこのエミュレーターbochsを使用しましたが、基本的なdosが必要な場合は無料のdosと一緒に戻ってかなり良いです

于 2010-02-08T20:44:49.400 に答える
1

仮想マシンで十分です。あなたの学術機関がDOSへのアクセスを提供していれば、DOSはMSDNAAで無料で利用できると確信しています。Windowsを使用している場合は、DOSVM用のMicrosoftVirtualPCを使用することをお勧めします。私は個人的にはVMホストとしてVMwareを好みますが、特にDOSの場合、VirtualPCはエミュレーションでより優れた仕事をしているようです。

于 2010-02-08T20:39:36.047 に答える
0

COMMMAND[スタート]メニューからではなく入力CMDして[実行]を選択すると、DOSになります。

于 2010-02-08T20:39:25.590 に答える
0

Inline::ASM - アセンブラで Perl サブルーチンを書く.

あらすじ

   print "9 + 16 = ", add(9, 16), "\n";
   print "9 - 16 = ", subtract(9, 16), "\n";

   use Inline ASM => 'DATA', 
              AS => 'as',
              PROTO => {add => 'int(int,int)'};

   use Inline ASM => 'DATA',
              AS => 'nasm',
              ASFLAGS => '-f elf',
              PROTO => {subtract => 'int(int,int)'};

   __END__
   __ASM__

   .text
   .globl    add

   add:      movl 4(%esp),%eax
             addl 8(%esp),%eax
             ret
   __ASM__
             GLOBAL subtract
             SECTION .text

   subtract: mov eax,[esp+4]
             sub eax,[esp+8]
             ret
于 2010-02-08T20:44:58.923 に答える
0

VMWareはそうするでしょう。DOS イメージ (.iso またはフロッピー) を見つけて VMWare にインストールするだけです。ホストマシンに害を与えることなく、何でもやりたいことができます。必要に応じて、int13 割り込みで遊ぶこともできます;)。ああ、i386 の DOS で割り込みサブルーチンをフックする「常駐」アプリケーションを作成したときのことを思い出します :)

頑張って asm を楽しんでください。

于 2010-02-08T21:42:23.497 に答える