Проходя курс сборки, застрял в DOS! - PullRequest
8 голосов
/ 08 февраля 2010

Я учусь на курсе по микропроцессорному программированию в рамках своей степени по электронике. К сожалению, в лабораториях нам приходится работать в DOS, используя MASM.

Теперь я не считаю DOS помехой, но у меня его нет дома на компьютере (и ни на одном из моих компьютеров нет дисководов), поэтому я не могу попрактиковаться в написании программ , Я пробовал под Windows, но он просто не собирается (думаю, это из-за защищенного режима).

Любой совет, что мне делать? Должен ли я просто научиться программировать в защищенном режиме? Это поможет мне с курсом? Курс ориентирован на 8086.

Может быть, виртуальная машина может помочь? Если так, где я могу получить DOS и MASM для этого?

Ответы [ 8 ]

8 голосов
/ 08 февраля 2010

FreeDOS - это еще один вариант, и запуск его в virtualbox

http://www.freedos.org/

Кстати, Free DOS также можно загрузить с компакт-диска. Я думаю, что вы даже можете установить его на флешку, если так склонны.

5 голосов
/ 08 февраля 2010

Я бы предложил использовать виртуальную машину, такую ​​как бесплатный VirtualBox или qemu , эмулятор x86 (+ другие). Я бы предложил использовать MS-DOS в качестве гостевой ОС, так как мои предыдущие попытки попробовать некоторую базовую сборку под FreeDOS под VirtualBox были ненадежными.

MASM v8 доступен для загрузки из Microsoft - но я не помню, включает ли он 16-битный ассемблер или нет. Также прочитайте blurb Рэндалла Хайда на MASM. Веб-сайт Art of Assembly является идеальным местом для изучения ассемблера. Конечно, в Википедии есть сравнение ассемблеров . Вам нужен MASM-совместимый и работающий под DOS (то есть 16-битный).

Добавлено примечание: Более старые версии MS-Windows до Windows XP включали MS-DOS, включая Windows 95 и 98. Если у вас есть или можно найти старую копию на компакт-диске, в противном случае люди Скорее всего, вы получите компакт-диск бесплатно, если он у вас есть - спросите друзей, местные компьютерные магазины, семью , и вы сможете установить их на виртуальной машине без особых усилий или без усилий.

3 голосов
/ 08 февраля 2010

Я бы хотел запустить VirtualBox от Sun (бесплатно) для запуска виртуальной машины DOS на любой платформе (Windows, Mac, Linux, ...)

2 голосов
/ 08 февраля 2010

Я использовал этот эмулятор bochs , в то время как обратно вместе с бесплатными досами это довольно хорошо, если вам просто нужна базовая дос

1 голос
/ 08 февраля 2010

Виртуальная машина будет делать. Я почти уверен, что DOS свободно доступен на MSDNAA, если ваше учебное заведение предоставляет к нему доступ. Если вы используете Windows, я предлагаю использовать Microsoft Virtual PC для виртуальных машин DOS. Хотя я лично предпочитаю VMware в качестве хоста виртуальной машины, особенно для DOS, виртуальный ПК лучше справляется с эмуляцией.

0 голосов
/ 09 февраля 2010

VMWare сделает. Просто найдите образ DOS (.iso или дискета) и установите его на VMWare. С ним вы можете делать все, что захотите, без какого-либо вреда для вашего хоста. Вы даже можете играть с прерыванием int13, если хотите;). О, я скучаю по тому времени, когда я выполнял "резидентные" приложения, подключающие подпрограммы прерывания под DOS на моем i386:)

Удачи и веселья с асмом.

0 голосов
/ 08 февраля 2010

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
0 голосов
/ 08 февраля 2010

Если вы наберете COMMMAND вместо CMD в меню Пуск и выберете команду run, вы окажетесь в DOS.

...