Помогите запустить программу созданую в masm

программирование assembler ASM masm

masm компилирует нормально. На windows 7 программа вызывает ошибку и закрывается, в dosbox ошибка "illegal command", на windows XP (под virtualbox) выполняется без ошибки но нет звукового сигнала.
Нужно хоть как нибудь запустить, а дальше я уже разберусь.

.386
.model flat, stdcall
option casemap:none

.data

.data?

.code

sound proc
push ax
push bx
push cx
push dx
push di
mov al,0b6h
out 43h,al
mov dx,14h
mov ax,4f38h
div di
out 42h, al
mov al,ah
out 42h,al
in al,61h
mov ah,al
or al,3
out 61h,al

wait1:
mov cx,2801

spkr_on:
loop spkr_on
dec bx
jnz wait1
mov al,ah
out 61h,al
pop di
pop dx
pop cx
pop dx
pop ax
ret
sound endp


main:

call sound

end main

Примечание:
Решил проблему так:
В DosBox поставил masm 6.11
Переписал код под dos
и все получилось
Всем спасибо.
Ответы:
советую на виртуалке вместо Windows XP запустить таки MS-DOS, + по коду раскидать отладочный вывод, чтобы знать, что и где происходит. Либо поиграться с отладчиком.
проверь в windows xp в virtualbox'e работает ли вообще спикер?
запусти там cmd.exe и  в комманд промпте нажми Ctrl-G, Enter. Есть звук?


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.