小编Sta*_* OS的帖子

如何将bin文件(512字节)写入软盘的第一个扇区(扇区0)?

如何将.bin文件写入软盘/虚拟软盘/软盘映像的第一个扇区?

我正在尝试启动一个简单的512字节引导加载程序.各地的大小都说"512字节",所以我应该已经很好了.

附加信息:

引导程序只显示一个字符串,我正在学习简单的汇编.一些工作是在Windows中完成的,一些是在Ubuntu 14.04(Trusty Tahr)中完成的(如果这很重要).

即使它具有引导加载程序标志,它也无法启动.

assembly floppy bios osdev bootloader

8
推荐指数
2
解决办法
5992
查看次数

Android - 直接从输入流播放mp3而无需写入临时文件

我正在创建一个输入流来缓冲和流式传输来自云的mp3.

URL url = new URL("http://xxxx.yyy.com/Demo.mp3");

InputStream inputStream = url.openStream();
Run Code Online (Sandbox Code Playgroud)

现在我如何从媒体播放器播放mp3而不使用临时文件来存储它并从同一回读?我正在为Android Lollipop开发

android android-mediaplayer

7
推荐指数
1
解决办法
4252
查看次数

引导加载程序未加载第二个扇区

我用汇编写了一个引导加载程序。下面是它的工作原理:

  1. 首先,BIOS 正常加载引导加载程序。指示进入200h。

  2. 在 200h 处,有一些代码位于 200h 和 21Eh 之间。它只是切换到 VGA 模式,使用 VGA 功能在坐标 1,1 上绘制一个洋红色像素。它永远循环该代码。

然而,当我加载它时,它只是在闪烁的光标上移动,这是普通的 VGA .bin 文件不会做的,并且会显示一个像素。我检查了一个像素,但什么也没看到。我看到的意思是 VGA 代码没有运行,引导加载程序只是加载了,没有别的。

引导加载程序代码:

 cli
 startload:
 push 0x00000200
 ret

 times 510-($-$$) db 0
 db 0x55
 db 0xAA
Run Code Online (Sandbox Code Playgroud)

您可以看到它只是转到下一个扇区(从 200h 开始)和 200h-21Eh 处的代码:

BITS 16
org 200h
data:
xcoord DB '1'
ycoord DB '1'
color DB 'D'
.code:
vga:
mov ax, 13h
int 10h
mov ax, ycoord
mov bx, xcoord
mov cx, 320
mul cx
add ax, bx
mov di, ax
mov …
Run Code Online (Sandbox Code Playgroud)

assembly bios vga bootloader x86-16

1
推荐指数
1
解决办法
1132
查看次数