让bios在引导时打印hello world

BIOS 中断 BIOS 中断调用( BIOS interrupt calls),为一些软件提供使用BIOS 上的一些功能.一些操作系统在系统引导时也使用BIOS以检测并初始化硬件资源.需要使用的中断主要使用INT 10h 中断,是一个视频服务中断. The BIOS receives requests to perform functions through software inter
摘要由CSDN通过智能技术生成

BIOS 中断

BIOS 中断调用( BIOS interrupt calls),为一些软件提供使用BIOS 上的一些功能.一些操作系统在系统引导时也使用BIOS以检测并初始化硬件资源.

需要使用的中断

主要使用INT 10h 中断,是一个视频服务中断.

The BIOS receives requests to perform functions through software interrupts. Software interrupts, generated by the operating system or by a user application, are generated with INT nnh instructions, where nnh is a number that is assigned to a specific type of service, such as 16h for keyboard input, 10h for video output, or 13h for disk I/O.

BIOS通过软件中断接收执行功能的请求。软件使用INT nnh生成由操作系统或用户应用程序生成的中断指令,其中nnh是分配给特定类型服务的数字,例如16h键盘输入,10h用于视频输出,或13h用于磁盘I / O.

INT 10h 中断工作原理

EMBEDDED BIOS actually begins handling an INT 10h request in its CONIO module, which determines whether the video should be redirected over a serial link.

If CONIO determines that the INT 10h service should not be redirected to a serial device, then it passes control to one of the modules that handle video controllers, such as module VIDEO, which manipulates the 6845 CRT controller registers directly to manage the display. Actual writing of data to the video screen and reading characters from the screen is accomplished by memory reads and writes to video regeneration memory.

EMBEDDED BIOS实际上开始在其CONIO模块中处理INT 10h请求时,将确定视频是否应通过串行链接重定向。如果CONIO确定INT 10h服务不应重定向到串行设备,那么它会将控制,传递到处理视频控制器的模块之一&#x

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据提供的两个引用,可以给出两种汇编语言输出彩色的hello world的方法: 方法一: 引用提供了一个emu8086软件,可以用来学习汇编语言。可以按照以下步骤输出彩色的hello world: 1. 新建文件,选择EXE格式。 2. 在代码中输入以下内容: ``` org 100h mov ah, 0x0E ;设置光标位置 mov bh, 0x00 ;页码 mov bl, 0x0E ;前景色 mov cx, 13 ;字符串长度 mov bp, hello ;字符串地址 loop: mov al, [bp] ;将字符串中的字符读入al int 0x10 ;调用BIOS中断显示字符 inc bp ;指向下一个字符 loop loop ;循环显示 jmp $ ;死循环 hello db 'Hello, world!', 0 ;字符串以0结尾 ``` 3. 点击emulate仿真,即可在emu8086软件中看到彩色的hello world输出。 方法二: 引用[2]提供了另一种汇编语言输出彩色的hello world的方法,可以按照以下步骤实现: 1. 新建文件,将以下代码复制到文件中: ``` ASSUME CS:T17,DS:DATA DATA SEGMENT HELLO DB 'HELLO WORLD!' DATA ENDS T17 SEGMENT START: MOV AX,DATA MOV DS,AX ;字符放入ds MOV CX,12 MOV SI,0 MOV BX,0 S0: ;打印hellow world MOV AL,DS:[BX] MOV AH,02H MOV ES:[SI+00H],AX ADD SI,2 INC BX LOOP S0 MOV CX,68 MOV SI,0 S1: ;其余部分黑色清屏 MOV AX,0 MOV ES:[SI+17H],AX ADD SI,2 LOOP S1 MOV AX,4C00H ;退出 INT 21H T17 ENDS END START ``` 2. 保存文件,使用MASM汇编器进行编译,生成可执行文件。 3. 运行可执行文件,即可在命令行窗口中看到彩色的hello world输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值