悠里アセンブリQ&A by Ritchan先生

0
前へ 1 2 3 ・・ 6 次へ
AIOS CIAO @aios_ciao

@sosoBOTpi 定型のイディオムをマクロとして記述して、アセンブル前に展開するようなプリプロセッサがあると便利そうですね。

2017-09-16 15:14:18
【ゲムマ両サ-19】hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

@aios_ciao ですね。というか当然悠里世界で発明されているでしょうから、実装する予定です。(fen = krz f0 f0という組み込みマクロは一応ありますが)

2017-09-16 15:17:31
AIOS CIAO @aios_ciao

スクラッチがf0~f3の4つ、スタック用がf5 その他は未設定というのは汎用ということかな。 ちなみに戻り先アドレスとかも(この場合f6とか)レジスタに充ててる処理系はある。

2017-09-16 15:18:15
AIOS CIAO @aios_ciao

krzが命令が1サイクルで実行できて、かつ符号とか演算結果のステータスフラグに影響を与えないならfenと同等かもしれないけど、現実的な実装を考えると別に用意することになりそうな気がする。 演算結果のステータスフラグレジスタが無い(専用にはある)ようなので問題はなさそうだけど。

2017-09-16 15:24:22
AIOS CIAO @aios_ciao

思考が既存のアーキテクチャを引きずってるなぁ。。。>自分

2017-09-16 15:25:47
【ゲムマ両サ-19】hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

@aios_ciao まあ、レジスタからレジスタへのkrzならそこまで遅くならないかなぁと(着想元はx86のxchg ax, axとかです)

2017-09-16 15:26:43
AIOS CIAO @aios_ciao

@sosoBOTpi 私はjz(ゼロフラグ立ってたらジャンプ)からの着想です。 事前に引き算という比較をしてフラグ立てますが。

2017-09-16 15:29:19
AIOS CIAO @aios_ciao

ところでオペランドの方向指定は初期状態ではどちらなのだろう。'c'iかな?'i'cかな? まさかのロケール依存だったりして

2017-09-16 15:32:19
【ゲムマ両サ-19】hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

@aios_ciao x86は「cmpで引き算を発生させて大量のフラグを立て、それに対し多量の命令で色々な場合の分岐をする」という設計だそうですね。2003fではcmpを増やすかjmpを増やすか迷ったのでダイスロールをして、cmpを増やすことにしました。

2017-09-16 15:32:37
AIOS CIAO @aios_ciao

ダイスロール とは# さいころを振る さいころか…

2017-09-16 15:33:53
AIOS CIAO @aios_ciao

@sosoBOTpi 考察のページからは「設計者がバート人だったので'c'iで実装してたけど修正が面倒だったので'i'cにも切り替えられるようにした」と読み取って、デフォルトは'c'iかなーと思いました。

2017-09-16 15:42:12
【ゲムマ両サ-19】hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

@aios_ciao リパラオネ人がメインなので'i'cに落ち着きました。settings.htmlに書いてある、「構文確定第一オペランドが-'i格、第二オペランドが-'c格として解釈される、デフォルトの語順に設定する」というのが記述です(分かりにくい)

2017-09-16 15:43:31
AIOS CIAO @aios_ciao

@sosoBOTpi その部分は「第一オペランドを-'i、第二~を-'cと解釈させる」状態をデフォルトに切り替える。 と解釈したので初期状態が規定されていないのかな、と読みました(分かりにくい)

2017-09-16 15:46:07
Fafs F. Sashimi @ welfelkurftlessen @sashimiwiki

@aios_ciao @sosoBOTpi さすがに修正を受けるだろうなあ(言語監査役が開発チームに付いているので)

2017-09-16 15:47:11
AIOS CIAO @aios_ciao

「デフォルトとして設定する」として受け取った、だな。

2017-09-16 15:47:29
AIOS CIAO @aios_ciao

間接参照する際のアドレスに境界は意識しなくてもいいという先ほどの話からも、この処理系は命令長が規定されていないからCISCのような感じでも実装できるのかな。効率を考えると2byteアラインくらいにはしたいところではあるけど。

2017-09-16 16:05:43
【ゲムマ両サ-19】hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

@aios_ciao 現在のインタプリタの実装では、将来命令長がどう決まったとしても困らないような作りにしてあります。

2017-09-16 16:07:16
AIOS CIAO @aios_ciao

ラベル定義のnllとl'の違いがよく分からない。 どちらもアドレスにラベルをつけるはずだけど、nllでは書けないパターンがあるとか? 後ろに命令が無ければl'でしか書けないとか。←fenでも置けば書けるのでは

2017-09-16 16:17:53
【ゲムマ両サ-19】hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

@aios_ciao それぞれリパライン語のla lexとny la lexに由来します。元々はla lexだけがあったのですが、関数を指し示すのに2行目にl'を置くというのは微妙だったのでnllを導入しました。

2017-09-16 16:19:24
AIOS CIAO @aios_ciao

@sosoBOTpi 2つの使い分けの基準はどういったところでしょうか?

2017-09-16 16:24:31
【ゲムマ両サ-19】hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

@aios_ciao そうですね、明確な使い分けの基準は考えていません(for文でcontinueしたあとi++するときとかはi++の後ろからl'を貼ったほうがループの内外が分離できて綺麗かもしれません)(@Vane11ope さんとかはどう使い分けているんだろう)

2017-09-16 16:30:12
【ゲムマ両サ-19】hsjoihs (はすじょい) @ 言語が好き @sosoBOTpi

@aios_ciao @Vane11ope 現在はマルチパスアセンブラになっていますね。まあ無理にワンパスにしなくてもいい気はしていますが ja.wikipedia.org/wiki/%E3%82%A2…

2017-09-16 16:40:42
AIOS CIAO @aios_ciao

1行に複数の命令が書いてある場合は先頭から有効な単位で翻訳されて実行されるという解釈でいいのかな。

2017-09-16 16:40:49
前へ 1 2 3 ・・ 6 次へ