鱼C论坛

 找回密码
 立即注册
查看: 2886|回复: 0

[学习笔记] 和CPU说话03

[复制链接]
发表于 2017-7-3 21:43:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
2017.7.3
面对一台虚拟的空白计算机,我现在仅能做的是给她的内存0:7c00处写入一段代码,然后启动她,她就会按我的代码
执行我给她的指令,例如
mov ax,0 是让她的ax寄存器=0
mov al,'0'
mov ah,0eh
mov cx,1
int 10h
是让她在屏幕显示一个0
mov ax,0b800h
mov ds,ax
mov bx,0
mov byte [bl],'0'
应该也能让她在屏幕显示一个0
我想让她做更多的事,该怎么办呢?

《汇编语言》教我们的没有太多涉及硬件的东西,记忆中好像只有稍微涉及了键盘的i/o端口和CMOS的端口
可是我们的电脑还有那么多的硬件,怎么让它们工作呢?
寻寻觅觅,又找到了几本书:
《操作系统教程 MINIX的设计和实现》
《linux设备驱动开发详解第二版》
目前正在看第一本,哎,真羡慕那些记忆力好的人,不懂的东西记下来就好了,可我不懂的东西真记不住。
只有理解了才能记住。
所以好多书中前面的章节直接介绍什么进程啊、文件系统啊、管道、通信什么的,好难理解。
我的想法是,首先知道电脑有什么硬件,怎么命令它们做事,仅此而已,
在这个基础上慢慢懂得多了,才会用到怎么协调它们一起做事、配合做事,这时候再理解进程、文件系统、通信什么的才好。
所以,目前首要问题是弄清楚电脑有什么硬件。
已知的有:软驱、硬驱、光驱、鼠标、键盘、CMOS、DMA、时钟。
这些东西的名字可能还弄错了,因为暂时还没找到系统介绍它们的书籍。
假如抛开的BIOS中断不用的话,现在我能做的,只有两样:
60H端口的读取
70~71H 端口的读写
按理说,CPU将所有外设接口芯片的内部寄存器都当做端口来访问,她是怎么识别、管理它们的呢?
现在都64位电脑了,一个I/O命令
例如         mov edx,0ffffffffh
                in eax,edx
                这个命令会发生什么?
想想都头大。
所以现在从简单的学起,在实模式下学习怎么认识和管理这些端口,即达到控制硬件的目的。
看几天书先咯。
2017.7.3

评分

参与人数 1鱼币 +3 收起 理由
小甲鱼 + 3

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 21:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表