2月7日 读书笔记

news/2024/5/22 16:12:35

是鼠标移动的思路:调整坐标重新显示

当CPU进行模式转换和PIC进行初始化的时候,都不允许有中断发生,因此要将中断屏蔽掉。

汇编指令NOP只是让CPU休息一个时钟长的时间。

这条汇编语句:

MOV     AL,0xdf

是要让A20GATE信号线变成ON的状态,这条信号线能让内存1MB以上的部分变成可使用状态。最初出现电脑的时候,CPU只有16位模式,所以内存最大也只有1MB。后来CPU可以使用更大的内存了,但为了兼容旧的操作系统,在执行激活指令之前,电路被限制为只能使用1MB的内存。

INSTRSET指令,是为了能够使用386以后的LGDT、EAX、CR0等关键字。
LGDT指令,不管三七二十一,把随意准备的GDT给读进来。对于这个暂定的GDT,我们以后还需要重新设置。然后将CR0这一特殊的32位寄存器的值代入了EAX,并将最高位置置为0,最低位置置为1。再将这个值返回给CR0寄存器。这样就完成了模式转换,进入到不用分页的保护模式。

“虚拟内存地址” 与 “实际地址” 的区别在于计算内存地址时,是使用段寄存器的值直接指定地址值的一部分呢,还是通过GDT使用段寄存器的值指定并非实际存在的地址号码。

在这种模式下,应用程序既不能随便改变段的设定,又不能使用操作系统专用的段。操作系统受到CPU的保护,所以称为保护模式。

变成保护模式,机器语言的解释要发生变化。CPU为了加快指令的执行速度而使用了管道这一机制,也就是说,前一条指令还在执行的时候,就开始解释下一条指令甚至是再下一条指令。因为模式变了,就要重新解释一遍,所以加入了JMP指令。

函数memcpy是复制内存的函数,语法如下:
memcpy(转送源地址, 转送目的地址, 转送数据的大小);
传送数据大小是以双字为单位的,所以数据大小用字节数除以4来指定

举个例子:

memcpy(0x7c00, DSKCAC, 512/4);

DSKCAC是0x00100000,所以上面这句话的意思是从0x7c00赋值512字节到0x00100000。

SHR指令是向右移位指令,与除以4有相同的效果.、

JZ是条件跳转指令,根据前一个计算结果是否为0来决定是否跳转。而JNZ则正好相反。


http://lihuaxi.xjx100.cn/news/839031.html

相关文章

小知识点:Airflow 安装部署

安装流程一、Python 安装二、Airflow 安装三、Airflow 配置四、存在的坑部分安装方法参考: Linux 虚拟机:大数据集群基础环境搭建(Hadoop、Spark、Flink、Hive、Zookeeper、Kafka、Nginx) 一、Python 安装 当前安装版本为 Pytho…

在Vivado下如何判断芯片是多die芯片-关于SSI的多方面解答

1. 什么是SSI芯片?SSI是Stacked Silicon Interconnect的缩写。SSI芯片其实就是我们通常所说的多die芯片。其基本结构如下图所示。可以看到SSI芯片的基本单元是SLR(Super Logic Region),也就是我们所说的die。SLR之间通过Interposer“粘合”在一起。每个SLR可看做一片小规模…

拒绝盲目自学!完整Java学习路线图,全面对标阿里P5-P8职级实现弯道超车

前言 对于大部分的程序员来说,清晰地规划自己的职业发展并不是一件容易的事情。作为一个曾经底子比较差,从底层摸爬滚打多年走过来的程序员,在这里分享一下对我帮助很大的一份宝典,希望同行们能快速掌握这些技术,直接…

1月榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩平台)发布!

飞瓜轻数发布2023年1月飞瓜数据UP主排行榜(B站平台),通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况,为用户提供B站号综合价值的数据参考,根据UP主成长情况用户能够快速找到运营能力强的B站UP主。飞瓜…

你会用 TypeScript 的条件类型吗?

我们可以使用 TypeScript 中的条件类型来根据逻辑定义某些类型,就像是在编写代码那样。它采用的语法和我们在 JavaScript 中熟悉的三元运算符很像:condition ? ifConditionTrue : ifConditionFalse。我们来看看他是怎么工作的。 TypeScript 的条件类型…

glib实践:GAsyncQueue使用方法

前言 这是一个使用GAsyncQueue替代的sem_t的实验。 g_async_queue_pop 在GAsyncQueue *queue中数据为空时,阻塞线程,符合sem_wait的用法。 g_async_queue_push 可以用于平替sem_post。 g_async_queue_new 可以用于平替sem_init 一 函数介绍&#xff…

关于 ulimit 和file-max 对文件打开数限制实验

/proc/sys/vm/max_map_count 限制一个进程可以拥有的VMA(虚拟内存区域)的数量 /proc/sys/kernel/pid_max 系统最大进程数量脚本 创建文件脚本 i0 while [ $i -lt 100000 ] ; dotouch ./filedir/f_$io_file./filedir/f_$iecho "$o_file"echo "file$i" >…

Linux系统之cuda 11情况下如何配置pytorch 10.2

由于目前pytorch1.8.2只能支持到10.2的版本,但ubuntu最新的系统驱动直接支持了cuda 11.4, 并且cuda tooklit支持的默认下载也是11.0。1、确认NVIDIA驱动安装lspci|grep NVIDIA1. 需要先降低cuda tooklit的版本(卸载新版本)cuda-uninstaller in /usr/loca…