欢迎光临散文网 会员登陆 & 注册

汇编笔记⓪从0x7c00开始的异代码生活

2021-04-10 17:10 作者:凌空の猫  | 我要投稿

自制兴,汇编王!LinuxWindowsMacOSDos宁有种乎?

众所周知,程序都是在操作系统下面运行的

因此,受到了操作系统巨多的限制,比如不能为所欲为挥霍内存,比如正当你的程序因为优化卡死的时候鼠标却跑得正欢,比如不能靠CPU的ERROR把电脑搞崩

所以……咱们摸一个操作系统?

先来口胡一段代码吧,随便造一个文件,假设叫做a.s

这个程序可以在屏幕上打出"HelloWorld",你当然可以自由发挥改成别的内容

喂喂喂我不是让你改成中文或者一行代码写下整个句子啊喂


运行这类的代码需要模拟器哒

模拟器有两个常见选择:1、VirtualBox;2、Bochs

Bochs实在是太麻烦了我自己调试了好久修了好久的BUG才成功运行

所以就演示一下大名鼎鼎的VirtualBox怎么使用吧~说白了就是犯懒了

Step One 本页可以随便乱选,没人拦着你
Step Two 注意选取VHD文件,其它方面根本不需要在意

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


然后,我们要把代码变成二进制文件

先打开电脑上的“终端”“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里点击“运行”,如果出意外的话如果不出意外的话……

如果成功运行了,Congratulation! 

如果失败的话,请跳转到文末


最后最后的,这一系列文章仅仅是个人的笔记,价值不高我把B站当云盘欢迎批评!

打开Visual Studio Code,安装Hex Editor插件,打开.vhd文件和a.bin

然后选中并复制a.bin的全部内容,翻到磁盘文件的00000C00位置,选中以下512字,粘贴

现在你大概懂了,把程序写入是怎么一回事了吧,既然懂了赶紧自己做一个编辑软件吧~

(其实UP已经在做了,不过太忙了摸不完)




汇编笔记⓪从0x7c00开始的异代码生活的评论 (共 条)

分享到微博请遵守国家法律