基本输入&输出系统(BIOS)研究
- 格式:pdf
- 大小:3.07 MB
- 文档页数:80
电脑键盘的基础操作方法电脑键盘是我们使用电脑时最常用的输入设备之一,它有着许多基础的操作方法。
下面我将详细介绍一些常见的电脑键盘基础操作方法。
首先,让我们来熟悉一下键盘的布局。
电脑键盘一般由以下几部分组成:字母键、数字键、功能键、导航键和特殊键。
其中字母键和数字键位于键盘的中间部分,功能键位于键盘的上方,导航键位于键盘的右侧和下方,特殊键包括Shift、Ctrl、Alt、Windows键等,位于键盘的左下角。
在使用电脑键盘时,我们常常需要输入文字。
输入文字的最基本方式就是通过字母键来进行。
字母键一般包括26个字母,它们位于键盘的中央部分。
要输入一个字母,只需点击对应的字母键即可。
如果需要输入大写字母,可以按住Shift 键再点击字母键。
同时按住Shift键并点击字母键可以输入符号,这些符号在字母键的上方。
数字键位于字母键的上方,用于输入数字。
要输入一个数字,只需点击对应的数字键即可。
同时按住Shift键并点击数字键可以输入符号,这些符号在数字键的上方。
接下来,让我们来介绍一下键盘的功能键。
功能键一般包括F1至F12共12个键,它们位于键盘的上方。
这些功能键在不同的软件和操作系统中有不同的功能。
在大多数操作系统中,比如Windows操作系统,F1键通常用于打开帮助界面,F2键用于重命名文件或文件夹,F3键用于启动搜索功能等。
在一些软件中,比如Microsoft Word中,这些功能键也有特定的功能。
因此,在使用电脑时,我们应该熟悉各个功能键的具体用途。
导航键包括箭头键(上、下、左、右)以及Page Up、Page Down、Home和End键等。
这些键位于键盘的右侧和下方,用于在文档、网页等长篇内容中进行快速导航。
通过箭头键可以在文档中上下左右移动光标,Page Up和Page Down键可以快速翻页,Home键可以将光标移动到行首,End键可以将光标移动到行尾。
特殊键在键盘的左下角,包括Shift、Ctrl、Alt、Windows键等。
c语言基本的输入输出格式C 语言中的输入输出主要通过标准库中的函数来实现,最常用的是`printf` 和`scanf`。
以下是一些基本的输入输出格式:1. printf 函数`printf` 用于格式化输出到标准输出设备(通常是终端)。
```c#include <stdio.h>int main() {int num = 10;float floatValue = 3.14;char character = 'A';// 格式化输出printf("整数:%d\n", num);printf("浮点数:%f\n", floatValue);printf("字符:%c\n", character);return 0;}```输出:```整数:10浮点数:3.140000字符:A```常见的格式占位符:- `%d`: 整数- `%f`: 浮点数- `%c`: 字符- `%s`: 字符串- `%p`: 指针- `%x`: 以十六进制格式输出整数2. scanf 函数`scanf` 用于从标准输入设备(通常是键盘)接收输入。
```c#include <stdio.h>int main() {int num;float floatValue;char character;// 格式化输入printf("请输入整数:");scanf("%d", &num);printf("请输入浮点数:");scanf("%f", &floatValue);printf("请输入字符:");scanf(" %c", &character); // 注意空格,避免吸收上一个输入的换行符// 输出输入的值printf("你输入的整数:%d\n", num);printf("你输入的浮点数:%f\n", floatValue);printf("你输入的字符:%c\n", character);return 0;}```3. 其他常见的格式化选项-宽度和精度:```cprintf("%5d\n", 123); // 输出宽度为5的整数,右对齐printf("%.2f\n", 3.14159); // 输出浮点数,保留两位小数```-对齐:```cprintf("%-10s%-10s\n", "Hello", "World"); // 左对齐```-转义字符:```cprintf("转义字符:%d%%\n", 50); // 输出百分号```这只是一些基本的例子,C 语言提供了丰富的格式化选项,可以根据需要进行更复杂的格式化输出和输入。
汉字输入的基本操作方法
汉字输入的基本操作方法有以下几种:
1. 五笔输入法:五笔输入法是一种基于汉字拼音的输入法,在输入时根据汉字的笔画来选择对应的字词。
2. 拼音输入法:拼音输入法是一种基于拼音的输入法,通过输入汉字的拼音来选择对应的字词。
3. 手写输入法:手写输入法是一种可以通过手写汉字的方式进行输入的方法,可以在触摸屏或平板电脑上使用。
4. 笔画输入法:笔画输入法是一种根据汉字的笔画来选择对应的字词的输入法,可以通过输入汉字的笔画顺序来选择相应的文字。
5. 双拼输入法:双拼输入法是一种将汉字的声母和韵母分开输入的方法,通过输入声母和韵母的拼音来选择对应的字词。
这些都是常见的汉字输入方法,用户可以根据自己的需求和熟练程度选择适合自己的输入方法。
单字输入的基本规则①在五笔字根键位图上,除键面上的字根以外的汉字的输入规则(大部分汉字的输入方法,键面字,识别码字,成字字根字除外):一,如果只能拆分为两个字根,就打:第一字根+第二字根+空格如“明”字,拆分为“日”和“月”两个字根打“J”“E”再打空格二,如果只能拆分为三个字根,就打:第一字根+第二字根+第三字根+空格如“些”字,拆分为“止”和“匕”“二”三个字根打“H”“X”“F”再打空格三,如果只能拆分为四个字根,就打:第一字根+第二字根+第三字根+第四字根如“命”字,拆分为“人”“一”“口”“卩”四个字根打“W”“G”“K”“B”四,如果拆分超过四个字根,就打:第一字根+第二字根+第三字根+最末字根如“厨”字,拆分为“厂”“一”“口”“寸”四个字根打“D”“G”“K”“F”键面字(键面上第一个字根)的输入规则:把所在键连打四下,例如:“土”字就是边打四下“F”,即“FFFF”。
报户口+第一单笔画+第二单笔画+最末单笔画,例如“雨”字,先打“F”键(打“雨”字所在的键,俗称“报户口”),然后再打“一”“|”“丶”三个单笔画所在的键,所以“雨”字的编码就是FGHY举例:“士”拆分为“一”“|”“一”编码为:FGHG“文”拆分为“丶”“一”“丶”编码为:YYGY[识别码字]本来按上述规则就可打所有的单个汉字了,但五笔字型为了减少重码,为了避免因打字选字降低打字速度,人为地识了一个一个识别码,就是说打完所有拆分字根后,如果还没有四码就加一个识别码。
例如:“只”“叭”两个字的编码都是“KW”,为了在打出KW编码后不要用数字键选字,,就必须再加打一个识别码,以区分这两个字。
“只”是上下结构,同时,它的最后一笔是点,那它的识别码就是“U”,“叭”,它的最后一笔是也是点,但它是左右结构,它的识别码是“Y”,这样就把这两个字区分开来了,“只”的编码是KWU“叭”的编码是KWY,。
华中科技大学计算机学院C 语言程序设计1表3.2 printf 域宽说明字符域宽说明字符意义
-(减号)在输出域宽内以左对齐方式输出,缺省情况下为右对齐+输出正数时前面要加符号+空格
输出的第一个字符不是符号+或-时要输出一个空格作前缀0(零)在输出域宽范围内用前导0补齐空位#对于o 格式和x 格式输出前缀0或0x ;对于g 格式输出时不删除尾部零m (正整数)指出输出数据的最小域宽。
如果数据的实际宽度大于m ,则按实际宽度输出;如果实际宽度小于m ,则左边(左对齐时为右边)补空格或零(当有0域宽说明字符时).(小数点)分隔域宽与精度。
小数点前可以没有域宽
n (正整数)指出输出数据的精度。
对于e 、E 、f 格式的为小数部分的位数,对于g 、G 格式为有效数字的个数;对于整数为至少应输出的数字个数(用前导0补足);对于字符串为至多输出的字符数目h 指出输出参数是短整型
l 指出输出参数是长整型
L 指出输出参数是长双精度浮点型
*
代表一个整数,其值由对应的参数决定,可用于代替m 或n 表示可变域宽或精度。
第5章基本输入输出系统【教学目的】掌握接口的基本概念、IO端口的编址方法和基本的数据传送方式【教学重点】IO端口的编址方法和基本的数据传送方式【教学难点】中断方式和DMA方式【教学方法和手段】课堂教学【课外作业】P193习题3,4,7,10【学时分配】6学时【自学内容】8237的使用【讲授内容】5.1 概述输入输出系统包括:①外部设备(输入输出设备和辅助存储器)②设备控制器----主机(CPU和存储器)之间的控制部件,诸如磁盘控制器、打印机控制器等,有时也称为设备适配器或接口,其作用是控制并实现主机与外部设备之间的数据传送。
5.1.1接口的基本概念1、什么是接口计算机在工作过程中,CPU要不断地与其它部件交换信息。
CPU不是直接与外部设备交换信息的,而是经过一个中间电路,这个电路就称为“接口电路”,简称“接口”。
所谓接口就是主机与外部设备连接的桥梁,由它来完成CPU与外部设备之间信息的传递。
一般将外部设备与接口合称为“I/O系统”。
接口又称为“设备控制器”或“适配器”。
2、为什么要有接口电路外部设备为什么要通过接口电路与CPU连接?为什么不直接与CPU的总线相连接呢?从CPU的角度来看,对外部设备的访问(读/写)与对存储器的访问是类似的,为什么存储器可以直接通过总线与CPU连接,而外部设备却要通过接口电路来与CPU连接呢?这是因为:存储器的基本结构简单(只有很少几种),只要求几个简单的控制信号,而且存储器的访问速度一般都比较快,CPU与存储器之间的定时与协调比较容易,因此存储器可以直接通过总线与CPU连接。
而外部设备一般具有以下特点:⑴外部设备的品种繁多从类型上看:有输入设备、输出设备、输入/输出设备、测量设备、通信设备、控制设备等。
从结构上看:有机械式的、电子式的、机电混合式的。
从原理上看:各类设备的工作原理又是各不相同的。
⑵外部设备的工作速度分布范围宽如:电传打字机每秒能传输100个信息单位,温度传感器有可能长达几分钟才改变一个数据,软盘的传输速率为每秒2.5兆位,硬盘的传输速率为每秒5兆位以上。
C语言基本的输入输出格式1. 引言C语言是一种广泛应用于系统程序开发和嵌入式系统的高级编程语言。
在C语言中,输入和输出是程序与用户或外部设备之间进行交互的重要方式。
本文将详细介绍C语言中基本的输入输出格式,包括标准输入输出函数、格式化输入输出函数以及文件输入输出函数。
2. 标准输入输出函数C语言提供了一些标准的输入输出函数,用于从键盘读取用户输入或将输出显示在屏幕上。
2.1 printf函数printf函数用于将格式化的数据输出到标准输出设备(通常是屏幕)。
它的基本语法如下:int printf(const char *format, ...);其中,format是一个字符串,用于指定输出的格式,后面的参数是要输出的数据。
下面是一些常用的格式控制符:•%d:以十进制形式输出整数。
•%f:以浮点数形式输出。
•%c:以字符形式输出。
•%s:以字符串形式输出。
示例代码:#include <stdio.h>int main() {int age = 20;float height = 1.75;char gender = 'M';char name[] = "John";printf("Name: %s\n", name);printf("Age: %d\n", age);printf("Height: %.2f\n", height);printf("Gender: %c\n", gender);return 0;}运行结果:Name: JohnAge: 20Height: 1.75Gender: M2.2 scanf函数scanf函数用于从标准输入设备(通常是键盘)读取数据。
它的基本语法如下:int scanf(const char *format, ...);其中,format是一个字符串,用于指定输入的格式,后面的参数是用于接收输入数据的变量。
基本輸入/輸出系統(BIOS)研究指導老師: 陳德生學生 : 楊逸翔 曾成濱班級 : 資訊四甲目錄目錄 (I)摘要 (III)致謝 (IV)第一部份 x86基本硬體架構 (1)Chapter 1 基本輸入/輸出系統(BIOS) -Introduction (1)1.1什麼是 BIOS? (2)1.2 BIOS in ROM (3)1.3 執行BIOS的目的與基本流程 (3)Chapter 2 重要之硬體介紹 (5)2.1 主要的集成電路(IC) (6)2.1.1 中央處理器(CPU) (6)2.1.2 晶片組(Chip-set) (8)2.1.3 整合中低速率介面(Super I/O) (9)2.1.4 鍵盤控制器(Keyboard Controller) (9)2.1.5 CMOS(RTC/CMOS 計時/參數晶片) (11)2.1.6 其它一般IC (11)2.2 匯流排系統(BUS System) (12)2.2.1 週邊元件介面匯流排PCI (Peripheral Component Interface Bus)122.2.2 系統管理匯流排SMBus (System Management Bus) (13)2.2.3 低針腳數LPC (Low pin count) (14)2.2.4 GP I/O(General Purpose I/O) (14)2.3 電源管理(Power management) (14)2.3.1 系統管理模式SMM (System Management Mode) (14)2.3.2 進階電源管理APM (Advanced Power Management) (15)2.3.3 進階設定與電源介面ACPI (Advanced Configuration and PowerInterface) (15)Chapter 3 BIOS實際在硬體上位置 (16)&運作機制 (16)3.1 當開機時(Power-ON) (16)3.2 晶片組(Chipset) 定址空間分配 (16)3.3 映射記憶體Shadow Ram (17)3.4 Flat mode & Big real mode (18)第二部份 Trace BIOS 流程 (20)Chapter 4 Trace BIOS所需資源 (21)Chapter 5 第一階段(開機啟動區塊: 記憶體使用不可與無壓縮程序) (23)5.1簡述此階段的工作 (23)5.2 選寫此皆段程序需注意之特點 (24)5.3 BIOS 流程 (24)Chapter 6 第二階段(記憶體可用POST&解壓縮) (33)Chapter 7 第三階段(CMOS 設定之後 POST續) (50)第三部份(附錄) (59)附錄 1 診斷碼 (59)附錄 2 縮寫名詞對照表 (66)附錄 3參考資料 (72)心得 (74)摘要這個專題是藉由研究BIOS了解電腦的硬體架構,進而對未來踏入嵌入式系統的研究能有更進一步的幫助。
主要內容包括:․BIOS簡介․電腦硬體簡介․TRACE BIOS的BOOTING流程․BIOS燒入實作致謝首先感謝 陳德生指導教授,長期以來給予我們的協助,與讓我們有機會作這個專題,雖然面對這個專題,有時會感覺像茫然大海,可是陳德生老師會給我們一些提示、方向,不論專題成果是否與目標一致,我們都很慶幸參與這個專題,最後再謝謝老師 老師辛苦了。
接著我們還要感謝,在作專題的過程中,曾經提供我們方向與意見的 王益文老師 以及 林志敏老師,還有待在實驗室期間 曾提供我們協助的吳季穎、吳維揚學長。
第一部份 x86基本硬體架構Chapter 1 基本輸入/輸出系統(BIOS) –Introduction概述BIOS的目的和存放的實體位置Chapter 2 重要之硬體介紹X86系統的硬體與特殊執行機制Chapter 3 BIOS實際在硬體上位置&運作機制Chapter 1 基本輸入/輸出系統(BIOS) -Introduction1.1什麼是 BIOS?民航機在起飛前,機長必需先按 Check-list 啟動&檢查 電門、機身、控制面板..等,而x86電腦就如同民航機,CPU在開機時會像機長一樣按BIOS(Check-list) 指示依序初&檢查電腦,待電腦可正常運作後(起飛),再把電腦交給OS (自動駕駛系統)。
下面清楚定義了BIOS:一個韌體程式( Firmware program),儲存在惟讀記憶體(ROM Memory),提供最基本的硬體初始化(initialize)、周邊控制的必要程式碼(通常由組合語言寫成)。
1.2 BIOS in ROMBIOS 就存放在主機板上的一顆Rom裡,而x86硬體特性就是設計成,在開機的一瞬間,CPU從主機板上的BIOS 晶片內取得程式碼,也就是由BIOS 內部的程式碼掌控電腦的初始動作。
而BIOS Rom平時是設定成唯讀狀態,必需藉由特定工具才可以加以修改、抹除。
注意: 其它的週邊也有自已的BIOS Rom 像是顯示卡(video-card)、高階網路卡(NIC)..等,因為較複雜的外接週邊硬體設計差異很大,各自有其獨特初始動作,所以廠商會另外加上BIOS Rom。
1.3 執行BIOS的目的與基本流程一般BIOS最重要的工作有下列幾點:.開機自我檢測POST(Power On Self Test):一開機時系統將控制權交給BIOS 時,它會先檢查CPU 暫存器(Registers)、旗標(Flags)是否運作正常,接著檢查像是8254 計時器(timer)、8259A可程式中斷控制器(Programmable Interrupt Controller)、8237直接記憶體存取控制器(DMA controller)。
.初使化&測試(Initial&Test):初使化晶片組(Chipset)、記憶體(RAM)、Video-card 還有相關周邊的暫存器,並測試是否可正常工作。
初使化(Initialize):依照該晶片組的技術文件的規定,對暫存器填值、改位元或旗標的動作,使其可正常工作。
.記錄系統的設定值:把系統設定值像是日期、時間、硬體設定..等,存入CMOS。
.將常駐程式(Runtime Program) 常駐於記憶體(Memory):以提供作業系統(OS)或應用程式呼叫。
-基本BIOS流程圖-Chapter 2 重要之硬體介紹2.1 主要的集成電路(IC)2.1.1 中央處理器(CPU)中央處理器(CPU)有兩種主要模式, 分別如下:.真實模式(Real-Mode).保護模式(Protect-Mode)真實模式(Real mode):在最初的8086處理器被釋出時,它只有一種記憶體定址模式。
而它使用了節區暫存器(segment register)和位移暫存器(offset register)作定址,其定址方式如下: .記憶體定址(Memory Addressing): segment: offsetCS << 4 + IP = 指令的線性位址(Linear Address OfInstruction).位址線(Address-Lines) : 20條(1024KB)這種定址模式稱為真實模式定址(Real mode addressing),而它允許8x86定址至1MB的記憶體。
接著說明真實模式的特性:1. 捲繞(8086 記憶體特性)當記憶體位址超過0FFFFFh 時,會捲繞回00000h。
2. A20 開關(switch)X86 CPU在268時,位址線增加至24條(16MB超過1024KB)。
為了相容性,在位址線A20~A23設計了一個開關(A20 switch),它可切換兩種定址方式: .強制歸零: (Real-Mode)模擬8086的記憶體捲繞特性。
.可進位: (Protect-Mode)可以在0FFFFFh進位。
最後明確定義真實模式:當IA-32 CPU在使用真實模式定址狀態下執行時,稱為真實模式(Real Mode)。
保護模式(Protect mode): 它允許8x86定址至4 GB(32條位址線)的記憶體。
但從保護模式切回真實模式時,必需重置(Reset),那麼不就等於又重新開機,也就使得之前所執行的部份又得重新執行一遍,這樣將會永無止境的執行下去,為了解決這個問題,發展出了一個機制,下面詳細說明其步驟:解決從保護模式切回真實模式必須 重置(Reset)! 的問題8042鍵盤控制器(近似一顆簡單小型的CPU,也有自已的韌體負責keyboard、A20 開關 和 重置)。
Step1. 把關機(shutdown) 返回指示位元組 & 返回位址寫入CMOS。
Step2. 然後下令打開A20切到保護模式。
------------- 切到保護模式 -----------------------:------------- 回到真實模式 -----------------------Step3. 重置鍵盤控制器(KBC),因為鍵盤控制器有自已的韌體,不受系統重置影嚮。
Step4. CPU-> 0FFFFF:00000h 做簡單CPU 測試。
Step5. 從CMOS 讀入關機返回指示位元判斷此次為何種關機:.硬體正常開機(power-on、reset)。
.重保護模式返回(軟體重置(Soft reset)) -> 讀取返回位址。
注意:至386以後以設計可直接從保護模式返回真實模式,但還是保留A20開關、軟體重置(為了向下相容性)。
2.1.2 晶片組(Chip-set)早期主機板上焊滿大量電阻、電容、IC和複雜電路, 這樣才能達成一個功能.. 不但成本高, 也很難完成很多功能或除錯, 所以借由半導體技術,將這些電子元件、線路微縮至幾個大型晶片內,以化簡主機板設計,稱為系統晶片組,到現在主要分為兩大晶片:.北橋晶片(North-Bridge): intel稱之為記憶體控制集線器MCH(Memory Control Hub),集線器(Hub)也就是把其它裝置集中連線到北橋晶片上,而北橋是靠近CPU的一端,所以它主要連接高速的裝置,像是CPU、Memory、顯示卡,並且它也包含了記憶體控制器(MemoryController),所以顧名思義命名為記憶體控制集線器(Memory ControlHub)。
.南橋晶片(South-Bridge):輸入/輸出控制集線器ICH(I/O Control Hub),不同於MCH主導高速裝置,它相業負責較低速的I/O週邊,像是鍵盤、Printer、USB..等,並集成了部份I/O 週邊的控制晶片(super I/O、USB控制器、鍵盤控制器..等)、CMOS。