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

NASM简单引导加载程序不会使用INT 13H加载扇区

NASM简单引导加载程序是一种使用汇编语言编写的引导加载程序,用于启动计算机并加载操作系统。它不会使用INT 13H来加载扇区。

INT 13H是BIOS中断,用于进行磁盘读写操作。在引导加载程序中,通常会使用INT 13H来加载操作系统的扇区到内存中。但是,NASM简单引导加载程序不会使用INT 13H来加载扇区,而是使用其他方法来实现加载功能。

NASM简单引导加载程序的工作原理如下:

  1. 引导加载程序位于计算机的引导扇区,通常是磁盘的第一个扇区。
  2. 当计算机启动时,BIOS会将控制权转移到引导扇区的代码。
  3. NASM简单引导加载程序会执行一系列指令,完成以下任务:
    • 初始化计算机硬件和环境。
    • 加载操作系统的其他扇区到内存中。
    • 跳转到操作系统的入口点,将控制权交给操作系统。

由于NASM简单引导加载程序不使用INT 13H加载扇区,因此它可能使用其他方法来加载扇区,例如直接读取磁盘的数据或使用其他硬件接口。

NASM简单引导加载程序的优势是简单、轻量级,适用于一些简单的引导加载需求。它可以用于引导加载各种操作系统,如Windows、Linux等。

在腾讯云的产品中,与NASM简单引导加载程序相关的产品是云服务器(CVM)。云服务器提供了强大的计算能力和稳定的网络环境,可以用于部署和运行NASM简单引导加载程序。您可以通过以下链接了解更多关于腾讯云云服务器的信息: https://cloud.tencent.com/product/cvm

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

相关·内容

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

512 字节,这第一个 512 字节也就因此被称为引导扇区。...此时,BIOS 将这第一个扇区载入到内存地址 0x7C00h 的位置,就开始执行这段引导代码了,这也就是操作系统设计时的第一段代码,通过这段代码会加载并跳转到磁盘的另一段代码中,从而开始整个操作系统的引导...利用 BIOS 10H 号中断实现字符串显示 上面已经提到,在 INT 10H 触发时,如果 AH 中存储的是 13H,那么 BIOS 就会在屏幕上显示一行字符串。 4.2.1....rawrite2 软件,只需要在 cmd 或者是运行窗口中执行: rawrite2.exe -f boot.bin -d boot.img 同时你也可以安装更为强大的 UltraISO 软件,如下图点击启动菜单,加载引导文件选项...是不是从未想过制作一个自己的操作系统是如此简单

2.8K10

通过汇编实现引导程序

启动流程 通电后,主板上BIOS或者UEFI,会加电自检(检查硬件有没错误),加载bootloader(执行程序)到内存 bootloader被写死在磁盘上第一个扇区,启动后被加载到内存的一个固定的位置...因此引导程序一定要放在这个位置才能执行。 ; 下面部分和10h有关中断,10h中断用来显示字符 ; 8086CPU 16位寄存器想用20位寻址,于是加了段寄存器。为了向后兼容,后来一直保留下来。...(是装有Linux系统的硬盘的第一个扇区) 汇编伪指令ORG,规定程序的起始地址,其作用是告诉汇编程序,以下机器语言加载到内存中的哪个地址。...这个大小是固定的 dd if=boot.bin of=myos.img bs=512 count=1 制作包含主引导记录boot.bin的启动镜像文件,512字节的引导程序 dd if=floppy.img...of=myos.img skip=1 seek=1 bs=512 count=2879 引导程序复制到软盘上。

1.1K10
  • 历史性的一跳 -- 从启动扇区跳转到 loader

    实战 FAT12 文件系统 本文,我们就来通过上述原理,实现软盘读取,并且加载并让我们的启动盘跳转进入到软盘上文件所写的程序。...那么,如何获取柱面号、磁头号、盘片起始扇区号呢,根据上面的原理,也很简单: 柱面号 = 扇区号 / 每磁道扇区数 / 2 磁头号 = 扇区号 / 每磁道扇区数 & 1 起始扇区号 = 扇区号 % 每磁道扇区数...让启动程序找到 loader demo 5.1. 复位软驱 首先,我们要执行复位中断,复位软驱: xor ah, ah xor dl, dl int 13h 5.2....加载其他 loader 本文重点就在于我们对启动程序的修改,loader 其实并不重要,也就是说,我们可以把此前我们写过的任何程序作为 loader.bin 来启动。...; 未使用 BS_BootSig DB 29h ; 扩展引导标记 (29h) BS_VolID DD 0

    1.7K20

    常驻型计算机病毒工作原理,复习计算机病毒分析与防范

    复习计算机病毒分析与防范 2016-04-25 … 引导型病毒的工作原理 在BIOS后,操作系统前,通过中断服务程序(向量表 INT 13H),占据物理位置(常驻内存高端),替换、截获系统中断从而伺机传染发作...主引导扇区BS的结构 MBR主引导记录、DPT(Disk Partition Table)分区信息、结束标志(AA55H)。...为什么要重定位技术 病毒要用到变量,但依附到程序上时位置变化就不能正常使用,这里需要用到重定位。 如何实现重定位call跳到下一条指令,使下一条指令感染后的实际地址进栈。...病毒如何常驻内存 将自身复制到内存高端(10 0000H之后),修改内存容量标志单元(0000:0413处),减去病毒长度,使得常驻内存;然后将原int 13h磁盘中断服务程序的中断向量保存,并修改其指向病毒代码...引导型病毒特点在操作系统之前进入内存 减少操作系统所掌管的内存大小 修改int 13h 的中断向量,指向内存高端 必定驻留硬盘的主引导扇区引导扇区,并且只驻留一次 把感染的主引导扇区引导扇区和未感染的进行比较

    46420

    实战操作系统 loader 编写(上) -- 进入保护模式

    引言 此前的文章中,我们详细介绍了从引导扇区跳转到 loader 的工作: 从启动扇区跳转到 loader 引导扇区的工作已经告一段落,接下来我们的工作就是编写我们的 loader 了。...2. loader 加载内核的过程 有了通过引导扇区加载 loader 的经验,让 loader 加载内核就简单的多了。...从原理上来说,loader 加载内核也同样是从 FAT12 的软盘文件系统上找到内核入口文件,这与引导扇区做的事情并没有很大的区别,这里也不进行详细的介绍,只是分块大致讲解一下。...在软盘中寻找 kernel.bin 想了解更加详细的内容,参考此前引导扇区加载 loader 的代码: 从启动扇区跳转到 loader 主要步骤仍然是: 循环读取根目录区的一个扇区 循环读取当前扇区内的一个条目...int 13h jc .GoOnReading ; 如果读取错误 CF 会被置为 1, 这时就不停地读, 直到正确为止 add esp,

    1K20

    x86汇编加载用户程序-4-1

    离开主引导扇区之后,前方通常就是操作系统的森林,也就是我们经常听说的 DOS、Windows、Linux、UNIX 等, 本篇要实现的就是通过引导程序加载硬盘上的用户,并执行。...由于内容比较多,用户程序简写了, 下一篇将在此基础上写入带有多段用户程序 引言 简单介绍本次实践,需要用的知识点。...我们会预先加载一个扇区,查看用户程序头部的信息内的程序大小,判断是否加载完成。...fixvhdwr.exe 程序逻辑 加载程序 8086cpu最大寻址空间是1MB,0x00000到0x0FFFF是引导程序,0xA0000到0xFFFFF是bios程序,因此0x10000到0x9FFFF...代码 引导程序 mbr.asm ; 声明程序扇区的位置,这里假设在第100扇区 app_lba_start equ 100 SECTION mbr align=16 vstart=0x7c00

    60010

    计算机系统是如何启动的?

    硬件接口 BIOS首先提供的就是基本的输入/输出功能,通过中断的方式实现,比如INT 10h: 字符显示、INT 13h: 磁盘扇区读写、INT 15h: 检测内存大小和INT 16h: 键盘输入。...下面是寻找并加载启动设备的简单过程: 1.读取启动设备第一个扇区中的内容到内存,并跳转到该地址执行扇区中的启动代码2.如果设备内容不合法,则回到BIOS,按照启动顺序加载下一个启动设备。...主引导记录 BIOS-MBR启动流派中,启动设备的第一个扇区的内容称为主引导记录(MBR,Master Boot Record),它的结构如下: ?...3.第511-512字节:主引导记录签名(0x55和0xAA),标志当前扇区是否合法,不合法(不是55AA),会跳回BIOS寻找下一个启动设备 启动代码 简单来将,启动代码负责把扇区中的操作系统代码加载到内存...如果启动过程很简单,比如MBR中的启动代码直接加载执行操作系统代码,那么MBR中的启动代码就可以理解为启动管理器。

    1.2K33

    《一个操作系统的实现》笔记(1)--NASM汇编语法和环境搭建

    Bochs虚拟机调试方法 也可以在输入b 0x7c00之后继续执行,这样当引导扇区执行到这里时,我们就可以单步调试了,使用dump_cpu可以查看CPU寄存器,x /64xb [addr]查看某个内存地址处的内容...,比如jpeg文件格式以0xFFD8作为图像数据的开始标记),则BIOS认为它是一个引导扇区。...一旦BIOS发现了引导扇区,就会将这512字节的内容装载到内存地址0000:7c00处,然后跳转到0000:7c00处将控制权彻底交给这段引导代码。...NASM汇编器帮我们完成了由汇编程序到机器指令的转换。...在NASM中,任何不被方括号括起来的标签或变量名都被认为是地址,访问标签中的内容必须使用[ ]。 一个简单的boot程序,开机后显示红色的”Hello,OS world!”

    4.1K52

    试一试在没有操作系统的机器上运行下我们的代码

    Hello,小伙伴们大家好,在上一篇文章中(传送门:没有操作系统,也能运行我们的程序?(理论部分)),我们已经知道了一台计算机是如何加载操作系统到内存之中的。...在这里简单的回顾一下,首先CPU先执行ROM中的BIOS程序进行硬件自检,硬件没问题之后,BIOS程序开始加载硬盘第一个扇区共512个字节到内存中,这512个字节是操作系统的引导代码,是专门引导操作系统的...,因此这个扇区也叫主引导扇区。...我们使用NASM-IDE编写代码,编写完之后,使用NASM编译器对代码进行编译。根据以上思路,我们要把要显示的字符写入到地址B8000开始的位置处,所以我们的段地址为B800。...每次执行主引导扇区代码时都会首先检查该主引导扇区最后2字节是否是"55 AA",若是,则会执行主引导扇区,否则,则认为这是一个无效的主引导扇区,停止执行。

    1.3K41

    CPU工作原理

    1.3 运行程序 # 编译汇编程序 nasm -o print.bin print.S # 创建虚拟机镜像 qemu-img create -f raw vm1.raw 1G # 将编译后的汇编程序写入第一个扇区...程序分析 如何加载操作系统已经讲到了如何加载我们的操作系统,在加载操作系统是我们提到了主引导程序,上述代码其实就是相当于MBR程序(但这里并不是去引导加载操作系统,只是在屏幕上打印一句话)。...BIOS在完成自检等初始化操作以后,会跳转到固定0x7c00处执行主引导程序,因此我们的代码使用vstart=0x7c00来表明我的代码会被初始化在内存的0x7c00处。...我们的应用程序使用vstart以后,应用程序便被赋予了一个虚拟的起始地址,不管是虚拟地址还是真实地址,只要将这个地址交给了地址总线,地址总线便会去 查找该地址处的内容。...前缀在指令格式中是可选模块,操作码对着我们应用程序中的mov,jmp等,寻址方式又分为基址寻址、变址寻址等(后续细讲),操作数类型记录的是 使用的寄存器。

    67530

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

    本文使用到的工具都是业界通用的、能轻易在网上下载到并且很容易找到对应说明文档的软件,不会使用笔者自研的黑盒程序,并且会详细介绍每一种工具的部署、使用方法,保证读者可以完成实验 对于一些历史发展历程,和一些历史遗留问题的诞生...这里需要强调的是,汇编语言指导的是机器指令,它不具备高等语义,因此,汇编器不会去检查0x08200这个地址在不在你当前操作的源文件里,也不会去管那个位置到底会不会加载合法的指令,这一切都应该由程序员自行负责...多加载几个扇区 到目前为止,我们的程序都挤在软盘的第一个扇区里,指望BIOS自动加载。不过显然这区区512字节的空间很容易捉襟见肘,那么如何把软盘中的其他扇区内容也加载到内存中呢?...0x03 mov ah, 0x00 int 0x10 ; 加载一个扇区到0x08000的位置 mov ax, 0x0800 mov es, ax mov bx, 0 ; 软盘中的内容会加载到es:bx...1号扇区就是MBR,已经加载进来了,所以我们从第2号扇区开始加载。虽然只是一个简单的2号,但其实LBA28模式下扇区号是有28位的,因此我们要拆分成4次,分别写入不同的端口中。

    76533

    Flare-On 2018 writeup(下)

    后门下载器加载库函数从ldr链表中遍历模块和模块函数,使用Hash来获取API定位,此后的API都用这种方法遍历,由于是病毒经典使用方法,可以搜到hash表,没有搜索到的可以动态修改hash参数来取结果...13h) 0x9740:0x5e6f = db 0 0:0x200 = dw 0xca000117 (real int 13h) 0:0x4c = dw 0x97400012 (int 13h hook...查阅资料,这种在mbr将系统服务进行hook的技术在bootkit很常用,由于预先于操作系统、应用程序加载所以很难被查杀 ?...继续跟进,可以发现进入伪造的int 13h函数会先记录int 13h所有的参数并执行真正的系统服务,然后对参数进行比对进入相应的handler,主要是读扇区时,hook解码原版mbr以及在打开message.dat...兼容性不好,并不能进入dos系统执行infohelp(bochs据说可以正常运行和调试),我在int 13h进行其他服务时,修改了参数以触发解密程序 解密程序如下 ?

    58140

    详解MBR篡改技术

    2、DBR区 DBR(Dos Boot Record操作系统引导记录区)位于硬盘的0磁道1柱面1扇区,是操作系统可以直接访问的第一个扇区,它包括一个引导程序和一个被称为BPB(Bios Parameter...需要注意的是MBR不随操作系统的不同而不同,意即不同的操作系统可能会存在相同的MBR,即使不同,MBR也不会夹带操作系统的性质,具有公共引导的特性。 Question2:所有电脑都有MBR引导区吗?...笔者刚开始选择masm对其进行编译,报一堆错误,后来才发现该汇编语法规范属于nasm使用nasm顺利生成了payload。...而程序中对磁盘的操作直接使用了fopen等文件操作函数,这是为什么?...ah, 0x42 int 0x13 ;使用int13h,ah=0x42读取扇区 mov ax, [d_lba] ;将ax赋值为1号扇区 add ax, 1 ;扇区号累加操作 mov [d_lba],

    1.6K20

    引导扇区程序在屏幕显示文字-1

    这章是学习了x86汇编从实模式到保护模式的初步实践,主要完成 1.利用显卡在屏幕上显示文字, 2.使用div汇编指令将标号以十进制的方式显示 引言 简单介绍本次实践,需要用的知识点。...主引导扇区 指的是处理器加电或者复位后,ROM-BIOS读取启动硬盘的第一个扇区,512字节。该扇区的最后两个字节必须 是0x55 0xaa。...程序环境 NASM 编译器版本 :nasm-2.07 IDE :vs code 虚拟机: oracle vm virtualBox 最新版 写入工具:fixvhdwr.exe 虚拟机 创建的虚拟机要使用固定大小...vhd格式硬盘,以模拟启动硬盘,我们将把二进制程序,写入到该硬盘的第一个扇区。...举例如下 个位数位5,则 字符5的ascii码= 5+ 0x30 = 0x35 代码 mov ax,0xb800 ;3B 0xb800 扇区程序加载到该地址 mov es,ax ;

    88710

    写一个boot引导程序

    BIOS引导原理 首先要了解BIOS的引导原理。启动时自检过程中会去检查磁盘的第0磁头第0磁道的第1扇区,检查其是否以0x55和0xaa为结尾,如果是的话,就认为它是一个引导扇区。...接着就会将这个扇区复制到内存的0x7c00处,随后从0x7c00处开始执行。 BIOS跳转到引导程序的之前,会初始化处理器,设置CS寄存器为0x0000,指令指针寄存器IP为0x7c00....mov ax, cs mov ds, ax mov es, ax mov ss, ax mov sp, BaseOfStack 清屏 使用BIOS的10h的中断服务程序来清屏...的位置 mov ax, 0x0200 mov bx, 0x0000 mov dx, 0x0000 int 10h 显示字符串 使用BIOS的INT10的主功能AH=13h...可以显示字符串 填满第一个扇区 为了确保boot的映像大小刚好是第一个扇区的大小,使用下面的方法来填满整个扇区

    61230

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

    简单引导MBR的代码如下,首先我们需要先初始化每个段寄存器DS,ES,SS,FS,SP然后通过调用两次int 0x10中断对命令行进行置空操作,最后通过mov ax,01301h也就是13号中断,打印出字符串...由于CPU使用的信号是TTL电平,而外部设备都是机械设备,故他们不会使用该电平驱动,这就导致CPU与硬件设备没有办法实现沟通,硬件工程师们提供的方法是,在这两者之间架起一座桥,也就是在CPU和外设之间加上一层...由于MBR受制于只能容纳512字节大小的数据,没法为内核准备好环境,更没法将内核成功加载到内存并运行,此时我们需要让MBR实现从硬盘加载Loader程序到内存,加载完成后再将接力棒交给Loader继续运行...,从第1扇区之后的扇区均可使用,此处我们把loader放到第2扇区,MBR从第2扇区中把它读出来,并将loader的加载地址选为0x900的位置,编译镜像需要注意扇区位置。...# 编译并连接include目录 nasm -I include/ mbr.asm -o mbr.bin # 第一个扇区中写入512字节的mbr引导 dd if=mbr.bin of=kernel.img

    65130

    常见计算机病毒类型及原理「建议收藏」

    国外专家认为特征代码法是检测已知病毒的最简单、开销最小的方法。...在文件使用过程中,定期地或每次使用文件前,检查文件现在内容算出的校验和与原来保存的校验和是否一致,因而可以发现文件是否感染,这种方法叫校验和法,它既可发现已知病毒又可发现未知病毒。...③将校验和检查程序常驻内存,每当应用程序开始运行时,自动比较检查应用程序内部或别的文件中预先保存的校验和。 校验和法的优点是:方法简单能发现未知病毒、被查文件的细微变化也能发现。...这些做为监测病毒的行为特征如下: A.占有INT 13H 所有的引导型病毒,都攻击Boot扇区或主引导扇区。系统启动时,当Boot扇区或主引导扇区获得执行权时,系统刚刚开工。...一般引导型病毒都会占用INT 13H功能,因为其他系统功能未设置好,无法利用。引导型病毒占据INT 13H功能,在其中放置病毒所需的代码。

    1K40
    领券