■ このスレッドは過去ログ倉庫に格納されています
8086 vs. Z80 vs. 6809 vs. 6502 その10
- 1 :ナイコンさん:2014/08/10(日) 15:25:26.31 .net
- 8086(8088)・Z80・6809・6502のうち、どのCPU(MPU)が優れているか議論するスレッドです。
CPU(MPU)アーキテクチャや周辺デバイス制御など
基本的に「石」に関連する議論なら、ほぼ何でもアリです。
■過去スレ
8086 vs. Z80 vs. 6809 vs. 6502 その9 (再び)
http://hello.2ch.net/test/read.cgi/i4004/1365951318/
8086 vs. Z80 vs. 6809 vs. 6502 その9 (短命)
http://ikura.2ch.net/test/read.cgi/i4004/1362833400/
8086 vs. Z80 vs. 6809 vs. 6502 その8
http://ikura.2ch.net/test/read.cgi/i4004/1333965297/
8086 vs. Z80 vs. 6809 vs. 6502 その7
http://ikura.2ch.net/test/read.cgi/i4004/1319314159/
8086 vs. Z80 vs. 6809 vs. 6502 その6
http://toki.2ch.net/test/read.cgi/i4004/1286766300/
8086 vs. Z80 vs. 6809 vs. 6502 その5
http://toki.2ch.net/test/read.cgi/i4004/1280380374/
8086 vs. Z80 vs. 6809 vs. 6502 その4
http://gimpo.2ch.net/test/read.cgi/i4004/1252639237/
8086 vs. Z80 vs. 6809 vs. 6502 その3
http://gimpo.2ch.net/test/read.cgi/i4004/1235851359/
8086 vs. Z80 vs. 6809 vs. 6502 その2
http://gimpo.2ch.net/test/read.cgi/i4004/1213527504/
8086 vs. Z80 vs. 6809 vs. 6502
http://bubble6.2ch.net/test/read.cgi/i4004/1165801265/
6809とZ80 part 2
http://bubble4.2ch.net/test/read.cgi/i4004/1093190685/
6809とZ80
http://bubble2.2ch.net/test/read.cgi/i4004/1008496410/
- 651 :ナイコンさん:2016/04/27(水) 21:33:25.72 .net
- 基本的な事もできないくせに偉そうだな
- 652 :ナイコンさん:2016/04/27(水) 21:40:53.41 .net
- >>645
なるほど、
Z80だとリロケータブルなコードがものすごく書きにくい
→固定アドレスで動かす必用がある
→複数のタスクを同時にメモリ上(の別々の領域に)に置けない
→マルチタスクできない
って言いたかったのかな?
それなら実行ファイルにコード本体とは別にリロケート情報を持って置いて、
それを使ってローダーが再配置すれば解決する話だけどな。
- 653 :ナイコンさん:2016/04/27(水) 22:31:27.67 .net
- >>647
どうでもいいから、関係を説明しなよ w
>>652
> →複数のタスクを同時にメモリ上(の別々の領域に)に置けない
どこからそんなアホな話が出てくるんだよ...
タスクは全部同じアドレスに置かないとダメって思ってるのか?
- 654 :ナイコンさん:2016/04/27(水) 22:34:05.44 .net
- ゲハのニワカにマシン語なんてわかるわけもなく。
- 655 :ナイコンさん:2016/04/27(水) 22:34:13.52 .net
- >タスクは全部同じアドレスに置かないとダメって思ってるのか?
>>647
- 656 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 02:32:48.91 .net
- MSXで言うと、フツーにVSYNCの割り込みフックと、メインルーチンとは別個に動くよなw(モード1)。
タイマー割り込みで時分割するのはそれだけでオーバーヘッドになるw(使えない)。
今ならVC++でも手軽にマルチスレッド使えるし、いい時代だ。(アハ
- 657 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 02:54:08.63 .net
- リローケータブルって言うと、セグメント付きの8086だなw
つーか、物理アドレスをプロシージャー本体が知る必要もなく…w”
- 658 :ナイコンさん:2016/04/28(木) 04:56:08.93 .net
- SP相対のLD命令がないんだよな、Z80。
もうそれだけでマルチスレッドやりたくない。
- 659 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 06:19:45.99 .net
- 無理にやらなくていいし、Z80でマルチスレッドはできないよw
Pentium4以降だよw
- 660 :ナイコンさん:2016/04/28(木) 06:45:27.48 .net
- >>655
結局理由は示せない
ってことでいいかな?
- 661 :ナイコンさん:2016/04/28(木) 08:42:54.46 .net
- >>653
> どこからそんなアホな話が出てくるんだよ...
どこからも何も
> →固定アドレスで動かす必用がある
から出てくるんだが…
もしかして、
> →固定アドレスで動かす必用がある
> →複数のタスクを同時にメモリ上(の別々の領域に)に置けない
のつながりが理解できないのかな?
- 662 :ナイコンさん:2016/04/28(木) 08:53:48.32 .net
- 2
- 663 :ナイコンさん:2016/04/28(木) 08:55:29.79 .net
- 春だなぁ(笑)
- 664 :ナイコンさん:2016/04/28(木) 09:00:20.64 .net
- 例えば、
コードAが1000h〜2fffh
コードBが4000h〜5fffh
コードCが1000h〜3fffh
でそれぞれ動くようになってるときに、
AとB、BとCは同時動かせるけど、
AとCを同時にメモリ上に置いて動かすことは出来ない(MMU等を使えば別)
つまり「事前に」決められたコードの組み合わせでしか実行できない。
もともとリロケータブルなコードならそういう制限は無く、
メモリの許す限り任意のコードの組み合わせを同時に実行できる。
>>621はそういう意味で言ったんじゃないの?
組み込み用途では事前に決められたコードの組み合わせでしか実行できなくても
問題ないことも多いし、そうじゃなくてもローダで再配置すればいいだけだし、
結局リロケータブルなコードが書けるかどうかはマルチタスクとは関係ないんだけども。
- 665 :ナイコンさん:2016/04/28(木) 10:04:51.86 .net
- MSXならスロットの数だけDOSを起動なんて不可能ではなさそう
CUIのウインドウシステムか画面切り替えか
- 666 :ナイコンさん:2016/04/28(木) 10:12:23.03 .net
- >>658
IX使えばいいし、マルチスレッドって4MHz程度の8bitCPUに何をやらせようとしてんだか。
>Z80だとリロケータブルなコードがものすごく書きにくい
これがと言えるならZ80はほとんどのコードは書きにくいだろ。
- 667 :ナイコンさん:2016/04/28(木) 12:45:21.05 .net
- >>661
MMU も持たないシステムで
> →固定アドレスで動かす必用がある
なんてシステムがどんだけあるんだよ...
そんな前提がおかしいとか思わないのか?
- 668 :ナイコンさん:2016/04/28(木) 12:47:02.24 .net
- >>666
> これがと言えるならZ80はほとんどのコードは書きにくいだろ。
⇒ >>647
- 669 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 13:12:39.44 .net
- MZ-80K時代にタイムスリップだなw
- 670 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 13:14:56.30 .net
- 当時に入れ込んでしまった人たちにとっては、抜けられないトラップかもしれないな…w”
魅惑のZ80(笑)
- 671 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 13:18:45.50 .net
- MZ-80Kが登場したのが1978年、今から38年前かwアハw”
いちおう、ここもピークに相当するけど、これよりさらに前のTK-80、EX-68、L-Kit16もあるからなwwww”
- 672 :ナイコンさん:2016/04/28(木) 13:54:32.53 .net
- >Z80だとリロケータブルなコードがものすごく書きにくい
普通に書けるだろ。この前提でなぜレスが進むんだ。馬鹿なのか。
- 673 :ナイコンさん:2016/04/28(木) 14:09:05.59 .net
- 相対分岐が+-127って狭いからなスタックに現アドレス積んで分岐量加算してRETすれば何とかなるのかやったことないけど
- 674 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 14:42:13.45 .net
- >>672ワロタw
そこで感情的になるおまえはアホだなw
- 675 :ナイコンさん:2016/04/28(木) 15:59:27.77 .net
- 8086も条件分岐は1バイト内だろ。
- 676 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 16:06:46.13 .net
- セグメントあるから関係ないよw
- 677 :ナイコンさん:2016/04/28(木) 16:09:43.17 .net
- すごい知ったかw
セグメントが何か分かってないwww
- 678 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 16:28:16.23 .net
- そこで感情的になるおまえは無知だなw
- 679 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 16:29:20.39 .net
- 1976〜 TK-80 →ハンドアセンブルの勃興w
1977〜 PET-2001、Apple II、TRS-80、L-kit 16、H68TR ←ここがアメリカのピークw
1978〜 MZ-80K、BASIC MASTER LEVEL2 . ┐
1979〜 PC-8001 ┴→BASICブームw
1981〜 VIC-1001、PC-6001、PC-8801、FM-8、MZ-80B、 ←ここがマイコン時代のピークw
1982〜 PC-9801、COMMODORE 64
1983〜 MSX
1984〜 IBM PC/AT ──────┐
1985〜 MSX2、AMIGA、Atari ST... ┴→ここがアメリカの新御三家w
1987〜 MSX-DOS Tools →ハンドアセンブルからの解放w
PSAC(コナミ)、X68000 ←アニオタ出現w ┐
1988〜 SYSTEM II(ナムコ)、ギャラクシーフォース(セガ) ┴→回転、拡大、縮小ブームw
1989〜 FM-TOWNS ←まがい物出現w
1994〜 サターン、3DO、プレイステーション ←キーボードを捨てて養分になった図w
1996〜 Nintendo64
1998〜 ドリカス
GAME BASIC for SEGASATURN ────┐
1999〜 99BASIC.. ────┤
2000〜 プレステ2 →ソニー=ナムコ王朝w .→ポ . │リゴンブームw →養分から信者へw
DarkBASIC ────┤
2001〜 ゲームキューブ、Xbox │
BASIC STUDIO パワフルゲーム工房... ┴→第二次BASICブーム到来w
2005〜 Xbox360 ─┐
2006〜 Wii、PS3、WindowsVista ┴→旧世代の切り捨てw
2008〜 DarkGDK →VC++がBASIC並みに簡単に記述可能なゲーム用補助ライブラリーw
2009〜 Windows7
2011〜 AppGameKit →モバイル用の豊富なコマンド群を揃えた簡単な開発ツールw
2012〜 Nexus7、Androidの台頭 →従来のPC/AT機から主流となるプラットフォームへ移管w
iPad mini →Androidの台頭で焦って出すw Windows8 →Going My Way(笑)
2014〜 PG278Q →ゲーム用に特化された秒間144コマ出力モニターw
2015〜 Windows10、MenuetOS 64bit版v1.00
2016〜 Raspberry Pi用AppGameKit無料配布開始w http://www.appgamekit.com/agk-pi/
- 680 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 16:30:22.49 .net
- こうして見ると、40年間は長くて短いような…基本的には連続してるよなw
- 681 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 16:33:57.37 .net
- 1レスで40年間をまとめる偉業を達成w
- 682 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 16:36:26.85 .net
- な、途中で切り捨てられた連中もいるし、うまいこと乗っかってる奴もいるし、40年間の歴史だなw
- 683 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 16:37:55.01 .net
- 今日は ” マイコン40周年の日 ” に制定しよう。
- 684 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 16:46:40.78 .net
- 記念にゲハ板でスレ建ててやったぞw
2016.4.28.Thu 今日はマイコン40周年の日(c)2ch.net
http://wktk.2ch.net/test/read.cgi/ghard/1461829488/
- 685 :ナイコンさん:2016/04/28(木) 16:55:50.12 .net
- >>677
セグメントが有れば、同一セグメント内ならオフセットアドレスのみでジャンプ/コール出来るから
実アドレスの何処にロードされても正常に動作する。
従って674の言う事は正しい。
- 686 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 17:02:21.85 .net
- なんか40年前と霊界通信してるみたいだなw
- 687 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 17:04:54.72 .net
- また40年後に同じこと書いてると思うと笑えるよなw
- 688 :ナイコンさん:2016/04/28(木) 17:24:24.89 .net
- >>685
条件ジャンプの話なんだがw 知ったか乙w
- 689 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 17:27:39.52 .net
- >>688
揚げ足取りじゃ人生空しいぞw
- 690 :ナイコンさん:2016/04/28(木) 18:48:21.74 .net
- 別にリロケータブルじゃなくてもバンク切り替えでマルチタスクするシステムあったし
- 691 :ナイコンさん:2016/04/28(木) 18:48:24.56 .net
- >>672
ld a, (L1)
ret
L1: db 10
リロケータブルにしてくれ
- 692 :ナイコンさん:2016/04/28(木) 18:53:31.77 .net
- LD A, 10
RET
- 693 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 19:02:21.59 .net
- いい味だなw
- 694 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 19:03:21.93 .net
- インダイレクトアドレッシングがあると、固定アドレスの問題は解決しやすいねw
- 695 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 19:05:56.20 .net
- 要するに、
LD A, [ [ L1 ] ]
RET
L1: DW VAR1
VAR1: DB 10
- 696 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 19:11:07.82 .net
- プロシージャー本体
LD HL, L1
LD HL, [ HL ]
LD A, [ HL ]
RET
L1: DW VAR1
----
ワークエリア
VAR1: DB 10
- 697 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 19:16:06.51 .net
- あ、LD HL,[ HL ]ってないんだなw
- 698 :Office & Gamers @ 試験運用中(トリなしw:2016/04/28(木) 19:20:48.64 .net
- プロシージャー本体
LD HL, [ L1 ]
LD A, [ HL ]
RET
L1: DW VAR1
----
ワークエリア
VAR1: DB 10
- 699 :ナイコンさん:2016/04/28(木) 19:42:47.11 .net
- >>692
L1 のメモリー書き換えられたら動作が違う
やり直し
- 700 :ナイコンさん:2016/04/28(木) 19:52:11.09 .net
- アロケート時にベースアドレス設定するなり、呼ぶ前にレジスタ設定して渡せばいいだけ。呼ぶんだからアドレスは知ってるよな。
LD A, (IX+4)
RET
- 701 :ナイコンさん:2016/04/28(木) 20:33:44.09 .net
- >>699
L1のアドレス位置はベースアドレスから2バイト目だよ。書き変えてもok
3E 0A C9
- 702 :ナイコンさん:2016/04/28(木) 21:21:49.72 .net
- リロケータブル(コード位置が独立的)とスレッドセーフ(データの参照が他のスレッド/タスクから独立的)の違いが判ってないニワカが居る、と思うのは俺の気のせいか?
- 703 :ナイコンさん:2016/04/28(木) 21:32:38.62 .net
- スレッドセーフってw 8bitCPUですよw アドレス空間は64KBですよw 世界はすべてあなたのものですよwww
- 704 :ナイコンさん:2016/04/28(木) 22:48:15.95 .net
- Z80だと、
LD DE,MSG
LD C,9
CALL 5
RET
MSG: DB 'HELLO WORLD$'
これくらい普通のコードでもリロケータブルにならないからな。
リロケータブルにするなら、
LD DE,MSG
を
CALL L1
L1: POP HL
LD DE,MSG - L1
ADD HL,DE
EX DE,HL
とか、自前でPC相対アドレスを求めなきゃならない。
- 705 :ナイコンさん:2016/04/28(木) 23:08:43.49 .net
- 自前でPC取得したきゃすればいいいが、自前である必要がない。
アロケートした側はベースアドレスを把握してるのだから。渡せばいいだけ。
- 706 :ナイコンさん:2016/04/28(木) 23:12:45.11 .net
- >>705
なにやら根本的に理解して無い様子、しばらくROMってたほうがいいんじゃないか?
- 707 :ナイコンさん:2016/04/28(木) 23:15:35.10 .net
- 根本ねぇ。馬鹿なの?必死こいてPC取得とかアホの極みだろw なんだそのコードw
- 708 :ナイコンさん:2016/04/28(木) 23:17:12.06 .net
- >>707
馬鹿なのはあきらかにお前。また恥をかく前に撤退しろよw
- 709 :ナイコンさん:2016/04/28(木) 23:23:58.56 .net
- じゃあその根本とやらを説明してみてよ。
なぜベースアドレスを渡せばいいだけなのに、それをやらない根本的理由をw
- 710 :ナイコンさん:2016/04/28(木) 23:26:50.99 .net
- > ベースアドレスを渡せばいいだけ
というのが根本的な間違い。
- 711 :ナイコンさん:2016/04/28(木) 23:30:43.61 .net
- その理由を聞いてるのに答えれないのは根本が何も分かってないからだよw
ほんとおまえ恥ばかりかいてるけどメンタル大丈夫かw
- 712 :ナイコンさん:2016/04/28(木) 23:32:03.22 .net
- >>711
そこまで言うなら
ベースアドレスを渡せばいいだけ
というコードを書いてみろよw
- 713 :ナイコンさん:2016/04/28(木) 23:38:23.99 .net
- 理由を聞いてるのにコード書いてみろってなに逆ギレ左翼論法w
- 714 :ナイコンさん:2016/04/28(木) 23:42:16.21 .net
- 書いてみれば理由(の半分くらい)はわかると思うよ?
- 715 :ナイコンさん:2016/04/28(木) 23:49:24.88 .net
- なるほど。おまえは自分が挫折した理由を半分くらい理解したわけだな。
残り半分を教えてやろう。スキル不足だ。
- 716 :Office & Gamers @ 試験運用中(トリなしw:2016/04/29(金) 00:03:25.68 .net
- ムダな足引っ張りはやめて、素直にDarkGDK使いなさいw
- 717 :2016.4.28.Thu 今日はマイコン40周年の日:2016/04/29(金) 00:15:20.11 .net
- http://s-sasaji.ddo.jp/pccata/vic1001.jpg
- 718 :ナイコンさん:2016/04/29(金) 02:00:49.77 .net
- ベースアドレス、ベースアドレスって言ってるのは、IXに入れておけばどうとでもなるって意味?
あまり >>704と大差無い結果になる気がするが?
それと、Z80で相対アドレスCALLって出来るんだっけ?
x86ならばこういうバイナリパッチは常套手段だけど…
- 719 :Office & Gamers @ 試験運用中(トリなしw:2016/04/29(金) 02:07:58.70 .net
- CALL NEXT
NEXT: POP HL
どうぞw
- 720 :Office & Gamers @ 試験運用中(トリなしw:2016/04/29(金) 02:22:33.09 .net
- 自分で計算することになるけど、相対アドレスCALLができるのは8048系統ぐらいだろうなw
>>718は何の用途で使ってるんだ?wwww”
- 721 :ナイコンさん:2016/04/29(金) 03:01:57.71 .net
- >>704
・・・
CALL L1
L1: POP HL
LD DE,MSG - L1
・・・
Z80のCALL命令は、絶対アドレス指定しかないから
そもそも提示のコードはリロケータブルにならない
Z80でPC相対が出来るのは、JR/JR xx のみ
残念でした。
- 722 :ナイコンさん:2016/04/29(金) 03:28:36.81 .net
- やっぱそうだよねぇ。あとDJNZも相対指定可だった気がするけど、どうでもいいか
どうしてもやりたいなら
0038: POP HL
JP (HL)
としておいて RST 38H とするとか…かな?
むかーし昔、これやって怒られた気もするけどw
- 723 :ナイコンさん:2016/04/29(金) 05:32:38.42 .net
- >>702
たぶん君の気のせい
スレッドセーフに関係しそうなのはリエントラントっていってた奴ぐらいしかいないし
- 724 :720:2016/04/29(金) 06:37:41.28 .net
- 確かに気のせいだった・・・
マルチタスクは〜と新しい話題振られる。
リロケータブル書きにくいよね、と続く。
書けるだろ、と突込みが。
簡単に書けないないのは皆わかっててのやり取り(の様に見えるのだが)に「リロケータブル書くの簡単だろ(超意訳」とか本気で言ってるとしか思えん訳わからんバカが乱入した、と。
- 725 :ナイコンさん:2016/04/29(金) 07:49:17.39 .net
- Z80でリロケータブルなコード書くのは面倒くさい。
- 726 :ナイコンさん:2016/04/29(金) 08:25:03.19 .net
- ベースアドレス君 玉砕の巻き
- 727 :ナイコンさん:2016/04/29(金) 10:16:38.05 .net
- >>721
うわ…その通りだw
>>722のようなコードを用意して置いてそれを呼び出すしかないのかな。
固定アドレスで呼び出せるBIOSかOSにコードを用意しておけば38HじゃなくてもOKだと思うけど。
- 728 :ナイコンさん:2016/04/29(金) 11:24:21.15 .net
- >>726
いやおまえがまた論破されたんだよ。
JP (IX) で飛んでくるんだから、ベースアドレスは普通に分かってるから。昔のコードはそうなってるでしょ。
- 729 :ナイコンさん:2016/04/29(金) 12:13:18.14 .net
- リロケータブル書けない君、面倒君は単に開発経験ないのだろう。
- 730 :ナイコンさん:2016/04/29(金) 12:40:54.36 .net
- >>724
馬鹿はおまえだよw
- 731 :ナイコンさん:2016/04/29(金) 13:09:22.52 .net
- >>728
ほうほう
Entry:
...
call L1
...
L1:
...
ret
リロケータブルにしてくれ
(IX = Entry のアドレスでいいよ)
- 732 :ナイコンさん:2016/04/29(金) 14:08:03.26 .net
- Entry:
...
LD A, 0_;taskID
call _dispach
...
_dispatch:
LD HL, _table
ADD L,A
ADD L,A
JP (HL)
L1:
...
ret
- 733 :ナイコンさん:2016/04/29(金) 15:58:15.56 .net
- >>728 >>729
実例の一つも出せばそれで終わりなのに、残念な書き込みだな
- 734 :ナイコンさん:2016/04/29(金) 16:12:02.34 .net
- できない理由を説明しろ → コード書けば分かる。おまえがコードだぜ → コードです → 実例出せ
馬鹿なのか?
- 735 :ナイコンさん:2016/04/29(金) 16:38:03.20 .net
- >>734
> コードです
ひょっとして >>732 のことを言ってるのか?
> call _dispach
> LD HL, _table
笑うしかないんだが w
- 736 :ナイコンさん:2016/04/29(金) 16:50:44.72 .net
- >>735
何を勘違いしてるかだいたいわかってきた。FreeBSDのコードが参考になるよ。
- 737 :ナイコンさん:2016/04/29(金) 16:54:20.38 .net
- >>735
それリロケータブルタスクの外のディスパッチルーチンやでwww
- 738 :ナイコンさん:2016/04/29(金) 16:54:52.20 .net
- FreeBSD/z80 ?
- 739 :ナイコンさん:2016/04/29(金) 17:28:18.29 .net
- >>732
ああ、これが>>731の「実例」なのかw
すべてのサブルーチンをこうやって呼ぶのかw
毎回テーブル作ってw メモリ食うしw OS側は面倒で仕方ないねw
ディスパッチルーチンのオーバーヘッドもあるしw
その上このディスパッチルーチンだと_tableの下位8bitは0固定、_taskIDは127まで
とか、色々涙ぐましい制限まで要りそうだねw
何というか…面倒くさい事の見本だねw
- 740 :ナイコンさん:2016/04/29(金) 17:41:54.11 .net
- Z80なんて64KBしかないのにTASKなんて数個だし、アロケートテーブルは16byteもあれば足りる。
ほんと8bitCPUで何をやらせる気だよ。OS側ってなんだよw
いつからマルチタスクOSを作る話になってんだよw 典型的な無能SEの後出し仕様じゃねーか。
スレッドセーフ言い出したりZ80にMMUあると勘違いしてた馬鹿でしょ?
- 741 :ナイコンさん:2016/04/29(金) 17:55:49.08 .net
- >>737
要するに完全にリロケータブルにはできないってことだろ
まあそれはいいとしても
・サブルーチンの数だけエントリー作る必要ある
・プログラム修正する度にエントリーの内容を変更しないとダメ
・サブルーチン番号を渡す必要あるのでレジスタがひとつつぶれる
とても普通に書けるってレベルじゃないわな
- 742 :ナイコンさん:2016/04/29(金) 18:05:07.98 .net
- 共用するものをサブルーチンにするんだから、それはコア部分に置くのでリロケータブルにしないね。
メモリが64kbしかないんだから一回走らせたら破棄するコードをリロケータブルにするんだよ。
管理コードもとにかくシンプル。8bitCPUじゃ常識。
>レジスタがひとつつぶれる → とても普通に書けるってレベルじゃない
というかアセンブラ経験ないど素人かよw 馬鹿なんだから素直にBASIC使っとけw
- 743 :ナイコンさん:2016/04/29(金) 18:05:20.94 .net
- >>731ってTASK呼び出しのサンプルなのか?
なんか、凄く都合よく解釈してないか?
- 744 :ナイコンさん:2016/04/29(金) 18:12:59.00 .net
- どや顔でだしてきたコードが >>732 ww
サブルーチンは共用しか認めないとか、レジスタがつぶれることにはまともな反論できないとか
恥ずかしすぎるだろ
- 745 :ナイコンさん:2016/04/29(金) 18:18:25.00 .net
- 反論する馬鹿はいない。元からレジスタなんてほとんどないCPUばかりだろw 8086もz80も6809も6502もwwww
- 746 :ナイコンさん:2016/04/29(金) 18:26:14.31 .net
- LD HL, _table
ADD L,A
ADD L,A
JP (HL)
JP (HL) の動作は(表記からわかりにくいけど) PC←HL だから、
Aが0の場合そのままJP _tableと等価の命令になる、
この場合確実に暴走するんじゃね?
そもそも全タスク共通で一つのテーブルというのも現実味がない。
タスクごとにローカルなテーブルを持って、
dispatchルーチンではそれをIXに格納されてるアドレス相対で参照するべき。
- 747 :ナイコンさん:2016/04/29(金) 18:28:58.67 .net
- ADD L,A なんて命令ないし、やっつけ杉だろw
- 748 :ナイコンさん:2016/04/29(金) 18:35:05.06 .net
- そういや間接が一段足りないなw
ADD L,Aも無いなw
>アセンブラ経験ないど素人
なんだ、自己紹介だったのかw
>馬鹿なんだから素直にBASIC使っとけw
特大ブーメランだったなw
- 749 :ナイコンさん:2016/04/29(金) 19:29:49.12 .net
- 気づかないおまえが馬鹿w
- 750 :ナイコンさん:2016/04/29(金) 20:08:24.00 .net
- 結局玉砕の巻じゃねーか w
- 751 :ナイコンさん:2016/04/29(金) 20:47:05.75 .net
- 俺のチン子はベクトル型
総レス数 1007
237 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200