我正在攻读微处理器编程课程,这是我的电子工程学位的一部分。不幸的是,在实验室中,我们必须使用MASM在DOS中工作。
现在,我并没有真正发现DOS是一个障碍,但我只是没有在家里的电脑上(而且我没有软盘驱动器),所以我无法练习编写程序。我在Windows下试过,但它没有组装(我猜这是因为保护模式)。
有关我应该怎么做的任何建议?我应该学会在保护模式下编程吗?这对我的课程有帮助吗?课程重点是8086。
也许虚拟机可以提供帮助?如果是这样,我在哪里可以获得DOS和MASM?
答案 0 :(得分:8)
FreeDOS是另一种选择,并在virtualbox中运行
BTW,也可以从CD启动免费DOS。我认为如果愿意,你甚至可以将它安装在拇指驱动器上。答案 1 :(得分:5)
我建议使用虚拟机,例如免费VirtualBox或qemu,x86(+其他)模拟器。我建议使用MS-DOS作为客户操作系统,因为我之前尝试在VirtualBox下的FreeDOS下尝试一些基本程序集是不可靠的。
MASM v8可从Microsoft下载 - 但我不记得是否包含16位汇编程序。另请阅读MASM上的Randall Hyde的blurb。 Art 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一起玩。