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

 
Tips
 

 この頃に SOURCE 掲示板が独立、過去のログを掲載などページを追加/修正しました。


 
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 11/09/9712/31/97
 




Tia  [97/12/30 Tue 23:16:21]  [203.179.113.159]
Thanx

助かりました。
shigeoさんありがとうございました。
shigeo  [97/12/30 Tue 13:37:38]  [133.89.3.21]
Re:gccでインラインアセンブラを書く方法

Tiaさん初めまして
Linux上のgccなら例えば次のようにできます。(他のgccでも同じと思う)

#include <stdio.h>
typedef struct{int L,H;}qword;
void getClk(qword *clk){
asm(
".word 0x310F\n\t" //rdtsc for only P5, K6, etc.
"movl %%eax,%0\n\t"
"movl %%edx,%1\n\t"
:"=g"(clk->L),"=g"(clk->H) //output
: //input:none
:"eax","edx"); //use register
}
int main(){
qword clk;
getClk(&clk);
printf("now clock=%04X:%04X\n",clk.H,clk.L);
return 0;
}

コメント
1. '\n\t' は *.s をきれいに出力するためだけのものです。
コンパイルするだけなら '\n\t' の代わりに ';' でもよいし、
".word 0x310F
movl %%eax,%0
movl %%edx,%1
"
としてもよいです。
2. %0,%1,...はoutput, inputで使う変数の通し番号です。
では。

Tia  [97/12/30 Tue 03:04:17]  [203.179.113.182]
gccでインラインアセンブラを書く方法

gccのcプログラムの中にコードを埋めるにはどうすればいいんでしょうか。
1行ずつ
asm("....");
とは書けるんですが、一括で
mov x,x
add x,x
shl x,x
のように書きたいんです。
よろしくお願いします。
shigeo  [97/12/29 Mon 13:54:42]  [133.89.3.21]

細かいことですが...

1dword=32bitとは限りません。MASMではそうですが、それは多分当時は
16bit CPUが主でsizeof(int)=2であったためでしょう。
私の友達は1word=32bitで1dword=64bitが普通だと思っています。
そもそも1byte=8bitでないシステムもあるそうです。
(例えば1byte=9bitで1word=36bitとなっている)
いつでも正しいのは1octet=8bitだったと思います。

#とは言え、私も1dwordと言われたら32bitだと思ってしまいますが。

uv2  [97/12/29 Mon 01:14:50]  [202.231.131.123]
管理人さん、理解しましたよ。

BCBって何?
管理者  [97/12/29 Mon 00:55:41]  [202.218.29.141]
そう言う事ではなくて

uv2さん。インラインのお話はしていただきたいの
です。ただし、インラインの話としてしていただき
たいのであって、C++言語の話はここのページのテーマ
から離れると言うことです。
 だから、VC++の話をしていただくのは良いんですが
あくまでインラインアセンブラの話としてお願いします。

PS:TASMを使えばターボC++でもアセンブラは使えます。
  またLASMなんかでもWINで使えるライブラリは作れそ
  うです。
Magnesia  [97/12/29 Mon 00:51:43]  [203.179.132.18]
Re:ニモニック

>WINでニモニック書こうと思ったらVC++しか無いの
>では?

BCやBCBでもできるはずですよ。
私はBCBしか持ってないんですが、
TASM32(Win95用のTASMと思われる)
に対するBCB用のパッチとか入ってましたし。
そのうちやってみようと思ってます。
でもその前にTASM32を手に入れないと・・・

#デルファイでもできるはずです。
uv2  [97/12/29 Mon 00:24:26]  [202.231.131.123]
ニモニック

ごめんなさいです。
でも、最近のプログラムではアセンブラは他の
言語と切り離せないですからね。
WINでニモニック書こうと思ったらVC++しか無いの
では?

管理者  [97/12/28 Sun 01:54:49]  [202.218.29.91]
Tec Asm

 uv2さん、今回はDWORDの事と言うことで
仕方がないのですが、ここはアセンブラの話
題を描き込む場所なのです。
 ですから、これからはC++と言うことでは
なく、C++のインラインアセンブラの話題と
言うことにしていただけないのでしょうか?
 インラインアセンブラに関してはこれからの
アセンブラの利用の仕方の中心であると思われ
ますし(全部アセンブラで書くって事はこれか
らは少なくなるのではないかと・・・)、みな
さん興味を持たれています。
 アセンブラを知っていてもC/C++には詳しくな
い人もいらっしゃいますのでそう言った話題はこ
れから取り上げようかな・・と思っています。
管理者  [97/12/28 Sun 01:48:12]  [202.218.29.91]
Tec Asm

 どうもいつもお世話になっています。管理者の
seichanです。仄めかしている更新ですが一気に
ではなくちょくちょくやっていくことにします。
 だいたい、明日の日曜日から大晦日、正月にか
けてやろうと思います。宜しく。
uv2  [97/12/27 Sat 23:46:31]  [202.231.131.115]
64bitレジスタの事

ご指摘ありがとうっす、DWORDは32bitでした。
なにぶんVC++すーぱーびぎなーですから。
我が愛機はぺんてぃあむ130です。
V30好きだったんですけどね。
やすひろ  [97/12/22 Mon 05:03:48]  [202.230.246.114]

Re: 64ビットのレジスタ

ところで、uv2さんCPUは86系ですか?RISCだったりして(^^;

uv2さんのお話で、すこしだけ気になるのは
> C++でDWORDを上下2分割に安全(自分が把握できてる)
> に分けたいのですが64レジスタの存在をしりません。
「C++でDWORD」とありますが...?
chaohさんの言われる通りにDWORDは32ビットではないかと...
それともC++の64ビット変数(intやlong)をレジスタにロードしたいとか?
もう少し具体的だとよいかもぉ−

ちなみに、86系で64ビットのレジスタというと....
MMXの使えるCPUならば浮動少数点レジスタ(80ビットで8個)
のLSB側64ビットをMMXレジスタとして使えるMM0〜MM7
があるそうですが
(ガーン、私はただのPentiumなので使った事は無いんです<MMX)

MMレジスタから通常レジスタへの転送は下位32ビット分の転送を
一般の32ビットへ転送するしか許されていなく
MMレジスタからメモリにへは64ビットも転送できるみたいです

32ビット・レジスタの上位16ビットをメモリを使わずに操作するには
ローテートするかBSWAP命令くらいしか無さそうですよね
ただしBSWAPはエンディアンの変換なので並びは変わりまずが...

また、いったんレジスタの内容をメモリに格納してメモリから
参照する場合インテル系はリトルエンディアンなので少し注意した方が
良いかもしれません。


chaoh  [97/12/22 Mon 01:10:12]  [202.231.192.180]
32 ビットレジスタの分割

ども, またまた chaoh です.

下のレス書いてて思い出したんですが, 例えば AX レジスタを上下 2
分割する場合はそのまま AH / AL にすればいいんですが, EAX を同じ
く上下 2 分割にする場合, 下位 16 ビット部分は AX として取り出せ
ますが, 上位 16 ビットはどのように取り出すのでしょうか?

# もしかして取り出す方法はなく, 16 ビット分ローテイトさせるとか...

chaoh  [97/12/22 Mon 00:57:10]  [202.231.192.180]
Re: 64ビットのレジスタ

ども, 茶王 改め chaoh です.

> 64ビットのレジスタについて教えてください。
> C++でDWORDを上下2分割に安全(自分が把握できてる)
> に分けたいのですが64レジスタの存在をしりません。

64 ビットのレジスタですか. 私も聞いたことがないです. (?_?)

# コプロや MMX だったら手におえません. (^^;

でも, DWORD だと 32 ビットだと思うんですが...
BYTE=8 ビット (1 バイト), WORD=16 ビット (2 バイト), DWORD=32 ビッ
ト (4 バイト), ですからね. どうでしょうか?

uv2  [97/12/21 Sun 01:34:13]  [202.231.131.77]
64ビットのレジスタ

64ビットのレジスタについて教えてください。
C++でDWORDを上下2分割に安全(自分が把握できてる)
に分けたいのですが64レジスタの存在をしりません。
どうかよろしく。
管理者  [97/12/17 Wed 14:18:14]  [202.218.29.85]
書き込みについて

 管理者(seichan)です。まるさんと、それに対
する、AZUCOさんの書き込みを削除しました。

seichan  [97/12/12 Fri 21:31:12]  [202.218.29.146]
コメントの書き方

 コメントの書き方ですが、サブルーチンやブロックの
先頭にはそれがなにをするものかを書く様に心がけてい
ます。(といっても今まで作ったのがMLで作った一点描
画ライン引きしかないけど。ということは心がけようと
思っていますと言うことに・・・)
 
 訂正したりして使い回したり、する事を考えると素人
考えながらコメントは必要と思うことがあるし、その割
には回りくどいことを書くとかえってごちゃごちゃした
りするから難しいですね。
茶王  [97/12/09 Tue 07:21:31]  [202.210.129.20]
SOURCE掲示板はこちら

ども, 茶王です.

ソースの書き方ですか... 確かに 10 人いれば 10 通りのソースが出来
上がってしまうので, 人それぞれということになってしまいますが...
私の場合は, ラベル / 命令 / 定数 なんかも全て小文字で書いてます.
なぜって,かっこいいから. (^^; (茶王比)
定数くらいは大文字の方がいいのかもしれません.
でも, パッと見たかんじ, わかり (読み) やすいのは大文字の方ですね.
あと, C 言語なんかとリンクさせる場合も考慮した方がいいのかも...

AZUCO> コメントは必要以上に入れない(ラベルで大体解る)<BR>

なるほど. 私の場合は, 出来るだけコメントを入れるようにしてます.
加えて, ラベルも出来るだけわかりやすい名前にしてます. おかげで,
ラベルが長い長い. (調べたところ最大 53 文字でした (^^; )

参考までに SOURCE掲示板 の方へソース載っけときます. たいして参考
にはならないと思いますが...
それでは. m(__)m

AZUCO  [97/12/08 Mon 08:52:36]  [202.244.60.1]

ASMのソースの書き方ですか。
綺麗に書く方法としてはいくつかありますが、

ラベルと命令は別の行に書く
命令が始まるのは2タブ目
コメントは必要以上に入れない(ラベルで大体解る)

てな感じですかね。ちなみに僕は小文字で書いています。理由は

DOS/Vのキーボードが電源入った時点で小文字だから
字が小さいから、長時間見ててもつかれない
大文字の物が強調されるから(定数とか)

てな感じぃぃ。まぁ人の好みなんですが(^_^;)
自分一人しかソース見ないんだったら、適当でも良いんですが
誰かに見せるとなるとね。
JDN  [97/12/06 Sat 23:39:37]  [202.219.18.59]
募集

どうも、はじめまして。
ちょっと発言が外れてるとは思いますが、
アセンブラ言語を出来る人を募集させて頂きます。
興味のある人は<desnet@desnet.club.or.jp>まで、
連絡下さい。
詳細をお送り致します。

※管理者さんへ。このコメントに問題が有れば、削除して下さい。
seichan  [97/12/06 Sat 21:29:32]  [202.218.29.84]
ソースの書き方

 僕がASMのソースを書くときはCの様にずらしたり
せずに、ずっと直線上に書いていきます。たとえば
ラベルは画面の一番右、命令はそこから一つタブを
入れて、オペランドはもう一個タブを入れます。レ
スに関してももう一個タブを入れます。

例 DOSSEG
.MODEL SMALL
.CODE
MOV AX,@DATA ;データセグメント指定
MOV DS,AX

CALL GraphicFormat ;グラフィックライン初期化

 こんな感じです。Cと出来るだけ区別したい
ので、小文字は使いません。友人は小文字で書
いたソースの方が美しいと言いますが、僕は大
文字で書いた方がコンピュータの命令っぽいと
思うのでこうしています。これについては繊細
なのがすきか無骨なのが好きかっていう好みだ
と思っています。

PS:ところで、オブジェクト指向のアセンブラっ
てあったら面白いなぁ。題してマンデリン!

Magnesia  [97/12/06 Sat 02:06:04]  [203.179.132.16]

ども、はじめまして、マグネシアという者です。
いきなりですが、皆さんはアセンブラのソースを
どのように書いているのでしょうか?
私はCのように大部分は小文字で書いて
定数やマクロ、レジスタは大文字で書いてます。
変数や関数名もCっぽい名前を付けてます。
もちろんプログラムはmainから始まります(^^;

最近は95でBCBを使ってるので、C++っぽく
なってきてるようです。


seichan  [97/12/01 Mon 20:05:21]  [202.218.29.98]
res:在庫切れ

 左様です。そういう事なのです。しかも
テクニカルリファレンスあってのdos/vプ
ログラムリファレンスなのです。
 再刷の日時はわからないとのことでした。
(予定がある場合は黒猫が教えてくれる)
というわけで、貴重な本がまた・・・・。
 誰か売ってくれるなら1万円でも買うの
ですが(;^o^;)
茶王  [97/12/01 Mon 04:58:43]  [202.251.250.163]
ショック!!

ども, 茶王です.

>  黒猫にDOS/Vテクニカル・リファレンス・マニュ
> アルとDOS/Vプログラム・リファレンスを注文した
> ところDOS/Vテクニカル・リファレンス・マニュア
> ルは現在品切とのことでした。

が〜ん. (ToT) そうなんですか. 品切れとは...
自分もひそかにねらってたんですが... (^^;
やはり 2 冊ペアで欲しいですよねぇ.
黒猫さんで品切れってことは, 出版社 (?) の在庫がゼロという
ことなのかなぁ. 何処かで手に入らないのかなぁ.

# ML 連絡:あとで ML 送ります (^^; > seichan

seichan  [97/12/01 Mon 00:43:19]  [202.218.29.149]
DOS/Vテクニカルリファレンスマニュアル品切れ

 黒猫にDOS/Vテクニカル・リファレンス・マニュ
アルとDOS/Vプログラム・リファレンスを注文した
ところDOS/Vテクニカル・リファレンス・マニュア
ルは現在品切とのことでした。
 ご参考までに・・・。

PS:プログラムリファレンスだけでは役に立たないよぉ
(;o;)
SEICHAN  [97/11/21 Fri 18:09:15]  [202.218.29.94]
お詫び

 kiss-me-quickさんのページへのリンクを追加した
と書いていましたがリンクのページを更新するのを
うっかり忘れていました。今のでリンクしたページを
あげておきましたのでこれでつながります
 ご迷惑おかけしました
茶王  [97/11/19 Wed 06:35:10]  [202.251.250.95]
そろそろ・・・

ども. 茶王です.

> バンク切り替えなどを利用するのが一般的ですよ。

なるほど. そいう手があったんですね. グラフィックの裏画面で
描画しといて, バンク切り換えで表示させるんですね. (違って
たりして...)
なんせ, グラフィック操作関係にはうとくて... 参考になります.

VSYNC. どうやら奥が深すぎたようです.
そろそろ, お開きにしましょうか? (^^;

Tia  [97/11/19 Wed 06:13:47]  [157.80.76.13]
VFP

VFPとかの話の前にVRAMがCRTに表示されるプロセスを説明したほうが
いいようですね。
まず、CRTに表示される信号にはVRAMを読み込み画像信号として出力される
RGB信号と、画面表示のタイミングであるVsync信号に分かれます。
簡単にいうと、PC側からの出力とCRT側の出力です。
そしてVsync信号のブランク期間はRGB信号のブランク期間に完全に包括
されるのでVsync期間にVRAMを変更することでちらつきがなくなるわけです。
そして、RGB信号のブランク期間でVsync立ち上がり前までをVFP,
立ち上がり後をVBPと呼びます。
つまり、RGB信号ブランク期間(VFP+Vsync期間+VBP)=Vsync期間になるわけです。
わかりましたか?
ちなみに、機種によっても多少違いがありますが、Vsync+VBPは約1.33ms
です。これ以上時間のかかる処理は表示VRAMを書き換えていてはだめなので、
バンク切り替えなどを利用するのが一般的ですよ。

・・・なんかVsyncの話しかしてないなぁ。。。
カヲルとかseichanとか  [97/11/18 Tue 23:33:55]  [202.218.29.61]
Tec Asm

 茶王さんの質問への解答。

  基本的に適当に常識で判断してもらうと
 良いのですが詳しく書くと以下のようになり
 ます。

 まずはこうなった理由から

 source掲示板が出来た理由
  掲示板に書かれたsourceが長いためほ
 かの話題に進むのが大変だった。で、so-
-urce自体が少なかったので別の掲示板に
 分ければ丁度良いのではないかと思った。

 掲示板の利用方法
  アセンブラに関するふつうの質問はここで
 行ってください。
  ソースですが、MLリストに参加している人
 は出来たらMLに、どうしても長いsourceを掲
 示板に乗せたい場合はsource掲示板をご利
 用ください。
  基本的に数行程度の短いsourceはここで
 も良いです。
 
茶王  [97/11/18 Tue 04:45:38]  [202.210.155.222]
ふたたび VSYNC

ども. 茶王です.

> ところで、VFPとVBPって何ですか?(^^;<BR>

え〜っと... 私にもよくわかりません. (^^;
走査線の画面表示 前 / 終了後 の処理のことかもしれませんが...
助けてください. > Tia さん

> やっぱ、VSYNCとってもちらつくって事は、処理が長いってことですかね…。

だと思います.
もし可能なら, 長い処理を分割させそれぞれに対して VSYNC を取る, あるいは長い
処理の途中で VSYNC を取る, というのはどうでしょう.
もっとも, うまくいくかどうかはわかりませんが... (無責任ですみません m(__)m )

それでは.

れいや  [97/11/17 Mon 14:42:00]  [133.205.141.116]
お礼

茶王にTiaさん。
ありがとうございました〜(^^)/

すっかり、お礼の言葉が遅れてしまったことを、お許しください。

ところで、VFPとVBPって何ですか?(^^;
やっぱ、VSYNCとってもちらつくって事は、処理が長いってことですかね…。
茶王  [97/11/17 Mon 06:16:21]  [202.210.129.27]
掲示板への書き分けについて

ども. 風邪と激闘の末, 勝てそうな気配の茶王です. (^^;

カヲルさんへ.
まずは, ページの更新おめでとうございます. (^o^)/

そこで, 掲示板への書き分けについてお尋ねしたいと思います.
ここ (アセンブラ掲示板) へは今までどおりアセンブラに関しての質問など,
そしてその解答については, ソースがない場合はアセンブラ掲示板へ, ソース
がある場合は SOURCE 掲示板へ, という具合でよろしいのでしょうか?

あるいは, 質問/解答の区別なく, ソースがない場合はアセンブラ掲示板へ,
ソースがある場合は SOURCE 掲示板へ, という具合でしょうか?

ナイアガラ  [97/11/15 Sat 23:09:57]  [202.209.3.42]

はじまましてです。

只今PC98FA&TASMでAD変換ボードの
プログラムを書いています。

既に周りにアセンブラを使える人がいないので
ここにはちょくちょくお邪魔させて頂きます。

それではまた。
茶王  [97/11/15 Sat 05:54:00]  [202.210.155.211]
Re: VsyncTop

ども, 茶王です.

Vsync だけでもこんなに奥が深かったんですね. (^^;
また何かわからないことがあったら, お教え願いたいと思います. m(__)m

それでは.

管理者  [97/11/14 Fri 19:09:26]  [202.218.29.100]
tec asm

 うんどーずを 再インストールしていますが
以前から友人に譲ってもらっていたフリーウェ
アが手に入らなくなったため、自分でインスト
ールすることに、zipってなに?lhzって?四苦
八苦する内にこう新宣言から一週間が・・・・。
 zipで配給されるftpエクスプローラがインス
トールできないよぉ・・・・。

 更新予定項目
 ・XXXと名乗るいたずら男の書き込み削除
 ・長くなりすぎた掲示板の過去のログを別の
  ページにログとして掲載
 ・プログラム専用掲示板を作成
 ・kiss-me-quick氏のページ(asm本リスト)へのリンク 
Tia  [97/11/14 Fri 00:00:29]  [157.80.76.13]
VsyncTop

Vsync信号の先頭の検出とVsync信号を取るの違いは、今Vsync期間の
どの位置にあるのか、と言うことです。
Vsyncを利用するときはたいていCRTにちらつきなしで何らかの表示を
したい時だと思います(単なるWaitにするときもあるが..)。
単純にVsyncを取っただけでは、Vsync期間の終了間際ということもあります。
そうすると、肝心のCRT書き換えルーチンを実行(あるいは実行中)時には
Vsync期間が終わってしまいちらつきが発生することがあります。
そのため、Vsync期間の立ち上がり時を検出する必要があるわけです。
ちなみに、RGB信号のブランク期間はVFP+Vsync+VBPだが、
VFPを検出することはできないので、Vsyncを取ります。
また、単純にVsyncを取っても後にVBP期間があるためバンク切り替えなどの
短い処理しか行わないのであれば、あえて先頭を検出する必要はないですよ。

こいつ  [97/11/13 Thu 18:06:25]  [210.129.61.14]
おはつです。ご指導よろしくお願いします。

こんにちは。はじめまして
私は、アセンブラ歴1年にもみたない
超初心者です。やったことあるのもZ80くらいで・・
で今回68302という石を使っております。
6800シリーズは始めててで良く分かりません。
何か良い本などがあれば教えてください
(特にイニシャライズ関連)
また。なんとアイトロンなるものも使用しようと思います
アイトロン詳しい方がいればなにか
良いアドバイスを下さい・・
では今日のところはこの辺で・・

なおき(^○^)  [97/11/13 Thu 16:03:54]  [210.132.187.71]
きーぼーどーーー!

始めまして!なおき(^○^)です!
ゲームのキーボードの状態を読み込むのにc言語のインラインアセンブラで01hのシステムコールを使っています。これだとタイプメティックレートのせいでうまく行きません。だれかわかりやすく教えてください。
Angela Bennett  [97/11/13 Thu 15:44:59]  [202.239.122.77]

コンピュータウイルス防御プログラム「File Keeper『みゆ紀』 Ver4.7登場!!
動作環境MS-DOS3.1以上

どうぞよろしく!!

やすひろ  [97/11/13 Thu 02:38:10]  [202.230.246.102]
Re:「4ビット の 再訂正

>0の掛け算は無視できますが、これだけの計算でループ数は6回にも
>なってしまう
9回でしたね(^^;
AM3時のたわ言でした、ごめんなさい
茶王  [97/11/12 Wed 07:10:04]  [202.251.250.155]
Re: Vsync >Tia さん

> Vsyncの取り方ですがVsyncはGDCコマンドを発行しなくても信号を検出出来るので、
        <中略>
> VsyncはText/Graphicの区別はないです、I/O portは違いますがどちらでも値は同じ
> に取得できます。

いや〜, 詳しい人がいてホントたすかります. ありがとうございました. m(__)m
なにせ普段使ってても, ブラックボックスと化している部分が結構あるんで... (^^;
また何かありましたら, ご享受ください.

それで, ご迷惑ついでにもう一つだけお聞きしたいのですが, "Vsync信号を取る" と
"Vsync信号の先頭の検出" の違いを教えて頂けないでしょうか?

やすひろ  [97/11/12 Wed 03:50:07]  [202.230.246.102]
訂正

誤:基数基数法
正:基数記数法

誤:少なくても変数A、B、Cの値はメモリに....
正:当たり前なので削除(^^;

やすひろ  [97/11/12 Wed 03:31:43]  [202.230.246.102]
Re:「4ビットCPU

4ビットCPUですか?
本当に答えになっているのかなぁ(^^;

整数値変数A * 少数値変数B * 少数値変数C を計算するのですか?
少なくても変数A、B、Cの値はメモリに取っても良いのですよね。

私の無い頭を絞って考えた方法(超−−−−低速)
方法的にはより人間的な考え方かも知れない?

例を元に考え方を書きますと 64*0.064 を計算
基数基数法(基数10、10の2乗を10^2と表現しています)により
64*0.064 = (6*10^1+4*10^0)+
(6*10^-2+4*10^-3)

この式を展開すると
(6*6*10^-1)+(6*4*10^-2)+
(4*6*10^-2)+(4*4*10^-3)
となります。

ここで基数を2進に変更してしまえばバイナリーでの演算ルーチンが
使えるのですが...。ここでは置いておいて、次のステップへ

10のべき乗で表現しなおすのは
答えを格納する桁を示しているのでとても便利だからです。
掛け算もシフトもまったく使えないとの事ですから
九九のテーブルを用意しておいて6*6とか6*4はテーブルから
表引きして取得しちゃいましょう。
テーブルを持てるほどメモリに余裕が無ければ?
4*6は6を4回足し込みましょう(^^;
もっとメモリに余裕が無い場合は1*nをプログラムにしますが
9バイトをケチってもしょうがないでしょう。
0*nも要らないですから、
81個のテーブルは用意する必要はないですよね
(6*4は4*6と解釈)

単純な繰り返しや条件判定はコンピュータの得意種目ですから...
理論的には計算できるはずですが、桁数が増えてくると遅そうですねぇ...。

64*0.064=4.096ですから

この例の場合
4.096*12.4も続けて計算すると
=((4*10^0)+(0*10^-1)(9*10^-2)+(6*10^-3))*((1*10^1)+(2*10^0)+(4*10^-1))
0の掛け算は無視できますが、これだけの計算でループ数は6回にもなってしまう

書いていて気が付いたが、遅くて使えん、ダメだな....
ごめんなさい
ホーリー  [97/11/10 Mon 21:34:02]  [210.152.1.10]

下に書いたアドレスが間違っていたのでもう一度書きます。
ホーリー  [97/11/10 Mon 21:32:47]  [210.152.1.10]

初めて訪れる者です。アセンブラの初心者で、いきなりで申し訳ないですが、どうしても分からないことがあるので、どなたか教えてくくれると有難いです。
 4ビットのCPUで、乗除算命令、シフト命令がなく、フラグがキャリーのみしか持っていないアーキテクチャで、(64*0.064*12.4)のような計算は可能なのでしょうか。掲示板で長くなるようでしたらメールでいいのでお願いします。



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