参加装配课程,陷入DOS!

时间:2010-02-08 20:36:17

标签: assembly dos masm

我正在攻读微处理器编程课程,这是我的电子工程学位的一部分。不幸的是,在实验室中,我们必须使用MASM在DOS中工作。

现在,我并没有真正发现DOS是一个障碍,但我只是没有在家里的电脑上(而且我没有软盘驱动器),所以我无法练习编写程序。我在Windows下试过,但它没有组装(我猜这是因为保护模式)。

有关我应该怎么做的任何建议?我应该学会在保护模式下编程吗?这对我的课程有帮助吗?课程重点是8086。

也许虚拟机可以提供帮助?如果是这样,我在哪里可以获得DOS和MASM?

8 个答案:

答案 0 :(得分:8)

FreeDOS是另一种选择,并在virtualbox中运行

http://www.freedos.org/

BTW,也可以从CD启动免费DOS。我认为如果愿意,你甚至可以将它安装在拇指驱动器上。

答案 1 :(得分:5)

我建议使用虚拟机,例如免费VirtualBoxqemu,x86(+其他)模拟器。我建议使用MS-DOS作为客户操作系统,因为我之前尝试在VirtualBox下的FreeDOS下尝试一些基本程序集是不可靠的。

MASM v8可从Microsoft下载 - 但我不记得是否包含16位汇编程序。另请阅读MASM上的Randall Hyde的blurbArt of Assembly网站是学习集会的首选地点。当然维基百科有一个comparison of assemblers。你需要一个MASM兼容并在DOS下运行(即16位)。

已添加注意: Windows XP之前的旧版MS-Windows包括MS-DOS,包括Windows 95和98.如果您已经或可以在CD上找到旧版本,否则人们可能会自由地提供CD,如果他们有一个 - 问朋友,本地计算机商店,家庭,你应该能够在很少或没有努力的情况下将它们安装在虚拟机中。

答案 2 :(得分:3)

我会考虑运行Sun的VirtualBox(免费)在任何平台上运行DOS VM(Windows,Mac,Linux,...)

答案 3 :(得分:2)

我使用这个模拟器bochs,如果你只需要基本的dos,那么与free dos一起回来是非常好的

答案 4 :(得分:1)

虚拟机可以。如果您的学术机构能够访问,我非常确定DOS可以在MSDNAA上免费获得。如果您使用的是Windows,我建议您使用Microsoft Virtual PC for DOS VM。虽然我个人更喜欢VMware作为VM主机,但对于DOS而言,Virtual PC似乎在仿真方面做得更好。

答案 5 :(得分:0)

如果您从“开始”菜单中键入COMMMAND而不是CMD,然后选择“运行”,您将进入DOS。

答案 6 :(得分: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

答案 7 :(得分:0)

VMWare会这样做。只需找到DOS映像(.iso或软盘)并将其安装在VMWare上即可。您可以随意使用它而不会对主机造成任何伤害。如果你愿意,你甚至可以使用int13中断;)。 哦,我错过了我在i386上执行“常驻”应用程序挂接DOS下的中断子程序的时间:)

祝你好运,并与asm一起玩。