#virtual-machine #virtualbox #nasm #osdev #floppy
#виртуальная машина #virtualbox #nasm #экранное меню #дискета
Вопрос:
У меня есть программа Hello World в Assembly language
`; ----------------------------------------------------------------------------
; helloworld.asm
;
; This is a Win32 console program that writes "Hello, World" on one line and
; then exits. It needs to be linked with a C library.
; ------------------------------------------------------------- ---------------
global _main
extern _printf
section .text
_main:
push message
call _printf
add esp, 4
ret
message:
db 'Hello, World', 10, 0`
Я выполнил это с помощью nasm
и получил img
файл.
Когда я использую Floppy Controller
, он выдает ошибку..
Failed to open Floppy Disk File D:helloworld.img
the Medium D:helloworld.img Cannot be used as a requested device type
Result Code: E_FAIL (0x80004005)
Component: Medium
Interface: IMedium {05f2bbb6-a3a6-4fb9-9b49-6d0dda7142ac}
Callee: IVirtualBox {fafa4e17-1ee2-4905-a10e-fe7c18bf5554}
Callee RC: VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)
Комментарии:
1. Скорее всего, это потому, что ваш
img
файл не дополнен границей сектора, то есть 512 байтами. Для nasm вы можете просто добавить эту строку в конце:times 512-($-$$) db 0
2. Хотя, насколько я могу судить, то, что вы пытаетесь сделать, не подходит для данной программы. Поскольку это программа Win32, вы не можете просто поместить ее прямо на дискету и ожидать, что она загрузится в Virtual Box.
Ответ №1:
Я думаю, вам нужно создать файл .img с помощью partcopy или etc. Я имею в виду, что вы сделали для создания файла изображения, но он должен быть правильным.В качестве примера вы можете создать его с помощью copy / b, но это не делает его правильным.Или вы можете создать файл ISO, чтобы сделать его пригодным для использования.
miso your.iso -ab your.img