第667章 灵魂的第一行代码!_四合院开局四八,八岁带妹逃荒 首页

字体:      护眼 关灯

上一章 目录 下一章

第667章 灵魂的第一行代码!

第(2/3)页

上,一行又一行的二进制代码,如同瀑布般倾泻而下。

`10110001  00000000  00000001`  (MOV  R1,  #256  -  设置PCB区域的起始大小)

`10110010  00000000  00000000`  (MOV  R2,  #0  -  初始化任务计数器)

`11100001  10000010  00010001`  (STR  R1,  [R2]  -  将PCB大小存入第一个任务的控制块)

站在他身后的孙立国,手里拿着一本厚厚的手写的“盘古之心指令集”,嘴里飞快地念着,为黄建功进行人工的“语法检查”。

“指令MOV  R1,  #256,机器码10110001  00000001  00000000,黄总工,你这里写的是#256,但指令集里定义,立即数寻址的高八位应该在后,你写反了!”

黄建功的手指一顿。

他立刻在屏幕上删掉了刚才的代码,重新敲了一遍。

`10110001  00000001  00000000`

“不对!”孙立国急得满头大汗,“是`10110001  00000000  00000001`!”

黄建功看着屏幕,又看了看孙立国手里的指令集,这才发现,因为三天三夜没睡,他的大脑已经出现了一丝混乱,把高低字节的顺序记反了。

他深吸一口气,删掉错误的代码,这一次,他放慢了速度,一个数字一个数字地敲击。

`10110001  00000000  00000001`

“正确!”孙立国长舒了一口气。

周围的专家们,看得心惊肉跳。

仅仅是一个最简单的赋值操作,就如此凶险。一个不留神,整个程序的逻辑就会谬以千里。

而黄建功要写的,是一个包含成千上万行这种指令的,无比复杂的调度核心!

这简直不是人能干的活!

时间一分一秒地过去。

黄建功的额头上,渗出了细密的汗珠。他的后背,早已被汗水浸透。

他正在编写“天枢”内核的第一个函数:`task_create()`。

这个函数的功能,是在内存中,按照PCB的规范,开辟一块空间,并对其进行初始化,相当于“创造”一个新任务。

他需要精确计算每一个字节的偏移量。

PCB的第一个字节,是任务ID。

第二个字节,是任务状态。

从第五个字节开始,是16个通用寄存器的备份空间,每个寄存器占4个字节,一共64字节。

……

他就像一个最精密的雕刻家,用0和1这把刻刀,在内存这块璞玉上,小心翼翼地雕琢着“灵魂”的模样。

一个小时。

两个小时。

五个小时。

当天色再次暗下来的时候,黄建功终于敲下了`task_create()`函数的最后一行代码。

那是一条返回指令。

`11100001  00101111  11111111`  (RET)

他长长地吐出一口气,感觉整个身体都快要虚脱了。

仅仅是一个最基础的创建任务的函数,就耗费了他整整五个小时,编写了超过三百行纯粹的机器码。



(本章未完,请翻页)
记住手机版网址:m.lewenwx.cc
加入书签我的书架

上一章 目录 下一章