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

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

アセンブラが買えずハンドアセンブルした人の数→

1 :名無しさん@R800:02/01/10 09:19.net
ジャンプ命令でアドレスを手計算したよね?

C9

23 :ナイコンさん:02/01/10 23:03.net
なんか「キム少年のマシン語会話講座」(←間違ってるかも)みたいになってきたな(藁

24 :ナイコンさん:02/01/10 23:14.net
アセンブラ欲しかったなぁ・・・。< M6800猿

25 :ナイコンさん:02/01/10 23:28.net
CD5055

26 :ナイコンさん:02/01/10 23:39.net
CALL-151

27 :ナイコンさん:02/01/11 00:20.net
JR (-2-27)

28 : ◆xK91AxII :02/01/11 01:40.net
>>10
昔のIPLは短かったし、何度も入力させられていたから、みんなやっていたとか。
そういう旨のことを、ウチの助教授がほざいていました。

29 :ナイコンさん:02/01/11 02:12.net
>>28
今時のマシンの起動の方が遅い鴨

30 :ナイコンさん:02/01/11 02:33.net
MZ-80B vs Win2k 起動時間対決とかやってみたら面白そう。スレ違いsage

31 : ◆MZ80K.vA :02/01/11 10:38.net
>>28
学校の片隅に転がってました。
さすがに授業でやったのは、穿孔テープ、穿孔カード、
マークシートカードだけですね。
マークシートカードは他の授業中に机の上でプログラムが
入力できるので重宝しました。

32 :ナイコンさん:02/01/11 10:54.net
C3 01 00

33 :ナイコンさん:02/01/11 17:53.net
初代88でハンドアセンブル。
大して知識ないのに、CMDなどの未使用BASIC命令を使おうとして、
実行>暴走>自動リセット
を繰り返してた日々が懐かしい。

34 :ナイコンさん:02/01/11 18:10.net
再ロードはカセットテープから?

35 :ナイコンさん:02/01/11 22:19.net
文房具屋でコーディング用紙って売ってたよね。
アセンブラ用とか、フォートラン用とか。

36 :ナイコンさん:02/01/12 00:27.net
>>35
なつかしい!
漏れは、Campusノートに線を引いて書いていたYO!

37 :33:02/01/12 00:40.net
>>34
CMDやISETをPRINT命令やLOAD命令にしただけだったので、
最初は、手入力オンリー
ROM-BASICマンセー(T_T)

38 :生猫:02/01/12 02:44.net
X1TURBOのROMバイオスは手品のようなコードがちりばめられており、結構勉強になりました。

39 :ナイコンさん:02/01/12 03:25.net
8801のN88BASICのROMの、スタック馬鹿一代には参った。

40 :ナイコンさん:02/01/12 03:35.net
ふと、こんなのを思い出しました。
関係のないレジスタを壊さずに HL=HL+A をやりたい時、

PUSH BC
LD C,A
LD B,0
ADD HL,BC
POP BC

これだと6バイト、

ADD A,L
LD L,A
ADC A,H
SUB L
LD H,A

これだと5バイトでした。
後半がとても斬新でした。

41 :ナイコンさん:02/01/12 03:53.net
>>40
おお、しかも20ステートだ。

42 :ナイコンさん:02/01/12 04:20.net
>>40
絶妙な差し手で決まる7手詰めの詰め将棋のよう。
感動しました。前半の方は僕もよく書いたです。
無難というか、ADD HL,BCの用途目的のまんまっすね。

43 :ナイコンさん:02/01/12 04:30.net
漏れも、懐かしくて思い出したよ。
5ビットデータのMSB2ビットだけ左にスライドする必要があったとき

LD C,A
AND 00011000b
RLCA
LD B,A
LD A,C
AND 00000111b
OR B

が、

LD B,A
AND 00011000b
ADD A,B

で実現できることに気づいたとき震えたね。
我が厨房ハンドアセンブル時代。

44 :ナイコンさん:02/01/12 22:46.net
ハンドアセンブル…
レジスタの遣り繰り。
1バイトを削る努力。
新ルーチンの発明。
コード表とにらめっこ。
ビット操作に明け暮れる日々…
嗚呼!少年の日の無邪気さよ!
あの集中力をもう一度!ううっ…(涙

45 :ナイコンさん:02/01/13 06:51.net
LD A,0をXOR Aとするのは基本でしたけど、
たまにSUB Aって書く人いませんでした?

あと、CP 0に相当するものが、OR A派と、
AND A派に分かれてましたよね。

46 :ナイコンさん:02/01/13 09:34.net
>45
それ使っていましたが、sub a,aですよん。cp 0はor aかな。
実際よくハンドアセンブルしていたのはポケコン。
Z80はアセンブラ。

47 :ナイコンさん:02/01/13 09:37.net
あ、違ったかな。subはa無しで、sbcがa有りだったかなあ。
間違っていたらスマソ。

48 :45:02/01/13 10:04.net
>>47
ADD,ADC,SBCはHLレジスタが対象の場合があるからAつきで、
SUB,AND,OR,XORはA専用だったからAなしだったんですよね。
ちなみに自分の場合は、XOR(引き算をしたというフラグが
立たないため)とOR(ANDより名前が短い)だったのですが…。

SUB Aを使っていた理由は何でしょう?

49 :ナイコンさん:02/01/13 10:27.net
Carry→A (00, FF) に、 sbc a,a をよく使ったね。

50 :ナイコンさん:02/01/13 12:50.net
>>49
それは今でも使う

51 :生猫:02/01/13 13:24.net
みなさん、PUSH POP は使うほう?

52 :ナイコンさん:02/01/13 13:40.net
>>51
おれは使ってる…。もうメモリはいっぱい有るし、Z80速くなったし(涙

53 :ナイコンさん:02/01/13 19:11.net
ex hl,bc するのに、push, pop使って

push bc
ex (sp),hl
pop bc

とかやってた。

54 :ナイコンさん:02/01/13 19:12.net
>48
なんとなくかな。ポケコンにXORが無かったからかな。
なぜかSUBのほうだった。
今もZ80使っているけど、最近はCのほうが多い。

55 :45:02/01/13 19:19.net
あぁ…なるほど、他のCPUの影響があったんですね。
そういえば、6502なんかもSUB(SBCだったかな?)
を使うみたいだったから、そのへんの影響を受けてる
人もいたんでしょうね。
しかし今もZ80使ってるのってすごいですねー。

56 :ナイコンさん:02/01/13 19:32.net
>55
aki-80とかです。まあたまにですけど。

57 :ナイコンさん:02/01/13 21:09.net
>>55
6502 はレジスタ同士の演算なんかできないので LDA #0 とか素直に書きますよ。
65C02 なんかだと命令が色々拡張されてて ACC をクリアする CLA という命令とか
もあって便利でしたね。

58 :ナイコンさん:02/01/14 00:11.net
>>44
禿げ同。本当、今では考えられないくらいの根性あったよな(w

59 :ナイコンさん:02/01/14 01:31.net
>23
色々勉強になったね。

ちなみに、知らん人のために簡単に説明すると
A=I(一人称)
B=YOU(二人称)

CP B  「ごきげんいかが?」 (私とあなたの状態を比較している)

応用で
CP (HL) 「ここはどこ?」
AND A   「私は誰?」

LD A,0 おなかすいた。
XOR A  はらへった!(フラグで強調)
SUB A ・・・は何だったっけ?

PUSH AF それはともかく(おいといて)

60 :ナイコンさん:02/01/14 01:40.net
わかりやすいっすね。
厨房の俺にはありがたいっす。

61 :懐かしい:02/01/14 01:47.net
Z80シリーズはホントにはまったなあ。

あの頃はハンドアセンブルすんのに、ボロボロになったコード表を
持ってた記憶がある。
あとNECのPC-80/88シリーズのCPUって、必ず「Z80A相当」
って書いてあったのが、あの頃は意味わかんなくて不思議だった。
単にライセンス生産してて、自社製チップを使ってたんだよなー。
「mPD780C-1」 今でも覚えてる(笑)

んで88MRから4/8MHz切り替えになって、V1/V2モードで
混乱して。
あと隠し命令探すのも流行って、雑誌で特集組んだりしてたよな。
高速グラフィック画面消去プログラムのコードが、クロック数の
少ないPUSH命令のかたまりと知った時には愕然としたし(笑)

でも、あの頃のユーザーが一番パワーあったよな。
だって速度を求めるのに、実行クロック数を計算しながら組んだり
メモリを節約する為に、XOR Aみたいに同処理を短いコードで
組んでみたり。

Windows時代の今の若い人たちはホントにうらやましい。
5インチFDD2台積んだNECのPC-8031Wなんか本体の
PC-8001よりデカくて、30万以上してたんだぜ(笑)

62 :ナイコンさん:02/01/14 01:53.net
>61
IXをHとLにわけたり、しかも88やX1で組むとRAMだから
自己書き換えでIX+Aとかで前後128バイトのMAP検索とかもできちゃう。
今でも仕事でZ80使うけどROMだからなんも遊べなひ・・・。

63 :ナイコンさん:02/01/14 01:55.net
>>61
ライセンス生産じゃないよ。マスクを勝手にピーコして勝手に生産。
だから互換じゃなくて相当。どうせ書くならμPDにして。

64 :ナイコンさん:02/01/14 01:55.net
>>61
μPD780Cは、正式なライセンス生産じゃなかったと思う。
当時の正式なセカンドソースは、日本ではシャープだけだったかな?
μPD780Cだと、NMIの処理か何かがちょっと違うとかあったと思う。
実用上は全然問題ありませんでしたがね。
で、そういう部分が問題にならないように、「相当」とキチンと
書いてたんだと思います。

65 :ナイコンさん:02/01/14 01:57.net
今時のWinプログラマだけど、SSEやMMXやキャッシュ効率やストールで悩んでる
投機実行って言っても宣伝ほどの実力はないからアセンブラは不滅

66 :61:02/01/14 01:58.net
隠しコマンドで思い出したけど、NEC製チップってさ、
裏レジスタあったよね?
一度に全てのレジスタの交換しか出来なかったけど、レジスタの
量が倍に増えたので嬉しかった。

問題はプログラムがPC-80/88専用になる事だけど、
あの頃は機種専用プログラムが当たり前だったし。
だってアセンブラだから(笑)

67 :ナイコンさん:02/01/14 02:00.net
>>66
Z80の元々の機能ですね。
EXXでBC,DE,HLのそれぞれの裏レジスタが使えた。
EX AF,AF'でAFの裏ね。

68 :ナイコンさん:02/01/14 02:00.net
そういえば今アセンブラの勉強できる本ってあるのかな。
アマゾンで検索してもほとんどが在庫切れ。

69 :ナイコンさん:02/01/14 02:02.net
>>64
あと東芝。

70 :61:02/01/14 02:03.net
ありゃ! すごい突っ込みが。 失礼しました(笑)
正式じゃなかったのか。 たしかに「相当」だったよね。
「μ」って機種依存じゃないのかって思ってさ。 スマソ。

しかしNECはVシリーズチップといい、そんな事ばっかり
やってんのか(笑)
俺は結局286からはEPSON派になったが。

71 :ナイコンさん:02/01/14 02:10.net
>68
Z80?
686?
Z80ならエミュのソース見ながら解説ページで勉強、とか。

72 :ナイコンさん:02/01/14 02:15.net
アスキーの「はじめて読む〜」シリーズはまだ売ってるよ。

73 :64:02/01/14 02:38.net
>>69
東芝はだいぶ後になってからのライセンスだったんですよね。
MSX2あたりの時代だったような。
だからパソピアなんかもNECのμPD780Cだったはずですよ。

74 :生猫:02/01/14 06:38.net
>67
裏レジは非常に使うのが難しかったですね。
よほどの事がないかぎり使いませんでした。

75 :ナイコンさん:02/01/14 06:54.net
BASICのREM文でアセンブラ書いてなかった?
俺はずーっとそれだったよ。P6で。

当時はC言語のソースに憧れてBASICのREM文に意味泣くmain()
とか書いて一人悦に入っていたな(w

76 :ナイコンさん:02/01/14 08:23.net
>>74
確かに難しい…っていうか、それほど利用するチャンスが
ありませんでしたね。IXやIYのほうが使い道はありました。
裏レジスタは、元々は割り込み処理のために存在していた、
とも言われてましたが、そういう例はあまりなかったような…。

77 :ナイコンさん:02/01/14 09:50.net
PC8801用のCP/Mは、糞でIX,IYが使えなかったような記憶がある。

78 :ナイコンさん:02/01/14 10:13.net
>>77
システムコールの前に PUSH IX; PUSH IY
システムコールの後に POP IY; POP IX
というふうにやってもだめだったの?

79 :ナイコンさん:02/01/14 10:48.net
昔はZ80の命令表を暗記していて「脳内アセンブル」なんてことが
出来る人が居ましたナア…。
さすがに相対ジャンプ計算まではやってなかったみたいだけど。

自分が初めて使ったアセンブラはMSX用のROMカセットでした。
Coralという会社から出ていた。と思う。

80 :ナイコンさん:02/01/14 11:16.net
>79
当時は直接16進でうちこんでいく人は結構いたよ。
ジャンプも自動的に頭の中で変換されるらしい。
ハードやってる人だと自然にそうなっちゃうみたい。
でも88でモニタに直接16進でダカダカ打ってくのを見たときにはちょっとひいた。

81 :ナイコンさん:02/01/14 11:22.net
>76
サブに飛ばすときに、PUSHPOPするよりもとりあえず裏がえしとく
みたいな使い方はシテタと思う。
Cの変数みたいだ。ローカルな。

82 :ナイコンさん:02/01/14 11:22.net
裏レジは良く使った。やっぱ割り込み処理。
組み込み用途ばかりだったから、たまたまそうなだけだと思うが。

83 :爺1号:02/01/14 11:23.net
>>79
Z80が出る前の8080時代でしたが,脳内アセンブルしてました.
16進でなくて8進で覚えるのがミソ.

84 :ナイコンさん:02/01/14 16:26.net
>>77
PC8801のCP/Mって、ASM.COMかDDT.COMの仕様と勘違いしてない?

85 :ナイコンさん:02/01/14 16:37.net
BIOSが勝手にIXやIYを使って壊すから、とか、
割り込み処理ルーチンがそういうことする、とか。
MSAだったらやりかねないかも…。

86 :ナイコンさん:02/01/14 17:19.net
>>76
えー、裏レジ使わないでZ80の最適化は語れないよー。
レジスタの割り当ては、もう細心の注意を払ってさぁ・・・
それでも10%の高速化の為にルーチンの80%を書き
なおすなんて事はよくあったよ。今考えるとアホくさい
けど、当時はそれが楽しかったりしたんだ。

87 :ナイコンさん:02/01/14 17:57.net
>>79
16進ダンプ見ながら、脳内逆アセンブルする人も
結構いたと思う。

88 :ナイコンさん:02/01/14 18:27.net
>>75
アセンブラと関係ないんだけど、
FMのKコンパイラって、ソースをBASICの注釈で書くようになってたね。
元々強力なフルスクリーンエディタ(?)をROMで持ってるんだから、
それを使おうというわけで。うまい方法だと思った。

同じ方式のアセンブラとかあったのかな。

89 :ナイコンさん:02/01/14 18:41.net
FFシリーズの初期メインプログラマだったナーシャ・ジベリは、
完璧脳内アセンブルができる人だったらしい
彼の開発環境にはプリンタはなく(バグが出ないから)
さらに命令クロックも考慮したコーディングをしていたらしい
なにやら、どのルーチンに分岐しても、それを処理する
クロック数が常に同じになるように作られていたらしい
今はカルフォルニアでレストランを経営しているらしい

90 :ナイコンさん:02/01/14 19:07.net
>>89
恐ろしく懐かしい名前が。
聖剣2...。

91 :ore:02/01/14 19:40.net
>>89
仕事で彼のコードを見せてもらったことがあります。FCです。
adxとせずinxを並べたルーチンを呼んでるところとかあったな。

>今はカルフォルニアでレストランを経営しているらしい
いいことを聞きました。

92 :ナイコンさん:02/01/14 21:08.net
ハンドアセンブルのおかげで、16進を逆方向に言えるようになった人は
多いと思う。

93 :ナイコンさん:02/01/14 21:11.net
>>86
脳内アセンブルで裏レジ使って、混乱して吹っ飛ばしたことも、しばしば。

CPUクロックの遅い時代って、ほんと最適化が必要でしたね。
「お、こりゃ便利だ」とか思ってIX,IY使ったら、激遅で使い物にならなかった
なぁ...
Z80の裏命令を初めて知った時も、試しに使ってみたら、吐くほど遅かったし。

94 :ナイコンさん:02/01/14 21:22.net
>>92
16進逆順とはちょっと違いますが、ANK文字の
アスキーコードは、今でも即座に16進数で言えます。
もう、何の役にも立ちませんが…ね(藁

95 :ナイコンさん:02/01/14 22:11.net
>>88
>同じ方式のアセンブラとかあったのかな。

富士通純正のアブソリュートアセンブラが同じ方式だったよ。

96 :ナイコンさん:02/01/14 22:19.net
>>93
昔、IX・IYの利用価値について、知人と言い争ったことがあった。
でも、絶対使わないと逝った自分も、最終的には使った。

頻出する固定データが4バイト以下のプログラムなら、
LD A,(nn)を使うより、LD A,IXHなどを使うほうが早い。
欠点は、アセンブラが対応していないので・・・

97 :ナイコンさん:02/01/14 22:52.net
BASICMasterJrに6単位TTYを繋いでハンドアセンブルでドライバを
作ったことがある。なかなか動かなかったが逆アセンブラは作って
いたのでそいつで逆アセンブルしたらすぐバグが見つかって動くよ
うになった。なんで逆アセンブルすることにすぐに気がつかなかっ
たのだろうか。

98 :ナイコンさん:02/01/14 22:54.net
Cのスタックフレームや構造体のアクセスには IX, IY レジスタって
便利なんだけどね。ハンドアセンブルじゃそんなコード書かんしな。

99 :ナイコンさん:02/01/14 22:55.net
>>96
オレはインデクスレジスタが2本のCPU以外ではゲームを作る気にならんかった
ふつう、アセンブラでも敵キャラを構造体にして持つよね

100 :ナイコンさん:02/01/14 23:02.net
Z80のインデクスレジスタのオフセットって-128〜127だけど、
負のオフセットって意味あったのかな?

101 :ナイコンさん:02/01/14 23:02.net
68系のニーモニックであこがれていたのが SEX
別スレにもこの話題があったか。

で、

100を踏んでみる

102 :101:02/01/14 23:05.net
100 とられてしまた... 今日は嫁とSEXして寝る。
最近アレなので、潤滑ゼリー使用。

103 :ナイコンさん:02/01/14 23:08.net
>>99
だから98のようにスタックフレームとか

104 :ナイコンさん:02/01/14 23:09.net
すまん、99じゃなく100だった
俺は嫁がいないから自分で抜いて寝る

105 :101:02/01/14 23:46.net
嫁に拒否されてすごすごと戻ってきました。

>>77
"8801用"っていうCP/Mはありましたか? 8801の8001部分を
使っていたのではなかったでしたっけ。

>>85
割り込みで壊れるのであれば、77の説明が付くけどね。
MSAって当時も、「あれは使わないほうがいい」って言われてた
し、いまだに恨みに近い感情を持っている人が多いようですね。

106 :96:02/01/15 00:05.net
>>99
そういえば、彼はバリバリゲームを作っていて、
漏れはエミュ作ったりFDプロテ外したり、ゲームは作ってなかった。
ゲームならインデックスの利用価値はありますね。

107 :ナイコンさん:02/01/15 00:18.net
>>105
>割り込みで壊れるのであれば、77の説明が付くけどね。
>MSAって当時も、「あれは使わないほうがいい」って言われてた

MSAなら後から出してたTurboPascalは動いたのかな?
ま、当時CP/MでZ80のコードって極一部だったけどね。

108 :HD64180:02/01/15 01:15.net
隠しコマンドマンセー

109 :77じゃないけど:02/01/15 01:23.net
"8801用"っていうCP/Mはありましたか?

あったよ。

110 :生猫:02/01/15 01:40.net
アセンブラは持ってましたが、というかICEを使って結構環境は良かったです。
ただ外回りでロムライターしかない場合は、泣く泣くハンドアセンブルしてましたが。

111 :ナイコンさん:02/01/16 00:08.net
その昔、TKー85をZ80書籍片手に入力しようとしたが、
付属のマニュアルはインテルニーモニックで解説。
厨房だった漏れは、Z80のニーモニックを脇に書き込んで
ROM内基本ルーチンの動作を辿ったことがあった。なつかしい

112 :ナイコンさん:02/01/16 01:45.net
8080の後継として8085を出すような会社が21世紀になっても栄えているんだから不思議

113 :み山:02/01/16 21:45.net
懐かしい〜。
一旦コードを書いたあと、ステートを減らす方法を考えるのが楽しかったなぁ…。
おかげで「Z80秘伝の書」ボロボロ(笑)。

114 :ナイコンさん:02/01/17 17:23.net
>>112
やっぱ互換性が重要ってことよ。
パソコン本体だって同じだったよね。

115 :ナイコンさん:02/01/18 01:03.net
BASICの遅さにイラついてハンドアセンブルで機械語の世界へ。
しばらくするとハンドアセンブルが面倒でBASICでアセンブラ作った。
更にしばらくするとBASICのアセンブラが遅くてイラついてアセンブリでアセンブラ作った。
若かーたよね(笑

116 :み山:02/01/18 20:50.net
私も逆アセンブラならBASICで作りましたねー。
中途半端で出来は悪かったですが、それでも無いよりマシでした(笑)。

117 :ナイコンさん:02/01/20 04:35.net
PCとかZ80とか68Kじゃなくて、マイコン組み込みで
現役でアセンブラコリコリ書いてるんですけど...。

つい最近まで4ビットCPU使ってたyo!

118 :ナイコンさん:02/01/20 08:57.net
>>115-116
なんか
エキサイト翻訳で英→日→英するネタを思い出した。


119 :ナイコンさん:02/01/20 10:55.net
>>112
8085は火星にも逝ったしねー

120 :ナイコンさん:02/01/21 17:39.net
>>119
COSMACなんか外宇宙まで逝ったぞ

121 :ナイコンさん:02/01/21 18:49.net
>>119
御供でPowerPCも行ってる(逆かw

122 :ナイコンさん:02/01/22 12:57.net
お前らにJavaをやる資格はな〜い
ハンドアセンブルから出直してこ〜い
と思わなかったりする今日この頃。


123 :ナイコンさん:02/01/22 13:52.net
メモリマップから設計していた頃の考え方が抜けなくて
メモリが細切れになってるんじゃないかと心配しながらプログラム組んでます

総レス数 555
117 KB
新着レスの表示

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