现在简单多了。
先实现输出数字,然后看看字符串怎么样。
现在遇到一个问题,就是读text段的位置怎么办?必须再加上0x280000才行。
现在并没有用到任何内存,因此栈必须仔细规划一下。
做的差不多了,接下来就不是一次性跑完,然后halt,而是一直在循环。计算机不再休息。响应也挺正常的,不会死机。但CPU直接拉满,到99%。halt会使CPU变成0.
对于FIFO来说,根本是没办法的事情了,你必须自己去规定一个内存,因此先做完内存分配比较好。
每日小常识:
hlt指令
1,使程序停止运行,处理器进入暂停状态,不执行任何操作,不影响标志。当RESET线上有复位信号、CPU响应非屏蔽中断、CPU响应可屏蔽中断3种情况之一时,CPU脱离暂停状态,执行HLT的下一条指令。这样只有鼠标键盘的情况下,使用hlt仍然没有什么问题,实际上,使用hlt可能并没有什么问题。
如果hlt指令之前,做了cli,那可屏蔽中断不能唤醒cpu。
2,hlt是“只能在实方式和ring0执行的指令”,要区别于“IO敏感指令”。通过设置IOPI或IO许可位图,可以让ring1乃至ring3执行“IO敏感指令”,但“只能在实方式和ring0执行的指令”是规定死的。