やはり8080やZ80はアドレッシングモードが貧弱で悲しい

0001ナイコンさん2020/12/12(土) 02:47:21.89
初心者でもプログラミングし易いのと逆アセンブルでの解析が比較的易しいのは
利点だが

0002ナイコンさん2020/12/12(土) 05:17:35.74
LD --(IX), BC
LD BC, (IX)++
LD (IX)+,(IY)+
LD (IX)++, (IY)++
ADD (HL),A
ADC (IX),BC
ADC (HL)+,A
ADD (IX)++,BC
LD BC,(PC,<LABEL>)
INW (IX) ;インデクスレジスタ間接16bitインクリメント

みたいのが欲しいかというと、それほどでもなく
理由:どーせ命令長が伸びて「それほどメモリ節約にならんやんけ!8080な範囲でやりくりした方が動作早いやんけ!」となる

0003ナイコンさん2020/12/12(土) 09:44:19.38
嫌なら68000使えばいいじゃない

0004ナイコンさん2020/12/20(日) 21:18:40.26
HLに即値を足す命令とHLにAを足す命令は要る

0005ナイコンさん2020/12/25(金) 15:17:47.47
HとLがそれぞれ8bitアキュームレータ扱いで
ADD L,A
ADC H,0
とか書けたら良かったんだろうか

0006ナイコンさん2021/01/02(土) 15:06:19.54
命令数が限られた8bitだから厳選してるんだよな
使われないアドレッシングの命令があると無駄になるし

0007ナイコンさん2021/01/02(土) 18:47:37.16
6809でもいじってればいいだろ

0008ナイコンさん2021/01/05(火) 11:13:47.81
6502や6809に演算結果をメモリ側に残す命令が欲しかった
OPコードマップは空いてるんだし

0009ナイコンさん2021/01/05(火) 21:44:36.47
LDA #$01
STA <$01
LDA #$7F ;A9 7F 2clk
ACM <$01 ;67 01 (仮) 4clk A=($01)=#$80
;LDA <$01 ;A9 01 3clk
;ADC #$7F ;69 7F 2clk
;STA <$01 ;85 01 3clk
;2byte 2clk オトク

LDA #$0F ;A9 0F 2clk
ANM $0100 ;2F 00 01(仮) 5clk A = ($0100)
;LDA $0100 ;AD 00 01 4clk
;AND #$0F ;29 0F 2clk
;STA $0100 ;8D 00 01 4clk
;3byte 3clk オトク

6502風、こんな感じ?

0010ナイコンさん2021/02/04(木) 12:57:02.23
ブロック転送やブロックサーチの命令なんか無くても困らんから
乗算や除算を1ステップだけ実行する命令が欲しかった

0011ナイコンさん2021/02/04(木) 20:32:28.74
CPUとDMAが別チップになってるけど不可分だったならブロック転送やブロックサーチはいらない分、それも可能だったりしたかもね。

0012ナイコンさん2021/02/20(土) 23:22:07.08
Z80は相対ジャンプ使えるからいいね。逆に8080が人気無いのはこの為か?
ゲームボーイのCPUは洗練されていて相対ジャンプはあるけど、裏レジスタ無しの
シンプル設計

0013ナイコンさん2021/02/21(日) 06:32:40.67
8086パソコンで初めてパソコン触った口で
8086のセグメントが大嫌いだったけど、後でZ80を触るようになって
8086は8bit CPUに比べれば非常に高機能だったんだなと改めて認識したなぁ

0014ナイコンさん2021/02/21(日) 19:02:00.17
相対ジャンプ、遅くなってあんまり嬉しくなかったなぁ(DJNZを除く)

0015ナイコンさん2021/02/22(月) 14:09:03.63
>>12
リフレッシュ機能の有無
当時のホビーストが出始めのDRAM使うにはリフレッシュ機能自分で組み込む必要あったから

0016ナイコンさん2021/02/22(月) 20:25:15.29
あと8080との比較なら+5V単一電源って言うのもあるな

0017ナイコンさん2021/02/24(水) 08:23:15.09
>>5
AレジスタとHLレジスタに分けちゃったのがなんでやという気がする
アキュムレータAH,ALに拡張して8ビットはALで計算して一命令でAHALに拡張(符号あり、なし)できるようにしたらよかったと思う

0018ナイコンさん2021/02/24(水) 17:29:35.70
>>17
でもその代わり、メモリポインタ計算であるHL系とアキュムレータとで別々に計算できて良かったかもね。
8080だとHLではなく Mだし、そういう思想かと思うわ。

0019ナイコンさん2021/02/28(日) 08:52:44.77
>>15
それってプログラマーが意識してプログラム中に随時、リフレッシュ処理をはさむようにしなきゃならなかったって事?

0020ナイコンさん2021/02/28(日) 12:31:00.41
>>16
そういやそれも大きいね
>>19
Z80が出始めのころの自作マイコンボードの話
SRAMより容量多いDRAMが登場してみんな使いたかったんだけどフレッシュ回路を付けなくちゃいけないから面倒だった
それがZ80だとCPUにその機能があるんで付ける必要ないから人気になった

0021ナイコンさん2021/02/28(日) 13:18:04.49
>>19
そうじゃなくてCPU止めてリフレッシュする回路を別に組まないといけないって話だろ

0022ナイコンさん2021/03/01(月) 15:41:33.32
内部16bitにしてHLもIXも同一クロックで回せばいいのに
Z80コードから内部コードに変換して

0023ナイコンさん2021/03/01(月) 19:51:06.50
eZ80でも使えば?

0024ナイコンさん2021/06/08(火) 18:15:38.82
Z80の子孫は[HL+d8] [DE+d8] [SP+d8] [HL+B] [HL+C] [d16+B] [d16+C] [d16+BC]
とかができるがやはりインストラクションセットは醜い
なぜR8Cの方を残さない

0025ナイコンさん2021/06/30(水) 20:48:18.81
>>10
除算で内部的には剰余が判ってる筈なんで何処かのレジスタに剰余を入れて欲しかった

0026ナイコンさん2021/07/18(日) 20:27:44.76
今なら1MBぐらいでSRAMで実装できそうですけどね。

0027ナイコンさん2021/07/18(日) 22:00:19.68
>>26
日立 HD64180(似非Z80)に SRAM1M入りが 1985年にあったら組込み用途でヒットしただろね

0028ナイコンさん2021/09/16(木) 19:58:41.98
X1でZ80,X68000で68000を使ってたのであれくらいが丁度良い
覚えることが少ないほうが良い

0029ナイコンさん2021/09/18(土) 00:18:21.78
NEC V30とか使えば実質仮想8080モードが使える

0030ナイコンさん2021/09/18(土) 18:53:25.13
μPD9002ならZ80モードも

0031ナイコンさん2022/05/09(月) 02:10:25.79
そこでHD6309だよ

0032ナイコンさん2022/10/23(日) 16:27:39.36
プロテクトモードが

0033ナイコンさん2022/11/05(土) 11:04:42.72
プロテクトされていた

0034ナイコンさん2022/11/08(火) 11:58:11.99
GB CPUって何か中途半端だな
Z80から多くの機能が削られて8080に近いかと思えば
余り使わないCB+xxのビット命令は存在していたりとか

0035ナイコンさん2022/11/08(火) 12:07:15.06
レジスタを8080と同じにしただけで、命令は極力削らない方針でまとめたのでは

0036ナイコンさん2022/11/08(火) 17:20:23.79
というか皆どうやって知ったのだろうか
使い方・・・・
だいぶ後でCは本があったので覚えたけど


仕事の研修でルネサスのアセンブラを知ったのが最初だったわ(笑)
(どんだけ後なんだよ(笑))

研修内容
RS232Cとのデータ通信割込み みたいな
組み込み系

0037ナイコンさん2022/11/08(火) 23:03:47.47
>>34
そうか?以下に書いてるように割と考えられてるように思えるが。
https://www.wizforest.com/diary/120123.html

6502のゼロページアドレッシングもどきで6502系の経験活かせるようにしてる感じ

0038ナイコンさん2022/11/09(水) 11:25:26.52
HLに即値を加える命令が欲しかった

0039ナイコンさん2023/02/13(月) 22:11:52.38
8080系が幅をきかせていたのはやっぱインテルだから?

0040ナイコンさん2023/02/18(土) 08:28:29.03
初期のインテル製品は日本メーカで製造してたのが多い(セカンドソース含む)から販社の推しも強かったのもあるかもしれない

0041ナイコンさん2023/06/10(土) 09:47:10.60
( ̄ー ̄)ニヤリ

0042ナイコンさん2023/08/13(日) 13:59:49.11
自業自得

0043ナイコンさん2023/08/14(月) 16:40:37.03
マクロアセンブラで好きなようにマクロ組めば無問題

0044ナイコンさん2023/12/30(土) 18:45:06.58
むっちゃクチャ面白い記事を見つけた
https://www.saluteweb.net/~oss_8080.html
https://www.saluteweb.net/~oss_z80.html

なんでZ80アセンブラは「あれ?こういう書き方できないの?」って事になるのかわかったよ

新着レスの表示
レスを投稿する