- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统实验日志
学号
520
姓名
甘昆禄
专业年级班级
智能1601
实验日期
实验项目
第5天:结构体、文字显示与 GDT/IDT初始化
、实验主要内容
1、接收启动信息和结构体
在上一章中,xsize和ysize的值都是直接赋值为320*200,但实际上我们需要从先前保 存下来的值中去。即:
匚YL5
EQU
OjcOffO
H
LEDS
EQU
OjcOff 1
VMODE
EQC
QxOffS
1
5CRNX
a
SCRNY
OxOffc
■
VkAM
5QU
OJtOfta
■
ORG
■
;画面七一F
HOV
ALr Gx.^3
INT
uxlO
MQV
〔VMOI■唱]
rS ,?
MOV
WORD :SCRNX]
,320
MOV
W^RD [5CRNY]
r200
MOV
DWORD [ VRA14]
r lx.
不然的话,当画面模式改变时系统就不能正确运行。所以试着用指针取得图像模式:
void HariMa in(v oid)
{
char *vram;
int xsize, ysize;
short *bi nfo_scrnx, *bi nfo_scrny;
int *bi nfo_vram;
ini t_palette(); /*
ini t_palette(); /* 设定调色板*/
bin fo_scrnx = (short *) 0x0ff4;
bin fo_scrny = (short *) 0x0ff6;
bin fo_vram = (int *) 0x0ff8;
xsize = *bin fo_scr nx;
ysize = *bin fo_scr ny;
vram = (char *) *bi nfo_vram;
for(;;) {io_hlt(); /*
for(;;) {
io_hlt(); /*
執行n askfu nc里的」o_hlt*/
}
诶这样是不是说就可以改变画面模式了于是天真的我:
MOV
0X12
MOV
AH,jxGO
INT
0x10
MOV
BYTE [VMOm
MOT
WORD [吕匚ECQC]# 总40
MOV
WORD [SCRNY],480
保存运行一下,以为画面会显示坐标在左上角的 320*200,结果发现画面显示错误,forget
about it 。诶然后发现结构体里这个在汇编里没有定义,可能作者以后讲
;BOOT__INFO関嚓CYLSEQU0x01fO
;BOOT_
_INFO関嚓
CYLS
EQU
0x01fO
LEDS
ECU
OlOff
■-T-50EE
ECU
0t0^f2 —,
SCRNX
ECU
QQfL 弓
SCRMY
EOU
OxOffC
廿RAM
EQU
OzOffa
ORG
0xc200
哦先说结构体
B
37
38
39
struct BOOTINFO char cylsj short scrnx char *viram;
{ /
leds^ vmode,|j reserve^ ,scrny;
41
可以看做结构体是将一堆变量集中声明,然后作为新的变量用于其他场合
结构体的运用:
先声明结构体:
如上图
后定义结构体变量: struct BOOTINFOabc;或者定义结构体指针变量: struct
BOOTINFO*binfo; 这里binfo 表示指针变量后应该首先给指针赋值,可写成: Binfo =
(struct BOOTINFP *)OxOffO; 加上(struct BOOTINFP *) 是对数字进行强制类型转换,告诉编 译器这个数字是一个BOOTINF类型的指针变量。
info指针指向地址0x0ff0是结构体的起始地址,结构体内的地址则依次按其类型增加。 所以可以不用直接使用内存地址,而是使用*binfo来表示这个内存地址上12个字节的结构体。
在表示结构体内变量的时候,使用“.”表示:xsize = (*binfo).scrnx;
因为binfo是指向结构体地址的指针变量,它表示其内部变量的形式很多,可以用箭头表 示: Xsieze = binfo-scrnx ,或者用 binfo-scrnx 直接代替 xsize
2、显示字符
终于到写字了,诶果然有定义好的哪个字母让具体哪个像素指定颜色, 比如A的显示如下:00011000000110000 0 II 0 0 1 000 0 10 0 1 0 0
0111111
0
1
11111
0
0
1
0 0 0 0 II
0
0
1
0 0 0 01
0
0
1
0 0 001
0
1
1
10011
100000000
用 8x16 的长方形像素点阵来
您可能关注的文档
- 20XX年小学班主任老师工作总结模板.docx
- 20XX年师德学习心得体会例文.docx
- 20XX年度第一学期学校后勤工作总结.docx
- 20XX年度第二学期教务处工作计划.docx
- 20XX年感恩母亲节主题总结.docx
- 20XX年教师党员个人年度工作总结.docx
- 20XX年新年致辞范文.docx
- 20XX年春季中学校长开学典礼发言稿.docx
- 20XX年暑假综合自然地理社会实践报告.docx
- 20XX年某县新春茶话会上代表发言稿.docx
- 实验室危废随意倾倒查处规范.ppt
- 实验室危废废液处理设施规范.ppt
- 实验室危废处置应急管理规范.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第20课时 中国的地理差异.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第21课时 北方地区.ppt
- 危险废物处置人员防护培训办法.ppt
- 危险废物处置隐患排查技术指南.ppt
- 2026部编版小学数学二年级下册期末综合学业能力测试试卷(3套含答案解析).docx
- 危险废物处置违法案例分析汇编.ppt
- 2026部编版小学数学一年级下册期末综合学业能力测试试卷3套精选(含答案解析).docx
原创力文档


文档评论(0)