匯編筆記?從0x7c00開始的異代碼生活

自制興,匯編王!LinuxWindowsMacOSDos寧有種乎?

眾所周知,程序都是在操作系統(tǒng)下面運行的
因此,受到了操作系統(tǒng)巨多的限制,比如不能為所欲為揮霍內(nèi)存,比如正當你的程序因為優(yōu)化卡死的時候鼠標卻跑得正歡,比如不能靠CPU的ERROR把電腦搞崩
所以……咱們摸一個操作系統(tǒng)?

先來口胡一段代碼吧,隨便造一個文件,假設叫做a.s
這個程序可以在屏幕上打出"HelloWorld",你當然可以自由發(fā)揮改成別的內(nèi)容
喂喂喂我不是讓你改成中文或者一行代碼寫下整個句子啊喂
運行這類的代碼需要模擬器噠
模擬器有兩個常見選擇:1、VirtualBox;2、Bochs
Bochs實在是太麻煩了我自己調(diào)試了好久修了好久的BUG才成功運行
所以就演示一下大名鼎鼎的VirtualBox怎么使用吧~說白了就是犯懶了


好了,這時候你應該就能看到這么個玩意

然后,我們要把代碼變成二進制文件
先打開電腦上的“終端”“CMD”“命令提示符”或者類似名字的東西
然后輸入nasm -f bin a.s -o a.bin
啥,出錯了?如果“無此指令”之類的錯誤,可以打開這個網(wǎng)站,然后選個喜歡的版本安裝(
https://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D
接下來,我們要把代碼放進磁盤了!
如果您是Windows用戶,你大可以用FixVhdw;如果你是其他操作系統(tǒng)github.com/champkeh/vdisk-tools
請~(里面有README文件,可以自己看著用)
然后只要vdisk write 剛才新建磁盤的位置.vhd a.bin?
再在VB里點擊“運行”,如果出意外的話如果不出意外的話……

如果失敗的話,請?zhí)D(zhuǎn)到文末
最后最后的,這一系列文章僅僅是個人的筆記,價值不高我把B站當云盤歡迎批評!

打開Visual Studio Code,安裝Hex Editor插件,打開.vhd文件和a.bin
然后選中并復制a.bin的全部內(nèi)容,翻到磁盤文件的00000C00位置,選中以下512字,粘貼
現(xiàn)在你大概懂了,把程序?qū)懭胧窃趺匆换厥铝税?,既然懂了趕緊自己做一個編輯軟件吧~
(其實UP已經(jīng)在做了,不過太忙了摸不完)