AILZ80ASM
AILZ80ASM copied to clipboard
Z80アセンブラ
内藤さんよりご要望
内藤さんよりご指摘 https://x.com/NAITOTokihiro/status/1789283368628330546 同名のラベルがネームスペースをまたがって存在する場合には、サジェストするエラーメッセージを出力する
Uenoさんよりご指摘 https://x.com/Ueno1969/status/1776579413343162848 ``` "rlc r" と "rrc r" のステート数が4になってますが、rrcaと違って2バイト命令なので 8 かと思います。 ```
内藤さんよりご要望 https://x.com/NAITOTokihiro/status/1781140391087292440
#if exists で参照するラベルが後方で定義されていると、#false判定になるようです。 ``` ;draw bytes 0002FC F5FC 1EFF 7 LD E,$FF #if exists HOGE ; #if exists hfill_bc_e_a inc bc call hfill_bc_e_a ;BC=GA,E=FILL,A=BYTES #else 0002FE F5FE 3C 4 inc...
黒犬さんからのご要望 https://x.com/KuroinuRdr/status/1703609365201334483?s=20 ``` MSXturboR対応のご検討、よろしくお願いいたします。 ``` 内藤さんからのアドバイス https://x.com/NAITOTokihiro/status/1703952979433533748?s=20 ``` R800のZ80互換モードでは、8bitと16bitの乗算命令と割り込み系命令が追加されただけだったような。 ただ、各命令の実行ステートが全く違う(M1サイクル廃止もある)はずなので、 リスティングファイルに出力されるステート数テーブルを変更する必要はあると思います。 ```
内藤さんよりご依頼。 https://twitter.com/NAITOTokihiro/status/1690150741116342272?s=20 ``` 従来のデータを配置する DB や DW に加えてどちらも配置できる DD(Define Data)という制御命令があると嬉しいです。 DW LABEL1 DB $01 DW LABEL2 DB $02 DW LABEL3 DB $03 従来だとこのように書かざるを得ない部分を DD LABEL1, $01, LABEL2, $02, LABEL3, $03...
いくつか高速化の修正を加えました。 お時間あるときにご確認願います。 - AIMath.csの正規表現コンパイル - 3割ほど高速化 - Labels.csの正規表現コンパイル - これはあまり差がでませんでした。 - AIMath.csとLabels.csの ".@"の演算子のチェックの文字列検索順序を変更 - 4割ほど高速化 参考に、```AILZ80ASM.Benchmark\bin\Release\net8.0\AILZ80ASM.Benchmark.exe```の実行結果をつけておきます。 CPU: i5-13400 この修正 ``` // * Summary * BenchmarkDotNet v0.13.12, Windows 11 (10.0.22631.4169/23H2/2023Update/SunValley3) 13th...