标签: bios

为什么启动加载器重新定位在内存中?

我正在编写一个启动加载程序,我已经掌握了大部分细节,但我不确定为什么有些启动加载程序会在开始大量执行之前将它们重新定位在内存中.

有谁能解释一下?

此行为的一个示例是原始的v0.01 Linux内核引导加载程序,其中包含以下注释:

boot.s由bios-startup例程加载到0x7c00,并自行移动到地址0x90000,并跳转到那里.

assembly system bios bootloader

5
推荐指数
2
解决办法
1270
查看次数

bios中断调用所需的堆栈大小

我正在研究一个用于学习目的的小型引导程序.是否有关于bios中断调用所需的(自由)堆栈大小的规范/信息?

stack interrupt overflow bios

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

如何在屏幕上显示一个数字,并使用DOS x86程序集睡眠一秒钟?

我正在使用NASM 16 BITS.我正在尝试做一个简单的汇编代码,打印0到255之间的数字,每个数字之间间隔1秒.这是我到目前为止:

[bits 16]

mov ax,cs
mov ds,ax
mov cx,255
mov ax,0

myloop:
    ;print in screen ax value
    ;wait 1 second
    inc ax

loop myloop
Run Code Online (Sandbox Code Playgroud)

我不确定如何在屏幕上打印ax的值,以及如何等待1秒(将它们放在代码中的注释中).

x86 assembly dos bios nasm

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

未检测到键盘,F1恢复

我的朋友当时正在使用消费级台式设备安装一台无头服务器,他遇到了这个错误,毫无疑问,以前很多人都已经看过或读过这个错误,但是有人真的知道它为什么存在吗?

如果未检测到键盘或键盘控制器出现错误,您如何才能按一下按钮来恢复?

是几种BIOS制造商采用的某种复活节彩蛋还是真正的原因,为什么一个常见的默认BIOS设置是如果没有检测到键盘就不允许计算机启动,然后期望启动过程能够恢复通过某种方式按下一个键?

[来自互联网的示例] http://p.twimg.com/AsWYydvCEAAiAHL.jpg:large

我是认真的

keyboard operating-system motherboard bios

5
推荐指数
0
解决办法
1万
查看次数

MCGA BIOS文本模式下的16种背景颜色(AL = 03h)

MCGA支持4位颜色深度,即16种颜色.但是当我尝试打印所有这些颜色时,我只得到它们中的前8个,其余8个简单地复制它们,如下图所示.难道我在这里做错了,或者全是因为DOSBox?

试图获得所有16种颜色

代码(MASM,在DOSBox 0.74下):

TITLE   PROGRAM193
;----------------------------------------------------------
        .MODEL      SMALL
        .STACK      64
        .DATA           
;----------------------------------------------------------
        .CODE
MAIN    PROC    FAR
    MOV     AX, @DATA
    MOV     DS, AX

    MOV     AX, 0600h    ;AH = 06h (scroll up window)
    ; black (0)
    MOV     BH, 0Fh      ;0 (black) background, F (white) text
    MOV     CX, 0000h    ;upper line, left column
    MOV     DX, 004Fh    ;finishing line, right column
    INT     10h

    ; blue (1)
    MOV     BH, 1Fh
    MOV     CX, 0100h
    MOV     DX, 014Fh
    INT     10h

    ; green (2)
    MOV     BH, 2Fh
    MOV …
Run Code Online (Sandbox Code Playgroud)

assembly masm bios text-coloring dosbox

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

使用DOS或BIOS显示字符

通过Ralph Brown的中断列表,我发现有许多不同的方法可以将文本字符输出到屏幕上.

ROM BIOS API提供以下功能:

  • AH = 09h - 在光标位置写字符和属性
  • AH = 0Ah - 仅在光标位置写入字符
  • AH = 0Eh - 电传输出
  • AH = 13h - 写字符串

DOS API提供以下功能:

  • AH = 02h - 将字符写入标准输出
  • AH = 06h - 直接控制台输出
  • AH = 09h - 将字符串写入标准输出

这些功能有什么作用?我怎么称呼他们?我如何在它们之间做出选择?

x86 assembly dos bios

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

以实模式列出BIOS驱动器号的任何方法

有没有办法在实模式下列出BIOS驱动器索引(例如0x80,0x81 ......)?

我没有找到任何负责列出驱动器号码的中断!!

x86 assembly real-mode bios nasm

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

PCI ROM 如何被阴影化?

在几个资源中我发现: ROM 映像必须复制到 RAM 到 000C0000h 到 000DFFFFh。如果类代码表明这是 VGA 设备 ROM,则必须将其代码复制到从位置 000C0000h 开始的内存中。

1:如果我有PCI饥饿河马卡,ROM大于128KB怎么办?

2:如果我有 ROM 64KB 的常规 PCI 设备,但我有 4 个怎么办?它们是否按顺序加载到该内存范围中?如果是这样(尽管我对此表示怀疑),在 init 和 boot 阶段之间如何保存代码映像?

3:如果 BIOS 决定不遵循规范并指定不同的内存位置,会发生什么情况?为什么使用这个范围很重要?

4:普通机箱与VGA接口到底有什么不同?难道仅仅是限制造成了差异吗?

hardware boot bios pci-bus pci

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

STARTUP IPI 对应用程序处理器有什么影响?

我现在正在尝试了解启动过程以及处理器如何初始化。我已阅读了多处理器规范部分B.4.2但我不明白什么INIT IPISTARTUP IPI做的BSPAP

operating-system intel bios

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

为什么引导加载程序的开头需要 ORG 0x7c00?

在我见过的每个引导加载程序代码中,文件开头都有这一行“ORG 0x7c00”。据我所知,BIOS会将这段代码放在地址0x7c00处。

那么执行“org 0x7c00”的原因是什么?是不是如果第一条指令加载到0x7c00,计数器就会自动从那里开始?每条指令的地址不都是0x7c00 + 偏移量吗?

assembly operating-system bios nasm bootloader

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