2022-01-27 18:00阅读: 59评论: 0推荐: 0

L2_揭开钢琴的盖子

## L2_揭开钢琴的盖子

1-从白纸到图灵机

image-20220126103806252

原理:用控制器模拟人的大脑,用读写头模拟眼睛和笔,用纸带模拟书本纸,如图:控制器将3,2,+读入,然后控制器运用其加法逻辑,在纸带上给出运算结果5.

局限性:只能够做加法运算,无法像计算机一样完成更多操作。

2.从图灵机到通用图灵机

image-20220126105025660

原理:为了解决图灵机的局限性,在纸带上有-设置控制器的动作,也就是说该动作可用于修改控制器的运算逻辑(eg:把加法运算逻辑的程序载入进来,就可以运算加法;把QQ的程序载入进来就可以运行QQ,把微信程序载入进来就可以运行微信)。类比于生活,控制器相当于厨师,菜谱相当于控制器中的一套逻辑,每对厨师载入一个菜谱,他就能根据这套逻辑做出相应的菜肴,实现对数据的处理。

3.从通用图灵机到计算机

image-20220127154835123

原理:整体上是取指执行,每一个逻辑和数据都放到存储器中,每一个逻辑(即程序)以及数据都对应一个内存地址,当指向某一个逻辑,就是将该条指令载入到控制器,解释执行该指令即可。eg:图中IP指向 mov ax,[100] 这一个程序代码,控制器就会将该指令载入进来,解释执行即可(将内存地址为100上的数字赋值给ax,所以ax为0)。

4计算机开机时做了什么

image-20220127162402013

固化程序和引导扇区(一个扇区占512个字节)

1

5.引导扇区代码bootsect.s

引导扇区为什么不采用c语言呢?

2

image-20220127164914412

mov ax, #BOOTSEG
mov ds, ax
//ds == 0x07c0,得到段寄存器地址

mov ds, #INITSEG
mov es, ax
//es == 0x9000,得到段寄存器地址

sub si, si//两个相减,表明si==0x0000
sub di, di//两个相减,表明di==0x0000

rep movw//表明重复移用256个字(512个字节)
jmpi go, INITSEG//go是段偏移量,INITSEG是段基址,该指令目的是为了跳到go指令处执行

6.jimpi go, INITSEG(0x13读入磁盘扇区的中断)

image-20220127172501147

开始扇区,读入扇区的数量以及读入扇区的终止位置:

3

7.读入setup模块后:ok_load_setup(10号中断)

image-20220127174911217

8.read_it//读入system模块

image-20220127175245382

BOOTSECT的作用是将操作系统读进来,然后打出一个log,接下来BOOTSECT将控制权交给setup,使用

jmpi 0,SETUPSEG//setup位于0x90200---(ip==0x0000,cs==0x9020)将cs左移4位加上ip正好是先前计算的setup的位置

本文作者:远道而重任

本文链接:https://www.cnblogs.com/rong-xu-drum/p/15850689.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   远道而重任  阅读(59)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.