2月2日 读书笔记

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

段的起始地址用32位来表示被称为段的基址在本书中被分成了3段分别为2字节、1字节、1字节。之所以这么做主要是为了与80286时代的程序兼容。有了这样的规格80286用的操作系统也可以不用修改就在386以后的CPU上运行了。

在电脑的CPU里1页是指4KB

CPU有“系统模式”和“应用模式”之分。

在设计上CPU只能单独处理一个中断。

使用中断之前要进行PIC的初始化, PIC是将8个中断信号集合成一个中断信号的装置。它监视着输入管脚的8个中断信号只要有一个中断信号进来就将唯一的输出管脚变成ON并通知CPU。

IBM的开发者们曾认为电脑会有8个以上的外部设备所以增设了两个PIC分别为master和slave。具体连接方式如图
在这里插入图片描述
有一点值得注意主PIC不通知给CPU从PIC的意思也就不能传达给CPU。

说说缓冲区
写程序的时候经常会有这种需求——虽然不用永久记忆但需要暂时记住某些东西以便后用。这种目的的记忆称为缓冲区。下面有两种缓冲区, 其实就是数据结构课里讲的栈和队列
在这里插入图片描述
在这里插入图片描述

汇编指令PUSHAD相当于

PUSH	EAX
PUSH	ECX
PUSH	EDX
PUSH	EBX
PUSH	ESP
PUSH	EBP
PUSH	ESI
PUSH	EDI

POPAD指令则是正好相反的但凡是被PUSHAD给push进去的都会被它给POP出来

将寄存器的值保存到栈里原因在于中断发生在函数处理的途中通过IRETD从中断处理返回以后如果寄存器的值乱了函数就无法正常处理下去了。所以一定要让寄存器的值返回到中断处理前的状态。

汇编指令CALL是用来调用函数的在naskfunc.nas中要调用没有定义在naskfunc.nas中的函数因此出现了

EXTERN  _inthandler21, _inthandler27, _inthandler2c

这是为了通知nask“它在别的源文件里”

执行STI指令后IF(中断许可标志位)变为1。CPU的中断信号只有一根吗所以IF也只有一个。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6