2.2 BIOS中断】的更多相关文章

BIOS中断大全 BIOS中断:1.显示服务(Video Service——INT 10H)  00H —设置显示器模式0CH —写图形象素01H —设置光标形状0DH —读图形象素02H —设置光标位置0EH —在Teletype模式下显示字符03H —读取光标信息0FH —读取显示器模式04H —读取光笔位置10H —颜色05H —设置显示页11H —字体06H.07H —初始化或滚屏12H —显示器的配置08H —读光标处的字符及其属性13H —在Teletype模式下显示字符串09H —…
BIOS中断 BIOS中断简介 计算机刚启动时,进入实模式下,此时操作系统跟硬件(例如键盘鼠标显卡等)交互通过BIOS进行的.通过调用中BIOS中断的方式来访问硬件设备. BIOS中断就不详细介绍了. BIOS中断大全 查询相应的中断API可以根据BIOS中断大全:BIOS中断大全 BIOS的中断向量表 中断向量表位置 中断向量表位于BIOS的 0x0000 - 0x03FF 地方,大小为 1k. 中断号 说明: int 中断号 0x00 DIVIDE ERROR 0x01 SINGLE STE…
一. 软盘基础知识介绍 (1) 3.5英寸软盘 3.5英寸软盘分为上下两面,每面有80个磁道,每个磁道又分为18个扇区,每个扇区大小为512个字节. 软盘大小计算: 2面 * 80磁道 * 18扇区 * 512 字节 = 1440KB ≈ 1.44MB (2) 5.25英寸软盘 5.25英寸软盘每个磁道只有15个扇区,其它的与3.5英寸软盘一样.因此,5.25英寸软盘大小为 1.2MB 磁盘的实际访问由磁盘控制器进行.我们可以通过控制磁盘控制器来访问磁盘.只能以扇区为单位对磁盘进行读写.在读写扇…
BIOS中断: 1.显示服务(Video Service--INT 10H) 00H -设置显示器模式0CH -写图形象素  01H -设置光标形状0DH -读图形象素  02H -设置光标位置0EH -在Teletype模式下显示字符  03H -读取光标信息0FH -读取显示器模式  04H -读取光笔位置10H -颜色  05H -设置显示页11H -字体  06H.07H -初始化或滚屏12H -显示器的配置  08H -读光标处的字符及其属性13H -在Teletype模式下显示字符串…
;名称:ILOVEU程序 ;使用BIOS提供的中断例程 assume cs:code code segment main: ;显示背景22*80 ;dh中放行号 ;dl中放列号 bibi: push cx ;显示光标 ;第0页 int 10h ;在光标处显示个数自定的字符 ;9为在"在光标处显示字符的功能"的功能号 ' ;字符 mov bl,00001010b ;颜色属性 ;第 0 页 ;显示字符的个数 int 10h inc dl ;显示光标 ;第0页 int 10h ;在光标处显示…
2013-06-20 21:08:48 中断的配置有两种常用的方式: 一是通过CSL提供的API进行配置,这种方法相对DSP/BIOS偏底层,也比较麻烦:这种方法要求对中断系统的工作方式很清楚. 二是通过DSP/BIOS的图形界面配置,这种方法对于新手来说更加方便,不用写代码,就能完成中断的配置:相对第一种,该方法对开发者的要求较低. 6455的中断是基于事件的,共有128个事件,但CPU可用的中断只有12个,这就有了事件组合(event combination),将128个事件分为4组,减小到…
这只是一点准备工作.为了显示字符串,需要调用中断:int  0x10 (AH=0x13).具体参数设置,参考我的归纳整理如下: INT 10 (AH = 0) -----------------功能:设置显示方式调用参数:    AL = 00:40 * 25 黑白方式         01:40 * 25 彩色方式         02:80 * 25 黑白方式         03:80 * 25 彩色方式         04:320 * 200 彩色图形方式         05:320…
1.字符功能调用类(Character-Oriented Function)01H.07H和08H —从标准输入设备输入字符02H —字符输出03H —辅助设备的输入04H —辅助设备的输出05H —打印输出06H —控制台输入/输出09H —显示字符串0AH — 键盘缓冲输入0BH —检测输入状态0CH —清输入缓冲区的输入功能(1).功能01H.07H和08H 功能描述:从标准输入设备(如:键盘)读入一个字符.该中断在处理过程中将一直处于等待状态直到有字符可读为止.该输入还可被重定向,如果这…
DOS中断: 1.字符功能调用类(Character-Oriented Function)01H.07H和08H —从标准输入设备输入字符02H —字符输出03H —辅助设备的输入04H —辅助设备的输出05H —打印输出06H —控制台输入/输出09H —显示字符串0AH — 键盘缓冲输入0BH —检测输入状态0CH —清输入缓冲区的输入功能(1).功能01H.07H和08H 功能描述:从标准输入设备(如:键盘)读入一个字符.该中断在处理过程中将一直处于等待状态直到有字符可读为止.该输入还可被…
1,cmos简介.   cmos是主板上一块可读写的RAM芯片.用途:主要用来保存当前系统的硬件配置和操作人员对某些参数的设定.cmos芯片是由一块纽扣电池供电.因此在关机状态内部信息也不会丢失. 2,cmos所在的端口.    cmos芯片是挂在cpu的io空间上的.(x86体系是独立编址的).cmos拥有两个端口号分别是70h和71h  端口号 权限  长度 作用  70h 不可读可写  8bit  用它来设置cmos中的数据地址  71h  可读可写  8bit  用它来设置70h端口地址…
本文针对Award公司开发的计算机系统BIOS提出了一种嵌入应用程序的方法,其基本原理对别的品牌的BIOS也一样适用,仅需稍加修改.文中作者给出并讨论一个完整的例子程序,该程序已经通过实验验证.  正文 一. BIOS简述 这里所讲的BIOS是指计算机主板上的BIOS,是整个计算机的关键和灵魂,计算机一启动就是执行BIOS程序,它负责加电自检,初始化计算系统,响应用户对系统配置的修改,记录数据到CMOS中,将常驻程序库(Runtime Program)常驻于内存中,提供给系统和应用程序调用,经过…
catalog . BIOS简介 . UEFI BIOS . EFI编程简介 . UEFI Rootkit 1. BIOS简介 BIOS("Basic Input Output System 基本输入输出系统),它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序.开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息. 其主要功能是为计算机提供最底层的.最直接的硬件设置和控制 0x1: 芯片简介 BIOS设置程序是储存在BIOS芯片中的,…
DOS系统功能调用 这个汇编指令是用于提供DOS系统功能调用. 它是由DOS提供的一组实现特殊功能的子程序供程序猿在编写自己的程序时调用,以减轻编程的工作量. 分两种,re=view">DOS系统功能调用和BIOS中断调用. 链接里都是一些经常使用的内容,大家能够自己去百度,一定比我这里给出的全面非常多,有那种DOS系统功能调用表. 调用步骤大致 (1)系统功能号送到寄存器AH中. (2)入口參数送到指定的寄存器中: (3)用INT 21H指令运行功能调用: (4)依据出口參数分析功能调用…
资源 OS2018Spring课程资料首页 uCore OS在线实验指导书 ucore实验基准源代码 MOOC OS习题集 OS课堂练习 Piazza问答平台 暂时无法注册 疑问 为什么用户态和内核态不能共用一个栈?为什么系统调用时要切换到内核栈? x86的中断号哪些是硬中断.哪些是软中断或异常? x86中断描述符中的DPL是多少? DPL, CPL, RPL仍未理解? 感觉获取中断处理例程的过程略麻烦:首先根据中断向量索引IDT表获得中断门描述符,从中断门描述符中获得段选择子,根据段选择子索引…
在网上看到一篇关于CMOS的文章,分享一下. 原文地址:http://jingyan.baidu.com/article/c843ea0b51155d77921e4a7a.html BIOS是什么? 所谓BIOS,实际上就是微机的基本输入输出系统(Basic Input-Output System),其内容集成在微机主板上的一个ROM芯片上,主要保存着有关微机系统最重要的基本输入输出程序,系统信息设置.开机上电自检程序和系统启动自举程序等. BIOS的功用 BIOS ROM芯片不但可以在主板上看…
实验目的: 理解中断与异常机制的实现机理 对应章节:第三章3.4节,3.5节 实验内容: 1. 理解中断与异常的机制 2. 调试8259A的编程基本例程 3. 调试时钟中断例程 4. 建立IDT,实现一个自定义的中断,功能可自 定义,如特定键盘组合触发某个动作.电子 钟.自己游走的字符显示.蜂鸣器等 5. 了解IOPL的作用 完成本次实验要思考的问题: 1.什么是中断,什么是异常 2.8259A的工作原理是怎样的? 3.如何建立IDT,如何实现一个自定义的中 断 4.如何控制时钟中断 5.IOP…
不可否认,这次的标题有点长.之所以把标题写得这么详细,主要是为了搜索引擎能够准确地把确实需要了解 GCC 生成 16 位实模式代码方法的朋友带到我的博客.先说一下背景,编写能在 x86 实模式下运行的 16 位代码,这个话题确实有点复古,所以能找到的资料也相应较少.要运行 x86 实模式的程序,目前我知道的只有两种方式,一种是使用 DOS 系统,另一种是把它写成引导扇区的代码,在系统启动时直接运行.很显然,许多讲自己实现操作系统的书籍都会讲到 x86 实模式,也只有自己实现操作系统引导的朋友需要…
1.简介 本文主要介绍三个文件bootsect.s.setup.s.head.s,主要是做了些从软盘加载内核和设置32位保护模式的操作. 2.程序分析 当PC电源打开后,BIOS自检后将bootsect读入内存绝对地址0x7c00处,因为bootsect.s的结尾是: .word 0xAA55 然后跳转到0x7c00处并把执行权交给此处的代码,从start:处开始执行. BOOTSEG = 0x07c0 INITSEG = 0x9000 start: mov ax,#BOOTSEG mov ds…
中断是处理器一个非常重要的工作机制.第9章是讲中断在实模式下如何工作,第17章是讲中断在保护模式下如何工作. ★PART1:外部硬件中断 外部硬件中断是通过两个信号线引入处理器内部的,这两条线分别叫NMI和INTR.处理器正在运行的时候会收到各种各样的中断,有些中断必须被处理,这就叫非屏蔽中断:有一些中断的处理优先级没有那么高,并且可以屏蔽,这就叫可屏蔽中断 1. 非屏蔽中断(Non Maskable Interrupt,NMI) 一旦处理器接受到NMI,说明处理器遇到了严重事件,这个时候必须无…
从打开电源开始… 这神秘的黑色背后发生着什么?… 打开电源,计算机执行的第一句指令什么? 计算模型(图灵机) ⇒ 我们要 关注 指针IP 及其 指向的内容 看看x86 PC (1) 刚开机时CPU 处于实模式(和保护模式对应,实模式的寻址CS:IP(CS 左移4 位+IP) ,和保护模式不一样!) (2) 开机时,CS=0xFFFF; IP=0x0000 (3) 寻址0xFFFF0(ROM BIOS 映射区) (4) 检查RAM ,键盘,显示器,软硬磁盘 (5) 将磁盘0 磁道0 扇区读入0x7…
★PART1:32位保护模式下内核简易模型 1. 内核的结构,功能和加载 每个内核的主引导程序都会有所不同,因为内核都会有不同的结构.有时候主引导程序的一些段和内核段是可以共用的(事实上加载完内核以后就不需要主引导程序了),和加载一般的用户程序一样,主引导程序也是需要从硬盘中读取程序到指定的内存空间中. 同时,作为一个内核,也是一个程序,而且是一个具有管理全局的能力的程序,应该有固定的段,一般来说,内核应该包括以下几个部分: 1. 公用例程段(实现API功能) 2. 内核数据区(用于预读一些数据…
★PART1:进入保护模式 1. 全局描述符表(Global Descriptor Table,GDT)        32位保护模式下,如果要使用一个段,必须先登记,登记的信息包括段的起始地址,段的界限和各种访问属性,如果偏移地址超过了段的界限,就会引发异常中断.和一个段有关的信息需要8个字节来描述,这被称为段的描述符(Segement Descriptor),每个段都需要一个描述符,为了存放描述符,需要在内存中开辟一段空间.这些描述符集中存放,构成了一个描述符表. 为了跟踪全局描述符表,处理…
其实很久之前就学完了实模式了,但是一直没有总结,感觉现在直接在书上做笔记的弊端就是有些知识点不能很很深刻地记下来(毕竟手写最明显的优点就是能深刻地记住知识,但是就是用太多的时间罢了).一下内容都是一些这本书里面的知识和笔记. ★PART1:进制计数: 1.  二进制到十进制的相互转换(带权乘法) a. 二进制转十进制,只要把每一个位都乘以2的相应阶数就可以了,(无论是整数部分还是小数部分) b. 比如:10110001B=1*27+0*26+1*25+1*24+0*23+0*22+0*21+1*…
[原创]Linux系统启动过程分析-wjlkoorey258-ChinaUnix博客http://blog.chinaunix.net/uid-23069658-id-3142047.html 经过对Linux系统有了一定了解和熟悉后,想对其更深层次的东西做进一步探究.这当中就包括系统的启动流程.文件系统的组成结构.基于动态库和静态库的程序在执行时的异同.协议栈的架构和原理.驱动程序的机制等等. 本人在综合了现有网上大家智慧的基础上,结合对2.6.32的内核代码的研读,基于CentOS 6.0系…
[转]Linux系统启动过程分析 转自:http://blog.chinaunix.net/uid-23069658-id-3142047.html 经过对Linux系统有了一定了解和熟悉后,想对其更深层次的东西做进一步探究.这当中就包括系统的启动流程.文件系统的组成结构.基于动态库和静态库的程序在执行时的异同.协议栈的架构和原理.驱动程序的机制等等. 本人在综合了现有网上大家智慧的基础上,结合对2.6.32的内核代码的研读,基于CentOS 6.0系统对Linux的启动流程做了些分析.由于才疏…
html,body { } .CodeMirror { height: auto } .CodeMirror-scroll { } .CodeMirror-lines { padding: 4px 0px } .CodeMirror pre { } .CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler { background-color: white } .CodeMirror-gutters { border-right-width:…
读詹荣开文档摘 BIOS 在完成硬件检测和资源分配后,将硬盘 MBR 中的 Boot Loader 读到系统的 RAM 中,然后将控制权交给 OS Boot Loader Boot Loader执行全过程中不响应任何中断,中断屏蔽通过写CPU的中断屏蔽寄存器或状态寄存器完成,内核映象从硬盘上读到RAM,跳转到内核的入口点去运行 启动操作系统系统在上电或复位时通常都从地址 0x00000000 处开始执行,而在这个地址处安排的通常就是系统的 Boot Loader 程序 boot loader 作…
http://blog.csdn.net/sunyubo458/article/details/6090946 了解linux的内存模型,或许不能让你大幅度提高编程能力,但是作为一个基本知识点应该熟悉.坐火车外出旅行时,即时你对沿途的地方一无所知,仍然可以到达目标地.但是你对整个路途都很比较清楚的话,每到一个站都知道自己在哪里,知道当地的风土人情,对比一下所见所想,旅程可能更有趣一些. 类似的,了解linux的内存模型,你知道每块内存,每个变量,在系统中处于什么样的位置.这同样会让你心情愉快,知…
参考资料 1. 8259A可编程中断控制器 jmpi , SETUPSEG // 0x90200 到这里,bootsect.s的执行就算结束了.控制权转移到了setup.s文件的手中. setup程序的主要作用是利用ROM BIOS中断读取机器系统数据,并将这些数据保存到0x90000开始的位置.下表基本归纳了Line 109之前的所有代码逻辑. 表1 setup.s前半段代码的作用 内存地址 长度(字节) 名称 描述 0x90000 2 光标位置 行列都是从0开始,各占一个字节.由int 0x…
  实验内核版本:0.11 ◆ 从开机到main函数的三步: ① 启动BIOS,准备实模式下的中断向量表和中断服务程序: ② 从启动盘加载OS程序到内存中,加载OS程序的工作就是利用第一步中的中断服务程序实现的: ③ 为执行保护模式下32位的main函数做过渡工作. ➩ Intel将所有80x86系列的CPU硬件都设计为加电即进入16位实模式状态运行: ➩ 将CPU硬件逻辑设计为在加电瞬间强行将CS置为0xFFFF,IP置为0x0000,即是CS:IP指向了0xFFFF0这个地址: 整个过程是一…