2014-02-11 3 views
-1

Мне нужно написать простой загрузчик, который запускается при загрузке pc и запускает команду dir (получение списка файлов и папок на диске usb (я использую загрузочный USB-диск)) по этой инструкции:написать простой загрузчик в c/C++

http://www.codeproject.com/Articles/28067/Boot-Into-Your-Own-Hello-World-Application?msg=4756180#xx4756180xx

это мой ASM файл, который я затем с помощью NASM сделать бен файл из него затем сделать изо из него, чтобы положить его на моем USB.

;************************************************** 
; Hello World OS Boot loader 
; Designed by Arnav 
; http://pendorasoft.byethost15.com/ 
;************************************************** 

[BITS 16] 
[ORG 0x0000] 

; code located at 0000:7C00, adjust segment registers 
     cli 
     mov  ax, 0x07C0 
     mov  ds, ax 
     mov  es, ax 
     mov  fs, ax 
     mov  gs, ax 

; create stack 
     mov  ax, 0x0000 
     mov  ss, ax 
     mov  sp, 0xFFFF 
     sti 

; post message 
     mov  si,msgHello 
     call DisplayMessage 
     mov  si, msgEnd 
    call DisplayMessage 
    hlt 


; Display Message 
DisplayMessage: 
     lodsb          ; load next character 
     or  al, al        ; test for NUL character 
     jz  .DONE 
     mov  ah, 0x0E       ; BIOS teletype 
     mov  bh, 0x00       ; display page 0 
     mov  bl, 0x07       ; text attribute 
     int  0x10        ; invoke BIOS 
     jmp  DisplayMessage 
    .DONE: 
     ret   

; data section 
msgHello db 0x0D, 0x0A, "Hello World", 0x0D, 0x0A, 0x00   
msgEnd db 0x0D, 0x0A, "That's all folks!!!", 0x0D, 0x0A, 0x00   

;ASM Signature 
     TIMES 510-($-$$) DB 0 
     DW 0xAA55 

, но я не хочу, чтобы напечатать что-то на screen.instead я хочу, чтобы показать список файлов и папок на моем USB , как я должен завершить свой код?

ответ

0

Возможно, я ошибаюсь, но на этапе загрузчика компьютер не имеет понятия о DOS, Linux, Windows и т. Д., Поэтому вы не можете выполнять зависимую от ОС операцию. Для этого вам необходимо загрузить операционную систему.

Если вам нужно распечатать содержимое диска C вам необходимо будет выполнять тяжелую работу все сам ... то есть: читать структуры FAT, название и т.д ...

A (паскаль) источник для этой функциональности можно найти по адресу: https://sites.google.com/site/fritzone/longfilenames и найти старое издание TechHelp (http://www.danielsays.com/ss-gallery-dos-tech-help-60.html), в котором также есть необходимая документация ...

+0

так что нет простого способа сделать это? (например, команда dir) в загрузчике. – user3003613

+0

нет, потому что в загрузчике вы не знаете, какая ОС и/или файловая система находятся на диске. – fritzone

+0

Что делать, если мы загружаем загрузочный usb (который содержит сборку для загрузчика), а затем мы можем получить список файлов в этом usb? .i обновил мою сборку (которая теперь показывает только небольшую строку). – user3003613

Смежные вопросы