汇编笔记⓪从0x7c00开始的异代码生活
自制兴,汇编王!LinuxWindowsMacOSDos宁有种乎?

众所周知,程序都是在操作系统下面运行的
因此,受到了操作系统巨多的限制,比如不能为所欲为挥霍内存,比如正当你的程序因为优化卡死的时候鼠标却跑得正欢,比如不能靠CPU的ERROR把电脑搞崩
所以……咱们摸一个操作系统?

先来口胡一段代码吧,随便造一个文件,假设叫做a.s
这个程序可以在屏幕上打出"HelloWorld",你当然可以自由发挥改成别的内容
喂喂喂我不是让你改成中文或者一行代码写下整个句子啊喂
运行这类的代码需要模拟器哒
模拟器有两个常见选择:1、VirtualBox;2、Bochs
Bochs实在是太麻烦了我自己调试了好久修了好久的BUG才成功运行
所以就演示一下大名鼎鼎的VirtualBox怎么使用吧~说白了就是犯懒了


好了,这时候你应该就能看到这么个玩意

然后,我们要把代码变成二进制文件
先打开电脑上的“终端”“CMD”“命令提示符”或者类似名字的东西
然后输入nasm -f bin a.s -o a.bin
啥,出错了?如果“无此指令”之类的错误,可以打开这个网站,然后选个喜欢的版本安装(
https://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D
接下来,我们要把代码放进磁盘了!
如果您是Windows用户,你大可以用FixVhdw;如果你是其他操作系统github.com/champkeh/vdisk-tools
请~(里面有README文件,可以自己看着用)
然后只要vdisk write 刚才新建磁盘的位置.vhd a.bin
再在VB里点击“运行”,如果出意外的话如果不出意外的话……

如果失败的话,请跳转到文末
最后最后的,这一系列文章仅仅是个人的笔记,价值不高我把B站当云盘欢迎批评!

打开Visual Studio Code,安装Hex Editor插件,打开.vhd文件和a.bin
然后选中并复制a.bin的全部内容,翻到磁盘文件的00000C00位置,选中以下512字,粘贴
现在你大概懂了,把程序写入是怎么一回事了吧,既然懂了赶紧自己做一个编辑软件吧~
(其实UP已经在做了,不过太忙了摸不完)

