Message Log 01 Return to Parent Menu 
Last Updated by 07/01/05(Fri)  

 
Tips
 

 メッセージボード開設からの 2 ヶ月間のログです。
 この頃の主な話題は、現在常連となっている方々の自己紹介や、その後も話題となっていくグラフィックプレーンへの一点描画、割り込み処理、おすすめの Assembly Language の参考文献、インデックスレジスタ 等です。


 
Message log list
 

 アセンブラ掲示板に書き込まれた過去のログです。


Message log 44 (05/01/0506/30/05)
Message log 43 (01/01/0504/30/05)
Message log 42 (01/01/0412/31/04)
Message log 41 (11/01/0312/31/03)
Message log 40 (10/01/0310/31/03)
Message log 39 (04/01/0309/30/03)
Message log 38 (12/01/0203/31/03)
Message log 37 (08/01/0211/30/02)
Message log 36 (05/01/0207/31/02)
Message log 35 (03/01/0204/30/02)
Message log 34 (01/01/0202/28/02)
Message log 33 (09/15/0112/31/01)
Message log 32 (08/01/0109/14/01)
Message log 31 (05/26/0107/31/01)
Message log 30 (05/15/0105/25/01)
Message log 29 (05/01/0105/14/01)
Message log 28 (02/01/0104/30/01)
Message log 27 (01/01/0101/31/01)
Message log 26 (10/01/0012/31/00)
Message log 25 (07/21/0009/30/00)
Message log 24 (06/16/0007/20/00)
Message log 23 (05/20/0006/15/00)
Message log 22 (05/01/0005/19/00)
Message log 21 (04/01/0004/30/00)
Message log 20 (02/01/0003/31/00)
Message log 19 (01/01/0001/31/00)
Message log 18 (11/01/9912/31/99)
Message log 17 (09/05/9910/31/99)
Message log 16 (08/21/9909/04/99)
Message log 15 (07/01/9908/20/99)
Message log 14 (04/01/9906/30/99)
Message log 13 (02/01/9903/31/99)
Message log 12 (11/01/9801/31/99)
Message log 11 (09/21/9810/31/98)
Message log 10 (08/01/9809/20/98)
Message log 09 (07/01/9807/31/98)
Message log 08 (05/04/9806/30/98)
Message log 07 (04/08/9805/03/98)
Message log 06 (02/23/9804/07/98)
Message log 05 (01/01/9802/22/98)
Message log 04 (11/09/9712/31/97)
Message log 03 (10/17/9711/08/97)
Message log 02 (08/22/9710/16/97)
Message log 01 (06/20/9708/21/97)


 
Message log 06/20/9708/21/97
 




TANTOS  [97/08/21 Thu 20:50:22]  [203.141.128.4]
インデックスとベースレシスタについて質問します

 ども、お久しぶりでございます。

 早速ですが、タイトルにもあるように、インデックス(SI,DI)
と、ベースレジスタ(BX)の違いについて、具体的に知りたいと思
いメールしました。

 私は今、あるドライバの移植をMASMでしているのですが、元の
CPUが特殊で、8086系で言うところのインデックスに当たるレジス
タが4つあり、非常に手を焼いております。

 新たにワークレジスタのような物を設定してみたり、テーブルを
新設したりと、とても今までアセンブラを扱ったことのない、加え
てプログラムの実務経験のない人間に務まる作業とは思えません。

 まあ、それはそれとしてですね。

 いろんなアセンブラに関する書籍や8086系の本を読んではみるの
ですが、DI,SIとBXの具体的な機能の違いや使い分けの例等が説明さ
れたものが見つからず、納得がいきません。現在の作業においては、
流れの良いように、論理的に破綻しないようにという点で使い分けて
ます。しかし、何だか納得がいきません。

 どなたか、私を導いて下さいまし。
 
 

やっすん  [97/08/21 Thu 08:54:11]  [202.18.144.70]

Nebulaさんご指摘ありがとうございます。
あまり、チェックせずに書き込んだことをお詫び申し上げます。
テキストVRAMのアドレスはNebulaさんのいうとおり、私の間違いです。
ごめんなさい。

Nebula  [97/08/21 Thu 01:32:01]  [202.217.0.142]

こんにちは。
お話を割り込んで申し訳ないのです。
えっと、やっすんさんの式は、判る人には判るのですが、
仕組みを知らない人には、ちょっとキツイかもしれないです。
ちょっとかみ砕いて説明しますね。

まず、98のグラフィック画面って、横に 640 ありますよね?
これを 1 byteずつに区切ります。そうすると、横 1 ライン分は 80 byte になりますよね。
仮に、640 * 400 の画素がある場合、グラフィックプレーン一枚あたり 80 byte * 400 = 32000 byte
って計算になります(実際には、もう少し余分にありますが使われていません)
# いまの98だと640 * 480 なのかな?

で、例えば、0A800H:0000H・・・これは、青のグラフィックプレーンの一番左上のアドレスです。
ここから 80 byte の領域すべてに対して、仮に 0FFHという値を書き込むとします。
すると、画面の一番上に、左端から右端までの青ラインが出来上がることになります。
それを、縦のドット数、つまり 400 (480?) 回繰り返せば、真っ青な画面の出来上がりです。
もちろん、0FFH以外の値を書き込むことも出来ますし、00Hを書き込めば画面の消去も出来ます。

だから、やっすんさんの式で言うと、変数 X に対しては、8 の倍数、
変数 Y に対しては、0から400(480?)までの数が入ることになります。
このルールで値を代入すれば、キチンとアドレスが算出出来ますので。
これで、大丈夫でしょうか?>初心者のかたがた

ところで、テキストのVRAMって 0A000H:0000Hからだった記憶があるのですが>やっすんさん
# やっぱ、最近の 98 の仕様なのでしょうか?
コン  [97/08/21 Thu 01:29:22]  [202.208.35.81]

はじめまして。
こん といいます。
どなたか、gnuのアセンブラ(intel形式でなくてAT&T形式)の擬似命令に詳しい方、いらっしゃらないでしょうか
日本語の資料がなかなか見つからないのです。
どなたか、助けてくらはい。
seichan  [97/08/20 Wed 23:07:41]  [202.218.29.132]
Technical Assembler

 やっすんさん、VRAMについての書き込み有り難うご
ざいます

 >(X/8)+(Y*80)で対応しています。

とありますが、X、Yには16進数が入るのでしょうか?
10進数でも良いのでしょうか。
もしX座標300、Y座標200のVRAMアドレスを求めるとしたら、(300/8)+(200*80)でよろしいんですか?
DFK  [97/08/19 Tue 17:32:46]  [202.218.29.136]

初めまして、DFKです。
私は、コンピュータの学校でASMを半年間
勉強しましたが、未だによく解らない。
seichanと同じやな!
やっすん  [97/08/19 Tue 08:57:37]  [202.18.144.70]

説明不足ですいません、
VRAMとはビデオRAMのことで、画面を表示するハードウェアが一定時間ごとに、画面をVRAMの内容に書き換えます。
 テキストVRAMというのもあって、それは0A800H:0000Hから始まっているのですが、そこにアスキー文字を書くと画面に文字が出ます。必要ならこれもお教えします。(テキストエディタ等を作るときは必須のテクニックです)

ところでVRAMの座標は(X/8)+Y*80で対応しています。
1バイトのデータで8ドット分をあらわします。
また、色は光の三原色の組み合わせで、表現されますので、たとえば、赤プレーンと青プレーンに書き込めば紫色で表示されます。
 ハードウェア直接の操作ですがきっと勉強になると思いますよ。がんばって!

seichan  [97/08/18 Mon 23:36:26]  [202.218.29.149]
Technical Assembler

 やっすんさん、ご教授有り難うございます。
VRAM何ですが、ディスプレイの座標にどの
ように、対応しているのですか?


seichan  [97/08/18 Mon 23:34:49]  [202.218.29.149]
たいとる


seichan  [97/08/18 Mon 23:34:10]  [202.218.29.149]

  やっすんさん、点の打ち方ご教授有り難うござ
 います。VRAMですが、VRAMのアドレスは、どの
 ように、ディスプレイの座標に対応しているのでし
 ょうか?

seichan  [97/08/18 Mon 23:31:29]  [202.218.29.149]
Technical Assembler

  皆さま書き込みありがとうございます。
 管理者のseichanでございます。かねて
 よりページ上で紹介していたメーリング
 リストですが僕の理解不足のためご迷
 惑をおかけしていましたが、正常に作動
 できることが確認できましたので、説明を
 書き直してアップします。(2,3日後にな
 りますが)
  
やっすん  [97/08/18 Mon 08:59:34]  [202.18.144.70]

0A800H,0B000H,0B800H,0E000Hはセグメントレジスタの値です。(数値も間違ってました)
やっすん  [97/08/18 Mon 08:52:08]  [202.18.144.70]

皆さんおひさしぶりです。
ところで、画面に点を表示したいそうですが、私のお勧めの本はPC−9801スーパーテクニックという本です。(多分アスキー出版)
 アセンブラでプログラムをするのに非常に役に立ちます。
 ところで、seichanさんは点を表示してラインアートをしたいそうですが、手順としては、INT 18H(AH=40H?だったとおもう...)を使ってグラフィックを初期化します。
 ここでINT 18Hを使わないで、GDCに直接コマンドを
投げる方法もありますが、VSYNCのタイミングでコマンドを投げないといけない等、面倒な処理があるので
INT 18Hを使うのが一般的です。
 次にINT 18H(AH=42H,CH=0C0H?嘘かもしれない...)を使って、640*400ラインモードにします。
 これだけでは8色モードなので、16色モードにしなくてはならないのですが、どこのI/OポートにOUTするのか忘れてしまいました。調べておきます。
 この後にいよいよ点を打つのですが、方法としては、5つほどあります。
1.VRAMに直接書き込む
2.GRCG経由でVRAMに書き込む
3.INT 18Hを使って点を打つ
4.GDCを使って画面に点をうつ
5.GLIOを使って点を打つ(別にGLIOの初期化がいる)
たぶん、簡単なのは1だと思います。(でもスピードが...)
0A800H(青プレーン),0B00H(赤プレーン),0B800(緑プレーン),0E000H(拡張プレーン:16色モード時)にデータを書き込んで見てください。書き込んだビットパターンが表示されると思います。
 ラインアートの場合は、点描画で線を書くと遅いので、GDC、INT 18H,GLIOの線描画のファンクションを使用することをお勧めします。(今のマシンの性能なら気にしなくていいかも知れないですけど...)

ねれいど  [97/08/16 Sat 01:35:14]  [210.157.157.15]
MASM Ver6.0

98のMSーDOS環境で最新なのは
MASM ver6.0ですか?<教えてください
そうでしたら購入したいんですけど売って
ませんよね〜(泣)。
こういう場合は店で注文するんですか?
こういう体験をした方、教えてくださいませ。


hame  [97/08/15 Fri 21:05:06]  [202.215.254.147]

日立の大型汎用機Mシリーズのアセンブラ
使っている方いませんか?

Nebula  [97/08/12 Tue 07:12:29]  [202.217.1.84]

はじめまして。
98やATで、グラフィックをいじる場合、
一番、簡単なのはBIOSを呼び出すのが一番かも。
具体的には、INT 18Hを使うのですが、
わたしが98をいじっていたのは、かなり昔なため、
現行機種で通用するのかはわかりません。

わたしが、覚えたての頃に参考にした本は、
アスキー出版局の"PC-9801シリーズマシン語ゲームプログラミング"と、
同じくアスキー出版局の"PC-9800シリーズテクニカルデータブック"です。
このあたりを準備すれば、結構、面白いものが作れると思いますよ。
# 特に前者は、実践的だと思います

では、また機会があれば立ち寄るかも知れませんので、
その時はよろしく。

seichan  [97/08/10 Sun 22:56:15]  [202.218.29.143]
Technical Assembler

  やっすんさん。アセンブリ言語歴10年とは凄い!
 と、同時に凄いジェラシーを感じました。僕なんか
 パソコン始めたのWIN95がでてからという初心者な
 んです。
  本当はもっと早くからアセンブラとかやりたかった
 んですがやっとパソコン買ったのが去年の一月・・・。
 そう言うわけで、アセンブラを10年やってるあなたが
 羨ましい!というわけです。
  なにとぞ初心者がやっているページのため不備が
 あると思いますが、これからもseichanとTechnical-
 Assembleをよろしく!r
seichan  [97/08/09 Sat 21:22:06]  [202.218.29.130]
Technical Assembler

  まるとさんすいません。実は98のMS-DOS.Ver6.2
のMASMで画面に点を打つ方法が知りたいのです。
まると  [97/08/09 Sat 02:41:03]  [202.208.34.47]

画面に点を打には
はじめまして!
グラフィックを叩くということはハードウェアに依存するプログラム
になりそうですね。どのようなプラットフォーム(マシン、OS)
でしょうか?DOS/VならソースもOKですが98は忘れて^^;
しまいました。
やっすん  [97/08/08 Fri 17:09:10]  [202.18.144.70]

はじめまして、ぼくはアセンブラ暦10年のやっすん(21)といいます。
最近はC/C++でWindowsやOS/2のプログラムもやりますが、やっぱりPC98+DOS+MASMの時代が一番楽しかった...
 でも、今の時代にもこんなすばらしい方々がいるなんて!感動しました!!(涙)
皆さん、ぜひがんばってください!
seichan  [97/08/06 Wed 20:55:34]  [202.218.29.132]
Technical Assembler

  上級者のみなさまに、質問です。MASMを使って、
画面に点を打ちたいのですが、この場合どのようにす
れば点を打てるでしょうか?
 INT 21でシステムコールを使う場合と使わない場合
を当ページのアセンブラメーリングリストか、掲示板に
て教えてください。
 ラインアート等を制作する際の参考にしたいので、
よろしくお願いします。
TANTOS  [97/08/04 Mon 13:32:02]  [203.141.130.191]

今日は、私の25回目の誕生日です。わはは
 日頃アセンブラばかりいじっていると、話す言葉自体も
段々アセンブラ化します。
 「おれ、つかれた」
 「おれ、おまえに、うらみがある」
だとか。
 長い文章を話すのが億劫になってくるなんて事ありませんかぁ。

以上、モノローグでした
seichan  [97/08/01 Fri 21:26:02]  [202.218.29.130]
Technical Assembler

 TANTOSさん、貴重な情報提供ありがとうございます。早速その本を探してみたいと思います。
 
TANTOS  [97/08/01 Fri 19:38:23]  [203.141.128.48]

あははは、半角カタカナ使っちゃった。ごめんなさい。
TANTOS  [97/08/01 Fri 19:34:06]  [203.141.128.48]
MASM初心者にお勧めの書籍

 どうも、初めまして。わたくしTANTOS(24)ともうします。
 只今、某通信社の記事配信システムの更改をしています。

 この仕事をするまでは、アセンブル言語についてほとん
ど何も知りませんでしたが、個人娑枝阿「Δ蕕笋爐茲ヲ
な恵まれた環境で日々OJTしております。

 さて、MASM初心者の方(並びに8086系のアセンブラ学習者)に
おすすめの本を見つけたので紹介します。

      工学図書株式会社 発行
       磯部 俊男 著
      「C言語とアセンブラ」
 これは、新宿の紀ノ国屋で見つけたのですがMASMの脇Pル
として、非常にわかりやすく書かれた良い本です。
 タイトルどうり、Cが分かる方はよりスムーズにアセンブ
ラの仕組みが理解できると思います。
 
 *1.もし、絶版になっていたらごめんなさい。
 *2.私の他に、文系出身のアセンブラ学習者の方がいらしたら
、お返事下さい。

四谷 豊  [97/08/01 Fri 04:59:42]  [202.239.122.75]

先日私が書き込みましたプログラムのお願いですが、何とも勝手なことですがVIRUSMONITORというデバイス常駐プログラムの作者に、これのTSR常駐版を作っていただきました。
これにより何とかTSR常駐プログラミングが少しは分かるようになってきましたが、まだよくわかっていない部分もありますので、また後ほどこのホームページにて質問したいと思います。
これからもどうぞよろしくお願いします。
四谷 豊  [97/07/27 Sun 01:09:25]  [202.239.122.42]

MASM5.1を使ってアセンブラの勉強をしております。
今、常駐プログラムのプログラミングについて特に
頑張っております。
ところで質問ですが、int21hをフックして、ファイルの
処理を管理(例えば、ファイルを実行するファンクション
を管理するなど)をするとき、筑舗化爪弉舗扱燭砲垢襪ネ
うまいことできるのですが、TSR常駐形式にするとうまく
動きません。と言いますか、TSR常駐形式のプログラミング書式をまだ熟知していないと言えます。
そこでどなたかDOSファンクション4b00hの管理をする
TSR常駐形式のサンプルプログラムを書いてメールで
送ってもらえないでしょうか?
詳しいプログラム内容につきましては、何かプログラムを実行したらビープ音を鳴らすというものでお願いします。
では、できれば早くにお願いできたらと思います。

ヒロ  [97/07/25 Fri 11:17:01]  [158.217.205.1]

ど〜も〜、はじめまして。今年、情報系の大学に合格
したフレッシュマンです。今年の夏休みに何か勉強
しようと思って、とりあえずアセンブラを勉強しようと
思っているんですが、何かよい参考書はありませんか?
教えてください。
突然ですみませんでした。お願いします。

Seichan  [97/07/20 Sun 23:44:07]  [202.218.29.133]
Technical Assembler

ちわぁ!ページ管理者の Seichan です。
アセンブリ言語初心者が勉強するのにいい本あったら誰か教えてください。
ちなみに、僕は文字列を表示するのがやっとです。
タカノリ  [97/07/18 Fri 17:30:54]  [192.218.140.38]

僕は今,仕事で爪弉舗を作っています。と言うか作らされていると言った方が正解かもしれません。毎日涙を流しながら仕事してます。で,今までさわった事もないアセンブラ言語を使わなくてはなりません。
教えて下さい。
Seichan  [97/07/17 Thu 02:41:44]  [202.218.29.144]
Technical Assembler

どーも、ご挨拶遅れてすいません。
当、ページ管理者の Seichan です。
皆々様には、書き込みいただきありがとうございます。今後ともよろしく!
まったくの無知  [97/07/16 Wed 04:26:05]  [210.159.158.166]

はじめまして、こんにちは。
私、アセンブラ(アッセンブラ?アセンブリ?)読み方もいまいちはっきりわからない、、ほどの初心者でございます。(あしからず、、最初に断っておきます。)
学生でございまして、授業でなんかそんな言葉聞いたことあるなぁ??ぐらいの話でまぁーいっかって思ってたんですね。(C言語はちょっとだけ勉強したんですけど、、)
しかぁーし、必要に迫られまして勉強することになりました。
8086アセンブラとか、、いろいろ種類が(あるのかなぁ?)ありそうなんですけれでも、何を勉強していけばいいのでしょうか?
IBM互換機で、ぺんちあむを使用しております。
いきなりの書き込みで、いきなりの質問で申し訳ないです。

Z80A(4MHZ)  [97/07/15 Tue 16:50:08]  [202.248.215.254]
懐かしいです!

インターネットを徘徊していると、このWebをみつけました。感想としては、懐かしい!の一言です。あい・ぼうる
さんが書かれているとおり、アセンブラでプログラムを記述する傾向の強かった時代に生きたプログラマーにとって、別の処理系に乗り換えるときの苦しみは・・・・・シクシクシク。
あの頃がよかった、と言うのは、もうおじさんなのかしら?

里見裕  [97/07/13 Sun 01:27:30]  [160.15.18.61]

やや! こんなところであい・ぼうるさんの名を見かけようとは。
「たれめパラダイス」からリンクを辿って絵を拝見して以来の
ファンです。Web ページを読んでいるのでツールを自作なさった
ことは知っていましたがアセンブラで開発とはすごい。

でも、かくいう僕はプログラミングについては全くといっていいほど
素人で、ちょっとした Perl スクリプトですら思うように
動作してくれなくて才能無いのかも。

アセンブラができるようになるとコンピュータが
ブラックボックスでなくなってさぞかし面白いでしょうね。

先日、背伸びしまくって「MMX 最適化テクノロジ」を購入してみた
のですが、アメリカに比べると日本はアセンブラの重要性の認識が
かなり低いようですね(素人のくせに偉そうですみません)。

あい・ぼうる  [97/07/03 Thu 03:04:28]  [202.247.142.146]
EYEBALL'S ANIME CG HOMEPAGE

初めまして、私は あい・ぼうる ともうします。
アセンブラのお話ができると伺い、参上いたしました(^^)
どうぞ、宜しくお願いします。

 私がプログラミングをしていたのは今から10年ほど前から2年前
までですが、主にZ80、68000系のアセンブラ(のみ)を使って
プログラムしてました。そのせいか今でもC言語はほとんど
読めません(苦笑)。
 仕事は全く関係のないの職種ということもあり、
私の場合、プログラムは全て個人的な動機
(CGを描くためのツールを自作する)で行なったものです。

長くなりますので、今回はこのへんで。
それでは(^^)

シェフ  [97/06/29 Sun 07:33:25]  [210.132.186.141]
シェフ

凄いですね(@@)
アッセンブラーも何もチェンジェン分かりませんが、・・・
頑張って下さい。
ワシは、近々中に発売されるパスカルを一から学習しようかと
思っている脳天気オジサンです。
果たしてプログラミングと言う物が出来るのか・・・・・
Mist!さんも頑張って(^o^)

Seichan  [97/06/20 Fri 00:00:00]  [202.218.29.154]
Technical Assembler

  Assembler に関する話題を書き込んでください。


e-mail: mist@e-net.or.jp
Structured Anchor Tree Return to Menu Return to Parent Menu 
Powered by Unit Missing Link.