1. 开始揭开钢琴的盖子

从白纸到图灵机

1

计算机工作:取值执行

2

打开电源,计算机执行的第一句指令是什么?(PC=?)

0磁道0扇区:引导扇区

一个扇区:512个字节

3
4

引导扇区代码:bootsect.s

5

// 对上面汇编代码进行一行一行分析
// 先记住三个地址 BOOTSEC=0x07c0 INITSEC=0x9000 SETUPSEC=0x9020
// 从start开始
mov ax, #BOOTSEC //这时候的ax为0x07c0
mov ds, ax // ds为0x07c0 ds:数据段寄存器
mov ax, #INITSEG // ax为0x9000
mov es, ax // ex为0x9000 es:附加段寄存器
mov cx, #256 // cx为256
sub si, si // 相减 0 (ds:si = 07c0 << 4 + 0 = 0x07c00)
sub di, di // 相减 0 (es:di = 9000 << 4 + 0 = 0x90000)
rep movw // rep: 重复执行该语句直至寄存器cx为0 movw: 将DS:SI的内容送至ES:DI,是复制过去,原来的代码还在  (movw ! 移动1 个字;)。 
jmpi go, INITSEG  //间接跳转。这里INITSEG 指出跳转到的段地址。cs=0x9000 go为IP

6

go: mov ax, cs // cs=0x9000
    mov ds, as
    mov es, ax
    mov ss, ax
    mov sp, #0xff00
load_setup:
	mov dx, #0x0000 // dh =0 dl =0
    mov cx, #0x0002 // ch = 00 cl = 02
    mov bx, #0x0200
    mov ax, #0x0200 + SETUPLEN // ah=2 al=4 从第二个扇区读4个 
    int 0x13 // ppt已经详细讲解了 将setup读进来 地址为90200
    ...
    

ok_load_setup

7

// 我们把重点的解释一下 
mov cx, #24 // 这里的24是字符的数量
mov bp, #msg1 // 这里的msg1的内容可以修改  修改的同时也要把24给改掉。

read_it

8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值