首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

BIOS中断问题0x10/AH=0x13 (写入字符串)

BIOS中断问题0x10/AH=0x13 (写入字符串)是指在计算机的基本输入输出系统(BIOS)中,通过调用中断号为0x10的中断服务程序来实现将字符串写入显示器的功能。

BIOS中断是一种软件中断,用于提供基本的硬件控制和功能。中断号0x10表示调用BIOS的视频服务,而AH=0x13表示调用视频服务中的写入字符串功能。

写入字符串功能允许将字符串数据写入显示器的指定位置。通过设置寄存器AH为0x13,将字符串的起始地址、字符串长度、显示器的行列位置等参数设置好后,调用该中断服务程序即可将字符串显示在屏幕上。

这个中断服务程序的应用场景包括但不限于:

  1. 操作系统的启动过程中,用于显示启动信息和错误提示。
  2. 在开发过程中,用于调试和显示程序运行状态。
  3. 在一些特定的应用程序中,用于显示用户界面和交互信息。

腾讯云提供了一系列与云计算相关的产品,其中与BIOS中断问题0x10/AH=0x13相关的产品可能包括:

  1. 云服务器(ECS):提供虚拟化的计算资源,可用于运行操作系统和应用程序。
  2. 云监控(Cloud Monitor):用于监控云服务器的运行状态和性能指标,可帮助及时发现和解决问题。
  3. 云存储(COS):提供可扩展的对象存储服务,可用于存储和管理应用程序的数据和文件。
  4. 云网络(VPC):提供安全可靠的网络环境,可用于构建和管理应用程序的网络架构。

以上是腾讯云相关产品的简要介绍,更详细的信息和产品特点可以参考腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 写一个操作系统_05 调试MBR

    实现的功能如下: BIOS 加载 MBR中的代码,执行,用BIOS 中断 INT 0x10显示字符串 MBR的代码 ;主引导程序 ; 起始编译地址是 0x7c00 SECTION MBR vstart...mov ah, 3 ; 输入: 3号子功能是获取光标位置,需要存入ah寄存器 mov bh, 0 ; bh寄存器存储的是待获取光标的页号 int 0x10 ; 输出: ch=光标开始行...;;;;;;;;;;; ;还是用10h中断,不过这次是调用13号子功能打印字符串 mov ax, message mov bp, ax ; es:bp 为串首地址, es此时同cs...寄存器, ; al设置写字符方式 ah=01: 显示字符串,光标跟随移动 mov bx, 0x2 ; bh存储要显示的页号,此处是第0页, ; bl中是字符属性, 改颜色,要不看不见...int 0x10 ; 执行BIOS 0x10中断 ;;;;;;;;; 打字字符串结束 ;;;;;;;;;;;;;;; jmp $ ; ; 死循环 message

    93330

    进入Linux内核前的准备

    先来说说int是什么,这里int 0x13表示发起13号中断,上面这几句mov语句赋值也是为这里发起13号中断做准备。...这个中断发起后,CPU会通过这个中断号,去寻找对应的中断处理程序的入口地址,并跳转过去执行,逻辑上就想到那个与执行了一个函数,而0x13中断BIOS提前写好的一个读取磁盘相关功能的函数。...这里的0x10终端也是触发BIOS提供的显示服务中断处理程序,而ah寄存器被赋值为0x03表示限时服务里具体的读取光标位置功能。...ah,#0x0f int 0x10 mov [4],bx ; bh = display page mov [6],ax ; al = video mode, ah = window width...; check for EGA/VGA and some config parameters mov ah,#0x12 mov bl,#0x10 int 0x10 mov [8],ax

    5.6K20

    详解MBR篡改技术

    0×02 MBR引导原理 计算机在按下电源键键以后,开始执行主板bios程序。进行完一系列检测和配置以后。开始按bios中设定的系统引导顺序引导系统。...这些问题便是需要MBR来解决的,bios在执行自己固有的程序以后就会跳转到mbr中的第一条指令,将系统的控制权交由mbr来执行。...如果要读写磁盘上的扇区数据,需要利用INT中断来进行,但是也必须是在Ring0级才可以进行操作,而进入Ring0级的方法有:设备驱动程序、调用门、任务门、中断门、陷阱门等,这势必提升了操作门槛。...;输出 jmp .cLoopdoCopy: xor ah, ah int 0x16 ; 等待键盘输入回车键; 开始搜索定位mbr备份的位置.scan mov si, DAPACK mov ah,...0x42 int 0x13 ;使用int13h,ah=0x42读取扇区 mov ax, [d_lba] ;将ax赋值为1号扇区 add ax, 1 ;扇区号累加操作 mov [d_lba], ax mov

    1.6K20

    从裸机启动一个C++程序实战操作

    中断的调用需要配合固定的寄存器传入参数,之前我们说过,默认情况下显卡使用的是文字模式,那么只要重新再进入一次文字模式就可以自动清屏功能,需要al传入0x03,ah传入0x0,然后使用0x10中断即可实现清屏...来看看效果: mov al, 0x03 mov ah, 0x00 ; 也可以写作 mov ax, 0x0003 int 0x10 ; 调用0x10BIOS中断,清屏 mov ax, 0xb800 mov...大概效果如下: 调试 而在经历一些加载数据功能后,我们还可以用x命令来查看对应内存位置,例如当执行完0x13中断后,我可以看一下0x08000位置的内存,到底有没有写入数据: 内存数据 也可通过r和sreg...改为硬盘启动 BIOS中断的局限性 照理说,按照前面一节的方法,利用BIOS中断加载软盘中的数据到内存中再去执行,在8086下貌似是没什么问题的。...下面给出完整代码: ; C0H0S1 ; 调用0x10BIOS中断,清屏 mov al, 0x03 mov ah, 0x00 int 0x10 ; LBA28模式,逻辑扇区号28位,从0x0000000

    76833

    操作系统开发:BIOSMBR基础与调试

    BIOS 软件接力第一棒 BIOS 基本输入输出系统,BIOS代码所做的工作是一成不变的,所以他是被固化到ROM中的一块只读区域中,在开机时此ROM会被映射到低端1MB内存的顶部,原因是系统在开启时默认是实地址模式...接着BIOS将会通过自身的代码对硬件进行自检测,在初始化硬件后,则开始向内存0x000-0x3ff中初始化数据结构以及拷贝中断向量表,紧接着BIOS将会通过调用int 19h中断,此中断用以检测计算机中的硬盘...; mbr的结束标志 进入Bochs目录下执行bximage.exe生成一个映像文件,默认是a.img,你可以改名为其他的,这里我定义为linux.img 并将编译好的mbr.bin写入到镜像中...上面我们通过调用BIOS提供的int 0x10中断来实现打印字符操作,但我们在后期必须要借助显卡来输出图像,而显卡是外部设备,必须通过总线来操作。...",0ah,0dh message db "Hello LyShark..." msglen equ $ - message times 510-($-$$) db 0 ; 填充剩余的510字节的空间为

    33020

    Linux源码学习笔记day5 内存0地址处放的都是些什么玩意儿?

    这里又发起了一个10号中断, 上一次我们提到 13号是BIOS提供的读磁盘中断程序。0x10中断调用显示服务的中断处理程序。 把寄存器ah赋值成0x03是为了给显示服务里,读取光标位置的子服务。...0x10中断程序结束时,会在dx寄存器里存储光标的位置: 高八位 dh 存储行号, 低八位 dl 存储列号。...: mov $0x0f, %ah int $0x10 mov %bx, %ds:4 # bh = display page mov %ax, %ds:6 # al = video mode,...ah = window width # check for EGA/VGA and some config parameters mov $0x12, %ah mov $0x10, %bl int...存储好数据之后,用cli 关闭中断. 之所以关闭中断,是为了要写上我们自己的中断向量表,所以在这期间是不允许中断进来的。

    37910

    操作系统开发:BIOSMBR 编写开机引导

    BIOS 软件接力第一棒 BIOS 基本输入输出系统,BIOS代码所做的工作是一成不变的,所以他是被固化到ROM中的一块只读区域中,在开机时此ROM会被映射到低端1MB内存的顶部,原因是系统在开启时默认是实地址模式...接着BIOS将会通过自身的代码对硬件进行自检测,在初始化硬件后,则开始向内存0x000-0x3ff中初始化数据结构以及拷贝中断向量表,紧接着BIOS将会通过调用int 19h中断,此中断用以检测计算机中的硬盘...; mbr的结束标志 进入Bochs目录下执行bximage.exe生成一个映像文件,默认是a.img,你可以改名为其他的,这里我定义为linux.img 并将编译好的mbr.bin写入到镜像中...上面我们通过调用BIOS提供的int 0x10中断来实现打印字符操作,但我们在后期必须要借助显卡来输出图像,而显卡是外部设备,必须通过总线来操作。...",0ah,0dh message db "Hello LyShark..." msglen equ $ - message times 510-($-$$) db 0 ; 填充剩余的510字节的空间为

    1.3K20

    计算机是如何启动的?一文教你自制操作系统

    早期计算机通过先为内存供电,将启动所需的程序预先写入内存的临时方法来解决这个悖论,但后来,BIOS 的诞生终于圆满的解决了这个问题。 3....BIOS 中断基本介绍及列表 既然我们要在屏幕上显示“Hello World my OS!”,那么首先要解决的问题是怎么让 BIOS 能够将内存中的信息显示在屏幕上。...在中断触发后,BIOS 会去读取寄存器 AH 中的值,并根据这个字节的内容,来进行不同的操作,例如,如果 AH 中存储的是 13H,BIOS 就会在屏幕上显示一行字符串。 4.2....利用 BIOS 10H 号中断实现字符串显示 上面已经提到,在 INT 10H 触发时,如果 AH 中存储的是 13H,那么 BIOS 就会在屏幕上显示一行字符串。 4.2.1....— 并行端口服务 1AH中断 — 时钟服务 00H 号中断 — “0”作除数 01H 号中断 — 单步中断 02H 号中断 — 非屏蔽中断(NMI) 03H 号中断 — 断点中断 04H 号中断

    2.8K10

    3.10 中断指令

    在 x86 汇编语言中,软中断指令 INT n 用于生成一个软件中断,通过调用操作系统或BIOS提供的服务。软中断允许程序在运行时请求操作系统或BIOS执行某些功能,类似于调用系统函数。...AH = 0x02: 设置光标位置。 AH = 0x0E: 显示字符。 INT 13h: 磁盘服务中断 用途: 提供磁盘操作服务,如读取和写入磁盘扇区。...AH = 0x01: 读取字符。 AH = 0x09: 打印字符串AH = 0x4Ch: 退出程序。...DX 寄存器现在包含了字符串的地址。 - `INT 21h`: 调用 DOS 中断 21h。由于 AH 寄存器中包含 09h,这次中断调用会打印 DX 寄存器中指定的字符串(即 `MSG`)。...虽然 `$` 已经足够标识字符串的结束,`0` 是为了避免潜在的字符串结束问题(尤其是对其他功能)。 整体流程 程序开始: 从地址 100h 开始执行代码。

    10110

    汇编语言中断及外部设备操作篇--06

    示例 :中断7ch的中断例程 BIOS和DOS中断处理 BIOS——基本输入输出系统 BIOS中断调用示例 有哪些BIOS中断,怎么用?...应用示例:更改屏幕颜色 应用:字符串的输入 要解决的问题 程序的处理过程 子程序:字符栈的入栈、出栈和显示 实现字符栈的入栈、出栈和显示 读写磁盘 如何操作磁盘?...,这个操作是如何完成的 通过在ah中设置需要执行的子程序在表中的相对偏移地址,但是ah保存的偏移地址单位是字节,而表单位是字,因此还需要*2,得到子程序在表中真实的偏移地址 ---- 直接写址表的优势...do0中断程序的入口地址,写入中断向量表的0号表项中 因为do0中断程序中mov ax,4c00h int 21h会直接结束程序运行,返回DOS系统,因此并不会在中断程序执行结束后,返回原有程序继续执行...存放扫描码,AL存放ASCII ---- 调用int 16h 从键盘缓冲区中读取键盘的输入 ---- 应用示例:更改屏幕颜色 ---- 应用:字符串的输入 要解决的问题 ---- 程序的处理过程

    87410

    从图灵机到操作系统的启动

    它是图灵完全的电子计算机,能够重新编程,解决各种计算问题。它于1946年2月14日在美国宣告诞生。...在0xFFFF0这个地方存放着BIOS程序(Basic input and output system)。然后计算机进入“自检”。接着从0磁道0扇区读入0x7C00处的内容。...在这里继续执行,会遇到一个0x13BIOS中断,该中断是读磁盘扇区的中断。在接下来读取的4个扇区内存放着setup程序。...在此期间0x10BIOS中断加载一个显示到屏幕上,就是我们开机时看到的启动画面。...main函数开始执行一系列初始化操作,包括内存,中断,设备,时钟,CPU等。所以操作系统是在CPU的保护模式下运行的。 经过上面一系列的过程,我们的计算机就算正式开机了。

    62020

    实战分页机制实现 -- 通过实际内存大小动态调整页表个数

    通过 BIOS 中断获取内存信息 我们曾经通过 BIOS 的 10H 硬件中断实现向显示器输出一行文字。 计算机是如何启动的?...原理 用于获取内存信息的 10H 中断将内存信息拼装为一个 20 个字节的数据结构 — 地址范围描述符结构,写入到指定的内存中。...准备工作 利用 BIOS INT 15H 获取内存信息前,需要填充以下寄存器: EAX — 设置为 0E820h,表示获取内存信息 EBX — 设置为 0 ES:DI — 信息写入的内存区域首地址 ECX...— 内存区域大小字节数,通常系统需要写入的数据是 20 字节,如果 ECX 值小于 20,那么 BIOS写入 ECX 字节,但有些实现中 BIOS 没有考虑 ECX 的值,总是写入 20 字节 EDX...INT 15H 中断完成后寄存器的值 EFLAGS — EFLAGS 的 CF 位表示中断执行是否出错,位 0 表示没有出错,为 1 表示出错 EAX — 0534D4150h ECX — BIOS 实际写入字节数

    82320

    汇编基础

    ,iret与栈的深入理解 BIOS与dos中断例程的安装 开机后CS:0FFFFH,IP=0, 该位置有一条跳转指令,执行后专区bios的硬件检测与初始化程序 初始化程序,将BIOS所支持的中断向量,即...Bois提供的中断例程入口记录在中断向量表 完成后 int 19h进行操作系统的引导,将计算机交给操作系统 dos病毒就是改变 int 19h的中断 BIOS中断历程应用 int 10h中断的设置光标位置功能...送入主板接口芯片寄存器,寄存器端口60h 松开时也会送入 到达60h时,发送int 9 中断 Bios int9中断例程, 读取60h端口扫描码 是字符,将扫描码与ascii送入bios键盘缓冲区(因为有些操作在操作系统之前...,就是int16h 字符串的输入 要求 能够输入 输入时显示 可以删除 使用栈 int 13h 柱面号,磁道号,扇区号 读取: ah = int 13h ;功能号,2表示读取,3表示写入 al=读取扇区数...ch=磁道号 cl=扇区号 dh=磁头号 dl=驱动号 0:软驱A,1:软驱B 80h:硬盘C,81h:硬盘D ex:bx 向此区域读入数据 ah=0,al = 读入的扇区数 ah=出错代码 写入同上

    1.4K41

    【汇编语言王爽】学习笔记p54-p79

    操作一一对应,执行irep返回的时候意义出栈 中断例程2 bios 和 dos中断处理 bios–在系统版的rom存放–容量8KB,地址从FE000H开始 BIOS要做硬件系统的检测和初始化工作...BIOS-比如显示内容 必须要算 推算了解显示的内存区域在哪里 bios的10h中断,(ah)=2调用第十号h终端的2耗子程序没设置光标位置 (ah)=9 调用10h中断的9号子程序 在光标位置显示字符...bios调用两个中断完成 显示高亮闪烁a 直接BIOS终端手册-----例子 汇编还有DOS中断–强大 小结-bios,dos中断 程序返回 int 21H DOS中断例程----其实就是...键盘缓冲区 如果控制键的扫描码 就将其转变为状态字节就那个 字节里面–内存的 写入内存中存储状态字节的单元然后对键盘系统进行县官的控制 实例 输入a处理过程 定制键盘输入处理----int9 中断例程...数据结构) 小结 调用16h从缓冲区读数据------int 9 和int 16是相互配合的程序------软硬件搭配 9是硬件------16软件来做 应用实例 用键盘输入更改屏幕颜色 应用 字符串输入

    82930

    操作系统开发:编写开机引导

    接着BIOS将会通过自身的代码对硬件进行自检测,在初始化硬件后,则开始向内存0x000-0x3ff中初始化数据结构以及拷贝中断向量表,紧接着BIOS将会通过调用int 19h中断,此中断用以检测计算机中的硬盘...简单的引导MBR的代码如下,首先我们需要先初始化每个段寄存器DS,ES,SS,FS,SP然后通过调用两次int 0x10中断对命令行进行置空操作,最后通过mov ax,01301h也就是13号中断,打印出字符串...让MBR直接驱动显卡 如上代码,我们通过调用BIOS提供的int 0x10中断来实现打印字符操作,但我们在后期必须要借助显卡来输出图像,而显卡是外部设备,必须通过总线来操作。...",0ah,0dh message db "Loading MBR..." msglen equ $ - message times 510-($-$$) db 0 ; 填充剩余的510字节的空间为...之所以需要增加全局描述符表,并为每个段增加段描述符,是因为实模式下存在以下问题。 实模式下的用户程序可以破坏存储代码的内存区域,所以要添加个内存段类型属性来阻止这种行为。

    65130
    领券