HobbyOSs / opennask

nask clone assembly, it can boot tiny OS with Linux
https://github.com/HobbyOSs/opennask/wiki/%E5%8B%95%E4%BD%9C%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF
GNU General Public License v3.0
20 stars 3 forks source link

PASS-1, PASS-2 Assemblerについて調査/実装 #58

Closed hangingman closed 1 year ago

hangingman commented 1 year ago

https://github.com/HobbyOSs/opennask/issues/56#issuecomment-1426962115

この問題は"forward reference"として知られる

ChatGPT先生曰く

一般的にはパス1アセンブリの方が速度は遅いものの、実装が簡単であるとされています

らしいので、その方向でいくかも

調査

パス1アセンブラの解説

解説のためにLTORG命令が出ているが、たぶんnaskでは使わないやつ http://www.arteceed.net/755.html

概要

https://www.youtube.com/watch?v=BUZycVrWPa4

設計メモ

ソフトウェアコンポーネントについて

これらの用語の意味は、特定のアセンブラにおいての文脈に応じて決定されるため、具体的な解釈については使用されているアセンブラのドキュメンテーションを参照することが望ましい。

フローチャート

https://gist.github.com/hangingman/b1fa7598976e753d59e24599040903dc