我需要编写一个在pc启动时运行的简单引导加载程序并运行命令dir(获取usb驱动器上的文件和文件夹列表(我使用的是可启动的USB)) 通过这条指令:
这是我的asm文件,然后我使用NASM从它创建一个bin文件然后从它做一个iso把它放在我的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
但我不想在屏幕上打印一些内容。我希望它能在我的USB上显示文件和文件夹列表 我应该如何完成我的代码?
答案 0 :(得分:1)
也许我错了,但是在引导程序的阶段,计算机对DOS,Linux,Windows等没有任何线索......所以你不能执行与操作系统相关的操作。为此,您需要加载操作系统。
如果你需要打印驱动器C的内容,你需要自己实现辛苦工作......即:读取FAT结构,名称等......
此功能的(pascal)来源可在以下位置找到:https://sites.google.com/site/fritzone/longfilenames并搜索旧版本的TechHelp(http://www.danielsays.com/ss-gallery-dos-tech-help-60.html),其中包含所需的文档...