2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

8ビットCPUでC言語? ないないありえないっしょ! 3

1 :ナイコンさん:2018/06/07(木) 00:31:12.73 .net
【前スレ】
8ビットCPUでC言語? ないないありえないっしょ! [無断転載禁止]©2ch.net

Part.2 http://matsuri.5ch.net/test/read.cgi/i4004/1470913460/
Part.1 http://hanabi.2ch.net/test/read.cgi/i4004/1468652612/

     ♪    /.i   /.i  /.i
   ♪     ∠__ノ ∠__ノ ∠__ノ   
        〈,(・∀・;)ノ・∀・;)ノ・∀・;)ノ
         └i===|┘i===|┘.i===|┘  
           〈__〈 〈__〈 〈__〈

2 :ナイコンさん:2018/06/07(木) 00:36:17.27 .net
8ビットCPUでC言語? ないないありえないっしょ! 3
http://matsuri.5ch.net/test/read.cgi/i4004/1528299072/

次スレ立てる場合はスレタイ同一がお約束。なんでここは派生スレね。
以後、テキトーにどうぞ。

3 :ナイコンさん:2018/06/07(木) 00:45:33.28 .net
なんでここは派生スレね → なんでここが次スレね

4 :ナイコンさん:2018/06/07(木) 02:03:07.80 .net
『信長の野望・全国版』...前作『信長の野望』はBASIC言語で作られていたが、本作はC言語で開発された。
https://ja.wikipedia.org/wiki/信長の野望・全国版

ということなので、88版のDISK IMAGEから文字列をバイナリエディタで舐めてみた。容量552AF。
有意な文字列ほとんど無いが僅かながら"DISK I/O ERROR"みたいなエラーメッセージが24H($)で区切られて
いるので基本はたぶんCP/Mベースだろう。CP/MのOSファイルは無い。実際のところDOS自体はオリジナル。
”YDOS Ver2.2(58.5K) 15-Feb-85 I.YODA”というクレジットがある。この文字列は24Hなし。

5 :ナイコンさん:2018/06/07(木) 11:37:40.10 .net
wikipediaは嘘も多いからなんとも言えないけど
88版だと「%s様が病気になりました」なんかの文字列があるね
解析するとメモリの1183h〜あたりがprintfの処理かなぁ
LD HL, n
ADD HL, SP
ってコードが多いのがC言語っぽいけど
IXやIYがあまり使われてなさそうなのがコンパイラっぽく無いとも感じる
引数制限してるかグローバル変数使いまくりなんだろうか

6 :ナイコンさん:2018/06/07(木) 22:47:16.58 .net
88版なら漢字コードがJISかもしれないなぁ。
昔々すぎて詳細忘れたけどN88BASICで漢字のフォントデータ読み出す処理を書いたときにSJIS(N88BASICがSJISなので)からJISに変換したような覚えがなんとなくある。

7 :ナイコンさん:2018/06/07(木) 22:48:12.50 .net
>>6
あ、すまん、%s様が〜ってみえてるのか。
ならSJIS使ってるね。

8 :ナイコンさん:2018/06/07(木) 23:39:37.17 .net
> IXやIYがあまり使われてなさそうなのがコンパイラっぽく無いとも感じる

当時Z80の命令吐くコンパイラがどんだけあったと思ってる?

9 :ナイコンさん:2018/06/08(金) 00:11:13.28 .net
えすぷれっそまっすぃーーん

10 :ナイコンさん:2018/06/08(金) 03:19:58.85 .net
変態実装のprintf()はいくらメモリ食うと思ってんだ。
DOS時代でさえputs()使いましょうだったのに。

11 :ナイコンさん:2018/06/08(金) 04:12:15.95 .net
>>5
サンクス。HEXダンプして見ていたので、シフトJISダンプするの忘れていたわ。
FDイメージを単純にシフトJIS表示させると以下↓のごとくごそごそ出てきたわ。

蛎崎 津軽 南部 葛西 秋田 伊達 最上 結城 葦名 上杉 佐竹 宇都宮 里見 北条 ・ 嵩c 畠山 神保 姉小路
木曾 今川 本願寺 朝倉 斉藤 徳川 堀 c 北畠 浅井 六角 一色 波多野 足利 筒井 三好 堀内 山名 別所 尼子
宇喜多 毛利 十河 細川 河野 長宗・ 苺・一条 城井 竜造寺 大友 阿蘇 伊東 島津 明智 羽柴 柴田 慶広
為信 晴政 晴信 愛季 輝宗 義守 晴朝 盛氏 謙信 義重 広綱 義尭 氏政 信玄 義綱 氏張 自綱 義昌 義元 光佐 義景
義竜 家康 信長 具教 長政 義賢 義道 秀治 義昭 順慶 長 慶 氏善 豊国 長冶 晴久 直家 元就 存保 晴元 通宣
元親 兼定 鎮房 隆信 宗麟 惟将 義祐 貴久 光秀 秀吉 勝家 sコxココ・村仄本国 商業国

兵がおりまへん 兵がおらん 兵がおりもさん ;ニJニ[ニjニ{ニ竿僻民がおりやせん 民がおらんがいね 民がおりませぬ
民がおりゃあせん 民がおりまへん 民がおらん 民がおりもさん イト7ナエナ-ニセニフニムニヨニロニ猗衄・ニ地図表示区分
全国 東北 北陸 関東 中部 近畿 中国・四国 九州 ヌヌ&ヌ %ヌ.ヌ5ヌ属領地への
ありません。 可能国 菴・スス セセ一揆軍 一向宗 延暦寺派 海賊 キリシタン 謀反軍 第%d国 %d.%s

------
漢字コードがシフトJIS。ということは、シフトJISで対応のFEPとエディタ、コンパイラで開発していたことを意味する。
シフトJISの仕様策定は1982年らしいが、同年に9801が出荷開始されている。LSI Cは1984年には出荷されていたという話。
ジャストのATOKやメガソフトのMIFESは1985-86年には出そろっている。ということみたいだから、
1986年版の信長の野望全国版の8801版は9801のクロス環境で開発されていた。と考えるのが自然な推定であるような気がする。

12 :ナイコンさん:2018/06/08(金) 04:52:53.96 .net
>IXやIYがあまり使われてなさそうなのがコンパイラっぽく無いとも感じる

LSI-Cに限らず8bit対応C言語がどんなコードを吐き出すか俺は知らないのでなんとも言えないが、
CP/Mという世界は基本8080の世界でZ80とは実はあまり密接な関係には無いのね。というのも、
CP/Mはインテル謹製の8080/85開発装置のためにインテルから依頼されたコンサルのキルダールがインテルの金で
開発したOSで奇しくも非採用になったためにインテルから版権を得てキルダールが市販しはじめたもの。なので
バインドされていたASM.COMとかDDTや別売りのMAC/RMACみたいなDRIのアセンブラ類もインテルニーモニック対応。
インテルシンパなキルダールがザイログ軽視していたのはそのへんの「ビジネス」絡みだったのかも。
ここら辺がDRIが商売下手なところで、MACRO-80のMSにつけいる隙を与えてしまった。唯一の例外はZSIDくらい。
なので、CP/M80専用ソフトにZ80固有アーキテクチャのIX/IYに冷淡なコンパイラとかがあっても不思議は無いのね。
79年なBDS CがIX/IY無視バイナリでも不思議無いかもね。

それと、CP/M向けの言語とかエディタにはAND 7Fでサインビットをマスクして無理矢理7bitASCII対応していた
ソフトがけっこうあった。結果半角カナが扱えない。そういうソフトをDDTでディスアセンブルしてAND 7FHを探しだし
処理フローを類推しながらAND FFHとパッチして無理矢理カナを扱えるようにするみたいなことをやった覚えがある。

シフトJIS処理された信長の野望全国版のDOSが独自なYDOSベースなのはこのサインビット処理・シフトJIS対応の故なのだろうね

13 :ナイコンさん:2018/06/08(金) 05:15:05.40 .net
LSI-Cの開発者森公一郎氏はすでに他界されているが、
https://srad.jp/story/15/01/22/0423242/

東のLSIジャパンに対して、西のペンギンソフトみたいなところがある。84-85年頃、
京都のペンギンソフトがペンギンCなるものインタフェース誌で広告出して売り出していた。
それが何であるか長年謎だった。当時武蔵小杉近辺の某LSI開発者に86的C言語を探していた
オッサンがいて、彼に京都まで行ってみれば?と話したことがあったから。

と、そのペンギンCはどうやら6301対応のCコンパイラだったらしい。開発者は小窓次郎氏。
また公知販売の仕掛け人はペンギンの筒井氏。この筒井氏は超有名人。10年の後、
YahooBBのADSL網を推進完成させたSB中興の人。東大工学部→京大医学部卒。

小窓氏のブログでは6301用のCコンパイラのDOS版ソースとバイナリなどが公開されている。要リスペクト。
オリジナルの開発はDECのVAXとBSD。そういう時代だったですなあ。先端エンジニアはDEC使い。みたいな
当時開発言語それ自体を開発するためにVAXを使う。というのは。ちなみにCP/MやPL/MはPDP8。

Cコンパイラ開発顛末記
http://www.techno-web.org/e_techno/1999/11/03/cyyoynyyeeaeouaei/

小窓氏のブログは2011年で止まっている。世代的に70手前くらいか。ちょっと心配。

14 :ナイコンさん:2018/06/08(金) 05:27:30.06 .net
ちなみに、筒井氏が率いていたペンギンソフトは9801用スクリーンエディタであるペンギンエディタを
開発販売したていたことでも知られている。広告出していたからね。俺も知っている。
ファイル名がSEDだったかな。ワードマスターみたいなESCシーケンスエディタに慣れたユーザには
目鱗ものの高速エディタだった。これが後のMIFES,REDなどの原型。というのもペンギンソフト解散時に
エディタの開発者がそれぞれ著作権利ありと継続したのがMIFESとか諸々。らしい。伝聞だからね。

あの84-86年頃の関西は9801移行で名を馳せた会社がたくさん合ったが、人脈の源流は京都ペンギンなのだろうね。
カノープス:神戸 メガソフト:大阪 岩崎技研:京都 京都マイクロコンピュータ:京都

15 :ナイコンさん:2018/06/08(金) 05:53:19.28 .net
PC88のCP/M 2.2のDDT自体は8080のコードで書かれたらしいがZ80の命令を解釈してたなぁ。
パソコンだと8080よりZ80のが使われてたからデジタルリサーチも8080に拘る愚はしないでZ80対応するのが自然でしょ。
NECが自社のPC向けにローカライズしてたのかもしれないけど。

16 :ナイコンさん:2018/06/08(金) 06:16:11.98 .net
>>5
> IXやIYがあまり使われてなさそうなのがコンパイラっぽく無いとも感じる
IX, IYを使う命令は遅いからアセンブラで組む時もあまり使わない

17 :ナイコンさん:2018/06/08(金) 10:26:37.12 .net
IX,IY
ビット命令
裏レジスタ

使うと笑われるZ80の3大機能

18 :ナイコンさん:2018/06/08(金) 11:15:59.55 .net
HLと等価なら使い勝手良かったのにね

19 :ナイコンさん:2018/06/08(金) 11:38:58.71 .net
川鉄のやR800だと使わないほうが遅いかもしれん

20 :ナイコンさん:2018/06/08(金) 12:52:44.71 .net
>>17
適材適所だろ。
インデックスレジスタは、データ構造の作り方で不要に出来る場合が多いけど、使い所はある
裏レジスタも処理を整理していけば要らない場面が多々あるけど、やっぱり欲しい時あるじゃん
そんなこと言ってたら、X1の様なGRAMのアクセス方法だって邪道

21 :ナイコンさん:2018/06/08(金) 19:17:53.43 .net
>>20
だから適所が少なかったって話な
アセンブラでカリカリチューニングするならまだわかるけど当時のコンパイラにそこまで要求するのはものを知らなさすぎ

22 :ナイコンさん:2018/06/08(金) 19:26:48.45 .net
>>13
筒井氏開発のは南極ペンギンC なのね。86用。 6301用のC3POとは別。

23 :ナイコンさん:2018/06/08(金) 19:30:46.77 .net
> IX,IY
> ビット命令
> 裏レジスタ
>
> 使うと笑われるZ80の3大機能

笑ってるのは適所を理解せず脊髄反射してる馬鹿ってことだよなあ。

24 :ナイコンさん:2018/06/09(土) 01:11:34.24 .net
exxで裏レジスタを使って2コア相当のパフォーマンスですよ

25 :ナイコンさん:2018/06/09(土) 18:55:35.97 .net
float a = 0.0;
printf("%f",a);

これでバイナリサイズはいくらになりますか?

26 :ナイコンさん:2018/06/09(土) 19:02:46.39 .net
>>25
知りたきゃ手前で確認しろやカス

27 :ナイコンさん:2018/06/09(土) 19:14:15.01 .net
7KBでした。

28 :ナイコンさん:2018/06/09(土) 22:18:35.34 .net
光栄ソフトは開発言語、マニュアルに書いてなかったっけ?

29 :ナイコンさん:2018/06/09(土) 23:01:44.53 .net
載ってたわ8ビットは
LSI-C/イントロール・クロスCらしい

30 :ナイコンさん:2018/06/10(日) 03:31:33.82 .net
>>27
うそつけ。

31 :ナイコンさん:2018/06/10(日) 12:27:05.34 .net
で、floatとprintfでどれぐらいバイナリは膨れ上がるんだ?

32 :ナイコンさん:2018/06/10(日) 12:29:36.88 .net
というか、mallocはまともに使えるサイズなのか?

33 :ナイコンさん:2018/06/10(日) 13:38:03.38 .net
http://somn9.xyz/4

34 :ナイコンさん:2018/06/10(日) 18:28:43.30 .net
使い物にならない例ばかりだしやがって

35 :ナイコンさん:2018/06/10(日) 20:26:53.11 .net
【またカミカゼ暴走、群馬のスーパー、重傷9人】 放射能が原因だけど、国防上、トップシークレット?
http://rosie.5ch.net/test/read.cgi/liveplus/1528627781/l50

36 :ナイコンさん:2018/06/11(月) 05:51:10.02 .net
>>30
無料公開されたCP/M版のHI-TECH Cでコンパイルすると7168バイトになるね

37 :ナイコンさん:2018/06/11(月) 06:08:10.26 .net
ちなみに下記コードを同じHI-TECH Cでコンパイルしたら384バイトだった
(ただ、hogehogeを出力するだけのコード)

#include <cpm.h>
int main(int argc, char **argv) {
bdos( 9, "hogehoge\r$");
return 0;
}

38 :ナイコンさん:2018/06/11(月) 06:12:33.96 .net
同じく下記コードだと4224バイト

#include <stdio.h>
int main(int argc, char **argv) {
int a = 1234;
printf("%d",a);

return 0;
}

39 :ナイコンさん:2018/06/11(月) 11:37:29.18 .net
LSI C-80は、8080用コンパイラだから、オブジェクトで
IX,IYが使われないのは当たり前。

HI-TECH CはZ-80用コンパイラで、多分コード生成部以外は
他のCPU用と共用と思われるため、過剰とも思えるほど
インデックスレジスタを多用したコードを吐く。

40 :ナイコンさん:2018/06/11(月) 12:00:07.44 .net
現在のLSI C-80はIX使いまくりだから、はっきり8080コードを指定しないと遅くなりそうだ
https://www.lsi-j.co.jp/official/products/02/other/lsic80

41 :ナイコンさん:2018/06/11(月) 15:53:42.16 .net
>>38
ボクのMSXは8KBとしかメモリがありません。

42 :ナイコンさん:2018/06/11(月) 17:22:47.39 .net
39800円のMSX-CはLSI-Cのサブセット。
19800円のα-CはBDS-Cのサブセットとかいう噂らしいけど。
信長ってクロスのLSI-Cなんでそ?
プロの開発で8bitCPUでコンパイルはなかったのかね?

43 :ナイコンさん:2018/06/11(月) 18:13:58.99 .net
標準printfなんて馬鹿みたいにデカいからな

44 :ナイコンさん:2018/06/11(月) 18:17:35.98 .net
コンパイラ使っても結局生成コード確認してたし
(バグとか結構あったから)
BASE80とかの方が生産性高かったなぁ

45 :ナイコンさん:2018/06/11(月) 20:23:34.62 .net
それでもアセンブラでシコるよりC使ったほうが生産性が高かった。

8ビットでもインタプリタが載せられるようなリッチ?なシステムで仕事したかったわw

46 :ナイコンさん:2018/06/11(月) 21:23:13.92 .net
> 現在のLSI C-80はIX使いまくりだから、はっきり8080コードを指定しないと遅くなりそうだ

8080知らない人は面白いこと言うw

47 :ナイコンさん:2018/06/11(月) 22:52:13.05 .net
>>40 のリンクにある tarai 関数を 8080 にある命令をザイログニモニックで
吐く MSX-C 1.2 用に書き換えてコンパイルしてみた。
int
tarai(x, y, z)
int x;
int y;
int z;
{
if (x > y)
return tarai(
tarai(x - 1, y, z),
tarai(y - 1, z, x),
tarai(z - 1, x, y)
);
else
return y;
}

48 :ナイコンさん:2018/06/11(月) 22:53:08.97 .net
MSX.M-80 2.00 11-Jun-18 PAGE 1



; MSX-C ver 1.20p (code generator)

0000' cseg

0000' tarai@:
0000' E5 push hl
0001' D5 push de
0002' C5 push bc
0003' E5 push hl
0004' EB ex de,hl
0005' D1 pop de
0006' CD 0000* call ?CPSHD
0009' D2 0091' jp nc,@0
000C' E5 push hl
000D' 21 0002 ld hl,2
0010' 39 add hl,sp
0011' 71 ld (hl),c
0012' 23 inc hl
0013' 70 ld (hl),b
0014' E1 pop hl
0015' 4D ld c,l
0016' 44 ld b,h
0017' C5 push bc
0018' D5 push de
0019' CD 0000* call ?saut6
001C' D1 pop de
001D' 21 0002 ld hl,2

49 :ナイコンさん:2018/06/11(月) 22:53:39.63 .net
0020' 39 add hl,sp
0021' 4E ld c,(hl)
0022' 23 inc hl
0023' 46 ld b,(hl)
0024' 21 FFFF ld hl,65535
0027' 09 add hl,bc
0028' E5 push hl
0029' 21 0004 ld hl,4
002C' 39 add hl,sp
002D' 71 ld (hl),c
002E' 23 inc hl
002F' 70 ld (hl),b
0030' E1 pop hl
0031' C1 pop bc
0032' E5 push hl
0033' 21 0006 ld hl,6
0036' 39 add hl,sp
0037' 73 ld (hl),e
0038' 23 inc hl
0039' 72 ld (hl),d
003A' E1 pop hl
003B' CD 0000' call tarai@
003E' E5 push hl
003F' 21 0006 ld hl,6
0042' 39 add hl,sp
0043' 4E ld c,(hl)
0044' 23 inc hl
0045' 46 ld b,(hl)
MSX.M-80 2.00 11-Jun-18 PAGE 1-1

50 :ナイコンさん:2018/06/11(月) 22:54:05.87 .net
0046' 21 0002 ld hl,2
0049' 39 add hl,sp
004A' 5E ld e,(hl)
004B' 23 inc hl
004C' 56 ld d,(hl)
004D' D5 push de
004E' CD 0000* call ?laut6
0051' D1 pop de
0052' D5 push de
0053' CD 0000* call ?saut6
0056' D1 pop de
0057' 2B dec hl
0058' E5 push hl
0059' 21 0008 ld hl,8
005C' 39 add hl,sp
005D' 71 ld (hl),c
005E' 23 inc hl
005F' 70 ld (hl),b
0060' E1 pop hl
0061' E5 push hl
0062' 21 0004 ld hl,4
0065' 39 add hl,sp
0066' 73 ld (hl),e
0067' 23 inc hl
0068' 72 ld (hl),d
0069' E1 pop hl
006A' CD 0000' call tarai@
006D' E5 push hl
006E' 21 0004 ld hl,4
0071' 39 add hl,sp

51 :ナイコンさん:2018/06/11(月) 22:54:37.11 .net
0072' 4E ld c,(hl)
0073' 23 inc hl
0074' 46 ld b,(hl)
0075' C5 push bc
0076' 21 0008 ld hl,8
0079' 39 add hl,sp
007A' 5E ld e,(hl)
007B' 23 inc hl
007C' 56 ld d,(hl)
007D' 21 000A ld hl,10
0080' 39 add hl,sp
0081' 4E ld c,(hl)
0082' 23 inc hl
0083' 46 ld b,(hl)
0084' 21 FFFF ld hl,65535
0087' 09 add hl,bc
0088' C1 pop bc
0089' CD 0000' call tarai@
008C' D1 pop de
008D' C1 pop bc
008E' CD 0000' call tarai@
0091' @0:
0091' C1 pop bc
0092' C1 pop bc
0093' C1 pop bc
0094' C9 ret
MSX.M-80 2.00 11-Jun-18 PAGE 1-2

52 :ナイコンさん:2018/06/12(火) 15:56:56.92 .net
IX,IY便利だよ、ポインタ2セット抱えてINC L DEC Lちまちまやるのはただのアホ

53 :ナイコンさん:2018/06/12(火) 18:59:25.98 .net
ケースバイケース
>>52みたいに状況判断ができない奴が一番使えない

54 :ナイコンさん:2018/06/12(火) 19:33:01.87 .net
>>53
どんなケースでポインタ操作でIX、IYが不便になるんですか?

55 :ナイコンさん:2018/06/12(火) 20:33:14.13 .net
インデックスレジスタはでかくて遅いみたいに思うけど、
構造体っぽいデータをランダムアクセスしたい場合なんかは
HL や DE を駆使するより効率的だったな。
シーケンシャルな連続アクセスなら HL, DE レジスタの方がいいだろうけど。

56 :ナイコンさん:2018/06/12(火) 20:43:38.16 .net
>>54
実際にやってみればいろいろわかると思うよ
https://electrelic.com/electrelic/node/474

57 :ナイコンさん:2018/06/12(火) 21:03:30.46 .net
逃げたか。

58 :ナイコンさん:2018/06/12(火) 21:17:24.43 .net
リンク先も読めないバカ?

59 :ナイコンさん:2018/06/12(火) 21:20:20.70 .net
自分の言葉で説明せずに他人に○投げしたら「逃げた」と言われてもしかたないね。
実際逃げてるんだしw

60 :ナイコンさん:2018/06/12(火) 21:59:27.29 .net
とにかくバグを出さずそれなりに早く、そして8bit機なので省メモリなら何でもいいわ
遊びならアセンブラで組めよ。
仕事なら要件通り作れよってなる

61 :ナイコンさん:2018/06/12(火) 21:59:56.70 .net
>>56
Z80の特性理解しないでレジスタの扱いヘタクソなジジイがあれがダメこれがダメ言ってるだけのゴミ記事。

62 :ナイコンさん:2018/06/12(火) 22:10:29.02 .net
ダメ出しなんて馬鹿でもできるからな。
不可能を可能にするノウハウにこそ価値がある。

63 :ナイコンさん:2018/06/12(火) 22:11:54.53 .net
>>59
えっ?
俺がやるより分かりやすく説明してるから貼ってるんだけど
具体例出されたから反論できずに困ってる? w

64 :ナイコンさん:2018/06/12(火) 22:12:40.69 .net
>>61
はいはい w

65 :ナイコンさん:2018/06/12(火) 22:41:15.86 .net
>>63
>ADD IX,BC
>はできても
>ADD IX,HL
>はできないのです。

EX DE,HL
ADD IX,DE
EX DE,HL
とかやり様だしなあ、こんなんで「分かりやすく説明してる」ってアホかw

66 :ナイコンさん:2018/06/12(火) 22:44:59.58 .net
>未定義命令を使わない場合、よく使われたのは
>
>PUSH BC
>POP IX
>とスタックを経由する方法でした。これならHLからIYへの転送等も可能ですが、スタック(メモリ)を経由するのがちょっと気になります。

スタック使うのが気になるなら
LD IX,0
ADD IX,BC
とかするだけだがなあ、自分で提示した方法にケチつけることに何の意味があるんだろう?

67 :ナイコンさん:2018/06/12(火) 22:49:47.21 .net
>素直に書けばこんな感じになるでしょうか。
>
> 1: 0000 C5 PUSH BC
> 2: 0001 DDE5 PUSH IX
> 3: 0003 4F LD C,A
> 4: 0004 0600 LD B,0
> 5: 0006 DD09 ADD IX,BC
> 6: 0008 DD5600 LD D,(IX+0)
> 7: 000B DDE1 POP IX
> 8: 000D C1 POP BC

これはIX使うのが間違ってんだよなあ。
ADD A,L
LD L,A
ADC A,H
SUB L
LD H,A
LD D,(HL)

68 :ナイコンさん:2018/06/12(火) 23:02:23.52 .net
> 実際にやってみればいろいろわかると思うよ

わかってない奴が何偉そうにw

69 :ナイコンさん:2018/06/12(火) 23:08:20.18 .net
> えっ?
> 俺がやるより分かりやすく説明してるから貼ってるんだけど
> 具体例出されたから反論できずに困ってる? w

ワロタw

70 :ナイコンさん:2018/06/12(火) 23:34:26.19 .net
>>63
それを逃げって言うだろ、普通は。

71 :ナイコンさん:2018/06/12(火) 23:35:21.32 .net
>>65-66
> とかやり様だしなあ
> とかするだけだがなあ
そりゃそう言う言い方したらなんでもありありだわな
そう言うのは面倒だし、(当時は)コードサイズが膨れるのも嫌とかあるだろ

>>67
全然違うコードさらしてバカアピールか?

>>68-70
煽ることしかできないバカは黙っとけ

72 :ナイコンさん:2018/06/12(火) 23:42:08.19 .net
判りやすく説明するのが面倒だから他人に丸投げしました(キリッ!
ですね、立派な逃げです。

面倒から逃げるのはよくある事ですけど、逃げは逃げですw

73 :ナイコンさん:2018/06/12(火) 23:54:52.86 .net
具体例出されたら
逃げたー
しか言えなくなってて笑うわ

74 :ナイコンさん:2018/06/13(水) 00:00:15.06 .net
結局自分でコードも書けない素人だったというわけかw

75 :ナイコンさん:2018/06/13(水) 00:04:53.96 .net
>>74
自己紹介乙

76 :ナイコンさん:2018/06/13(水) 00:05:17.42 .net
他人様のページのアドレス貼って具体例と言ってドヤ顔かあ、ご立派なもんだなあ。

77 :ナイコンさん:2018/06/13(水) 00:08:07.45 .net
> 自己紹介乙

てめえが書いたコードも晒さずに何バカ言ってんだかw

78 :ナイコンさん:2018/06/13(水) 00:29:56.38 .net
なるほど。つまりC言語はスタック使いまくりだから使い物にならないのか。

79 :ナイコンさん:2018/06/13(水) 00:31:36.30 .net
8088や8086では簡単に出来ることをZ80では面倒なことをしないといけない
如何に8bit CPUが制限だらけかわかる

8088や8086はスタックアクセスにBPレジスタが用意されていて
スタック上のローカル変数へのアクセスが容易にできる
Z80は高級言語のことはあまり考慮されてないが
8088や8086は高級言語のことも考慮されてる設計

68000ならlink命令など、さらに高級言語が使いやすく出来てる

80 :ナイコンさん:2018/06/13(水) 02:02:14.50 .net
>>78
引数もローカル変数も使わずグローバル変数だけ使えば問題なし

81 :ナイコンさん:2018/06/13(水) 02:38:14.82 .net
>>78
ローカル変数を固定番地に配置すれば良い。関数の入り口でそれらをスタックに退避すれば再帰もできるし実行中のオーバーヘッドも小さい。

82 :ナイコンさん:2018/06/13(水) 02:54:52.19 .net
> 如何に8bit CPUが制限だらけかわかる

6809とか知らない人?

83 :ナイコンさん:2018/06/13(水) 04:37:45.80 .net
>>82
6809は出た時期が遅いからな
8086よりも後発で68000と同時期じゃなかったか?

84 :ナイコンさん:2018/06/13(水) 04:42:15.86 .net
8bit

85 :ナイコンさん:2018/06/13(水) 04:45:00.82 .net
8bit CPUはアドレスが16bitだからアドレッシングモードなどを贅沢にすると
当然、複数の16bitの加算、減算回路が必要になり
結局16bitCPUとトランジスタ数が変わらなくなるんじゃないの?
6809はかなりのトランジスタ数なんじゃないかな

86 :ナイコンさん:2018/06/13(水) 05:04:53.80 .net
ちょっと訂正
× 複数の16bitの加算、減算回路が必要になり
○ 複数の16bitの加算、減算が必要になり

遅くてもいいなら演算回路はどうにでもなるからね
6809のようなアドレッシングモードが高機能な場合、
データの演算そのものよりもアドレス計算の方が計算量が多くなってしまう

87 :ナイコンさん:2018/06/13(水) 05:19:40.18 .net
6809はレジスタ数を極小にしたからアドレッシングを強化できたと言える。

88 :ナイコンさん:2018/06/13(水) 05:25:49.48 .net
これは16bit CPUにも言えることで32bitレジスタが使えるような68000のような高機能な16bit CPUは
単純な32bit CPUと大差ないかまたはより多くのトランジスタ数を必要としたりする
32bitのARMのCortex-M3は3万3000ゲート、MIPSのM4Kは3万5000ゲートと言われてる
ワンチップマイコンでも高機能な16bitCPUは淘汰されて32bitに置き換わってる

89 :ナイコンさん:2018/06/13(水) 06:09:53.45 .net
>>85
そこを上手くこなしたのが6502のアドレス演算
Z80がボケーっとリフレッシュアドレス出してるデコード中に下位アドレス読み込んで次の処理を始めているのでムダがない

90 :ナイコンさん:2018/06/13(水) 06:30:34.32 .net
さらに6800や6809がアドレス計算でバスをボケーっと遊ばせている間に上位アドレス読み込んでそのまま試しに使ってみるのでインデクスレジスタの上位バイトも要らなくなって速い安い美味いCPUになっている

91 :ナイコンさん:2018/06/13(水) 06:40:20.26 .net
>>76-77
「逃げたー」の次は「他人様のー」かよ w
他人のコードだろうが具体例には違いないだろ、バカすぎるわ
色々おかしいとしても具体的なコードで反論してきた>>65-67の方が100倍マシだよ

92 :ナイコンさん:2018/06/13(水) 06:54:00.92 .net
>>79
> 8088や8086はスタックアクセスにBPレジスタが用意
> 68000ならlink命令
両方とも最適化が進んで使われなくなったけどねw
>>82も書いてるけどレジスタの問題よりアドレッシングモードの問題の方が大きい

93 :ナイコンさん:2018/06/13(水) 07:20:19.05 .net
>>91
> 色々おかしいとしても

具体的に指摘できないけどケチ付けたいのは解った。

94 :ナイコンさん:2018/06/13(水) 07:36:32.91 .net
>>93
>>71

95 :ナイコンさん:2018/06/13(水) 11:28:35.03 .net
IX、IY使って一番いいことはIX+dの'd'のところを構造体名で書けること
高速化は動くものができてから好きなだけやればいい
デバッガどころか文字出力もない環境でよくゲームなんか作ったもんだと今更ながら呆れる

96 :ナイコンさん:2018/06/13(水) 12:08:06.34 .net
>>94
「全然違うコード」ってトンチンカンな主張繰り返したいの??

97 :ナイコンさん:2018/06/13(水) 12:22:50.89 .net
>>96
HL使ったコードでどやられてもね
しかもHL壊してるし

98 :ナイコンさん:2018/06/13(水) 18:09:48.24 .net
「これはIX使うのが間違ってんだよなあ」の意味も理解できないし壊したくないレジスタにどうすればいいかもわからん素人さんかよ。
想像を遥かに超えた馬鹿だなw

99 :ナイコンさん:2018/06/13(水) 18:39:17.89 .net
LD D, (IX + A) ができないって話に IX 使うのが間違ってるとか前提変えてどや顔かよ w
しかも命令の代替の話だから D 以外を壊さないのは常識

100 :ナイコンさん:2018/06/13(水) 18:53:31.69 .net
俺は頭悪いしモノを知らないからMレジスタは知ってるがHLレジスタは知らない。

総レス数 1001
258 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200