![]() |
Message Log 10 | Return to Parent Menu |
Last Updated by 07/01/05(Fri) |
| |||
まぁいろいろとえらいことになってますが・・・ |
| |||
| |||
: いさぽん [98/09/18 Fri 14:07:49] [210.160.144.131] いさぽん部屋 なんか久久にきたら「えらい」ことになってるね。 なんつ〜か、Cで書こうがなんで書こうが結局はマシン語なわけだし、 objにしろlibにしろ半マシン語なんだからさ、 結局は自分で意識して打てればフルアセンブラでもインラインアセンブラでも変わらないと思うっよ。 どうせCPU同じだし。 おいらはインラインアセンブラを使ってるけどスタックはいじりまくるしさ、 同じアセンブラ人としてけんかは止めようよ、お互いの言い分を聞きあって より良いルーチン組めるように意見交換しましょう。 ここはそのためのBBSなんですから(たぶん)。 偉そうなことを書きましたがおいらの言い分です。 では AZUCO [98/09/17 Thu 21:26:03] [210.164.19.103] 一連のことに関して、当事者が言うのもなんですが、もうやめましょうか。 そもそも僕はここの掲示板は非常に長く、かつ書きこみも多くしております。当然ここの掲示板は好きなわけです。(最近は他のことをやってるので、あまり書いてないのですが) 最近は、荒らし的人間が多いので(特に「通りすがりの」というようなハンドルで書きこむ)僕はその手の荒らしかと思い(反論の意見が支離滅裂で、人をおちょくるような書き口であったためです)かなり強硬なレス&身辺調査を行いました。 また、荒らしの常套手段である、「メールでのやり取りを望んでいるのに、しつこく掲示板に書きこむ」という行動をとっているあたり、典型的な荒らしではないかと思います。 まぁなんにせよ、僕の言動も行きすぎたのは事実ですね。不愉快に思った方すみません。(つーか俺も荒らしと同じだな(反省)) 今後この事はメールでお願いします。当事者の荒らしもどき君も同じです。 下の方へ [98/09/17 Thu 20:00:25] [192.218.136.11] 私はAZUCOさんの意見を不愉快だと思いません。 あなたが不愉快な思いをしたのは分かりましたが ミンナがミンナ、そう思うとは限らないデシよ。 私は逆に「通りすがxx」さんの意見にハラが 立ちました。 管理者さんへ。 [98/09/17 Thu 13:42:47] [203.136.14.137] AZUCO氏の発言は不愉快なので、削除したほうがいいと思います。 一応、謝ってるようですが。 もちろん、これも削除していいです。 AZUCO [98/09/17 Thu 00:12:37] [210.164.19.115] みんなすまんね。 >通りすがるつもりだったものです メールでこいって書いたでしょ?マジで日本語よめんの? ほんで結局てめーのメアドも書かないし。俺は書いたぜ? あー、けどもうどうでも良いよ。別に君がどう思おうが。 どうせプログラマは実力勝負だから。 >call/ret,push/popやlocal変数確保/割り込みなどにstackを使う >から素朴に質問しただけなのだが。 これマジでいってんなら、君ほんと間抜けだよ。全然会話の論点がず れてるって。まぁわかんないと思うけどさ。 今度メールでこずにここに書いたら、自分のメアドもなんも全部調べ 上げるよ。あんまマジにさせんでくれ。俺も忙しいからさ。 shigeo [98/09/16 Wed 15:53:48] [130.54.16.42] プロテクトモード上でのプログラムのやり方を最初から 分かりやすく解説した本を残念ながら私は知りません。 それで私がとった方法を書いてみます。 取り敢えず、命令一覧が載った本を買いましょう。 kiss-me-quickさんの http://www.annie.co.jp/~starbow/asm_book.htm を参考してみてください。 最初は分からないと思いますが、辞書的に使えばよいと思います。 で、どうするかと言うと非常に簡単なルーチンをCで書いてVC++などで コンパイルしてASMソースを出力させます。 それからちょっとだけCのコードを変更し、どこが変わったかを見ます。 そうして本を見ながら何故そうなったのかを考えます。 WWWで他人のソースを(分からないまでも)眺めるのもよいと思います。 とにかく、今までCでは当たり前だったことも自分で記述しないと いけないとこが多いので、それになれるためも 変更&実行 を繰り返すしかないと思います。 取り敢えず、簡単なサンプルを一つ(見にくくてごめん)。 buf[]に入った値を2倍します。 問1. char *bufではなくshort *bufにするにはどうすればよいか。 問2. 2倍ではなく-1倍するにはどうすればよいか、3倍するには? #include <stdio.h> #include <stdlib.h> void mul2(char *buf,int n){ __asm{ mov edx,buf /* edx=buf; */ mov ecx,n /* ecx=n; */ LP: mov al,[edx] /* al=*edx; */ add al,al /* al=al+al; */ mov [edx],al /* *edx=al; */ inc edx /* edx++; */ dec ecx /* ecx--; */ jnz LP /* if(ecx!=0)goto LP */ }; } #define N 10 int main(){ int i; char buf[N]; for(i=0;i<N;i++){ buf[i]=rand()&63; printf("buf[%d]=%d\n",i,buf[i]); } puts("mul2 exec"); mul2(buf,N); for(i=0;i<N;i++){ printf("buf[%d]=%d\n",i,buf[i]); } getchar(); return 0; } 通りすがるつもりだったものです [98/09/16 Wed 11:44:47] [130.54.218.16] >stackを使わないでまともなプログラムを組めるとは思えないのですが。 との僕の質問に対してなんでそんなに罵倒されないといけないのか分からない。 call/ret,push/popやlocal変数確保/割り込みなどにstackを使うから素朴に質問しただけなのだが。 意見が変わるかどうかは理由を言って頂かないと話しにならない。 >それからwindowsアプリを組む時に... これはまた別の話だ。確かに"それから"というつなげかたはマヌケであった。それは謝る。 「高速化したい部分だけASMで記述する」という発言は基本的にあなたの >インラインアセンブラが一番良いかと思います。 に追従する意味で言ったものだ。別に反論したかったわけじゃない。 >まぁもっとも京大の君は... こんなこと書いてどうするの。少なくともここではどこから発言しているか あるいはどこに所属しているのかなんて全く関係の無い話だろ。下らない。 じぇす [98/09/15 Tue 14:15:04] [210.147.194.63] shigeo さん、ホームページ拝見いたしました。 もう少し、勉強したら役にたちそうですが、今の自分には 少しないようが難しかったです。うーん。本が見つからない。 基礎から、教えている本紹介して。 AZUCO [98/09/15 Tue 00:22:28] [210.164.19.121] >何故断言するの?stackを使わないでまともなプログラムを組めると >は思えないのですが。 >それからwindowsアプリを組む時にすべてアセンブリ言語で記述する >のは馬鹿げてますが、高速化したい部分だけアセンブリ言語で書く >のは普通だと思います。 あのさー、俺が断言しようが、あんたの意思が変わるわけじゃねぇ だろ?俺は多くの経験を踏まえた上で言ってんだよ。 まぁもっとも京大の君は人の意見を否定する為だけに(それが一番自 分の地位を確立するのに手っ取り早いもんな)ここに来てるんだろう けどさ、もうちょっと建設的な意見くれる? あと、「それから」以後の文は前回の俺の文章のなんに対しての反論 か全然わかんねぇ。 君さ、あーだこうだいうまえに、もっと勉強することあるよ。あんま 変な事言ってると、マジでやるぞ。 文句あるならメールでこい。まぁ通信でもこういう人いっぱいいるけ どね。大概口だけ。特に京大の奴は前にもおかしい奴いたな。 プログラマーなら口でなく実力で示せよ。そんくらいわかってんだろ? shigeo [98/09/14 Mon 18:39:46] [130.54.16.20] じぇすさん >また、CPUのしくみや、レジスタなどの仕組みを全く知らないので ほんの少しなら拙作のWeb Pageで解説してます. http://www.kurims.kyoto-u.ac.jp/~shigeo/index.html #ただあれを見てプログラムが出来るようになるとは思えないのですが(^^; じぇす [98/09/14 Mon 16:57:46] [210.147.194.159] 通りすがりのものです さん、TASM について情報ありがとうございました。 はやく、アセンブラを勉強してみたいです。 通りすがりのものです [98/09/14 Mon 11:03:08] [130.54.218.17] AZUCOさん >その理由は、まず通常アセンブラにおいて、スタックを積極的に >利用するプログラムを書く人がそもそもいないということです。 何故断言するの?stackを使わないでまともなプログラムを組めるとは思えないのですが。 それからwindowsアプリを組む時にすべてアセンブリ言語で記述するのは 馬鹿げてますが、高速化したい部分だけアセンブリ言語で書くのは普通だと思います。 じぇすさん >TASM32 なんだけど MASM6.0はかなり文法が変わっていて5.0ぐらいまでのものとは互換性が無い部分があるようです。 (持ってないので良く知りませんが) TASMもバージョンが変わるとどうなっているのか知りません。 ただ、TASMの生成するobjが必ずしもそのまま使えるわけではなく、いったんライブラリ 形式に変更しないとうまくリンクできないことがあります。 #私のところでは(別のアセンブラで作った)数千行のソースをそのようにしてリンクして #ちゃんと動いてます。 じぇす [98/09/13 Sun 17:35:35] [210.147.194.161] 英語は、ちょっと。。だけど、参考にさせていただきます。 まだ、ソースを読める段階まできていないので。 自分は、MASMでなくて、TASM32 なんだけど、使い方とか 変わってくるんですかねぇ? Sister.DELETE [98/09/13 Sun 01:10:35] [210.164.41.211] Winでアセンブラ? あれ? プログラマーズヘブンにMASM6.0用の、Windowsの プログラムをアセンブラで組むためのライブラリみたいなのが ありますよ?説明書は英語ですけど。全部ソース公開してます。 プログラマーズヘブンはここです。「FILES」を選んで 探してください http://www.programmersheaven.com/ じぇす [98/09/10 Thu 16:55:26] [210.147.194.151] JESUS Homepage みなさん、はじめまして。じぇすともうします。 自分は、Windows時代になってから、本格的にプログラムを勉強し始めて、最近は、C++の言語使用が、だいたいわかってきたから、インラインアセンブラにも挑戦したいなと思っているのですが、アセンブラの勉強をしようと思っても、本屋さんにいっても、全くと言っていいほど本がありません。インターネットで勉強しようと思いここにたどりつくことができました。注文すれば手にはいるような、おすすめの本がありましたら、お願いいたします。一応、学校には古いアセンブラの本があるのですが、最近のCPUとはプログラムの方法が違うのかと心配です。 また、CPUのしくみや、レジスタなどの仕組みを全く知らないので、 ちょっと、難しい本になると、全く意味が通りません。 どうか、お願いいたします。 トシキ [98/09/09 Wed 00:25:17] [202.217.205.140] お返事 ありがとうございます。 取りあえず、C++を勉強しながら、出来る部分はアセンブラで 記述するといった方法でやっていってみようと思っています。 また、よろしくお願いします。 AZUCO [98/09/07 Mon 02:06:06] [210.164.19.102] WINにおけるアセンブラの可能性は僕も探っていたのですが、はっきり言って余りありません。 その理由は、まず通常アセンブラにおいて、スタックを積極的に利用するプログラムを書く人がそもそもいないということです。 その為、そもそもCによる呼び出しを前提としているAPIをアクセスすること自体、困難を伴います。 また、COMやDCOMともなれば、そもそもその発想自体がCから来てるものなので、アセンブラで記述ということ自体が、大きな負担以外の何物でもなくなります。 そんなわけで、インラインアセンブラが一番良いかと思います。 といいつつ、いつかはWINでも僕はアセンブラするつもりなんですが(爆 Magnesia [98/09/06 Sun 03:01:59] [210.172.112.185] Re:トシキさん >はじめまして。 基本的な質問なのですが教えてください。 ども、初めましてMagnesiaです。 >当方 ゲーム機用のアセンブラ(6502、Z80)の経験が少し >有りまして、今回 WINDOWS上で動くゲーム等、最初は >簡単なプログラムからアセンブラを始めたいと思っているのですが、 >ツールや環境等どのような物を用意したらいいか分かりません。 >基本的過ぎる事ですが、どなたかお教え下さい。 >また WINDOWSのアセンブラ初心者向きな良い関連図書が >あったら、教えて下さい。 WINDOWSプログラムをアセンブラで組むんですか? いきなりやるのははっきり言って無理ですよ。 まずはCやC++から初めてはどうでしょうか。 そして、本当に高速化が必要な部分のみアセンブラを使うのが良いでしょう。 WINDOWSプログラムを全てアセンブラで書くことに何のメリットもありません。 私は3.1用にアセンブラでかかれたプログラムのソースを持っていますが、定数定義部 も含めて、約2000行あります。同じプログラムをCで書けばその十分の一もないでしょう。 #現時点で、私はWINDOWS用のアセンブラ関連図書を見かけたことはありません。 #なんか、あんまりアセンブラ掲示板で書くような内容じゃない気が・・・C勧めてるし トシキ [98/09/03 Thu 15:22:19] [202.217.205.118] はじめまして。 基本的な質問なのですが教えてください。 当方 ゲーム機用のアセンブラ(6502、Z80)の経験が少し 有りまして、今回 WINDOWS上で動くゲーム等、最初は 簡単なプログラムからアセンブラを始めたいと思っているのですが、 ツールや環境等どのような物を用意したらいいか分かりません。 基本的過ぎる事ですが、どなたかお教え下さい。 また WINDOWSのアセンブラ初心者向きな良い関連図書が あったら、教えて下さい。 よろしくお願いします。 H.kojima [98/09/03 Thu 13:10:09] [202.238.80.29] 除算 と MMX は並列実行できないんでしょうかね? H.kojima です アセンブラにつきましては初心者です 業務で高速化をあれこれ考えてるのですが 除算って一度走らせるとペアリング出来ないのかな・・・ 演算中にMMX命令を走らす事が出来れば 隠す&アンローリングでかなり高速化できますよね Intelに聞いた方がいいのだろうか? はぁー・・・ コイツ( 除算 )のおかげで高速化が進まない・・・ koko [98/08/28 Fri 22:12:44] [133.6.92.16] いさぽん さん どうもありがとうございます。 ここからアセンブラの勉強させていただきますっす。 いさぽん [98/08/28 Fri 00:06:36] [210.161.16.184] いさぽん部屋 なんか久々にカキコするいさぽんです。 kokoさんへ> 画面を真っ暗にするにはVRAMを『0』で埋め尽くせばOKです。 アドレスは環境によって異なるので、どことは言えませんけどね。 0で生める方法には rep stosd などがありますが、この命令は 実行速度が遅いので mov 命令を駆使したほうが速いっす。 任意の座標に点を打つ方法ですが、256色の場合は結構簡単です。 画面の横幅が640ドットの場合で(20,40)の位置に 書きこむなら (640x40)+20 をオフセットとして 書きこめばOKです。 ちなみにソース。32bitレジスタを使ってるから386以上 ついでに言っておくと最適化もなにも考えてないので、 改良すれば数倍速くなるっす。 EDIにはVRAMのアドレスを入れておく ; 塗りつぶし(手抜き版) mov ecx, 640*480 xor eax, eax ; eax <- 0 clMem: mov [edi+00h], al inc edi loop clMem ;ドットを書く mov ecx, X座標 mov eax, Y座標 mov ebx, 画面の幅 mul ebx add eax, ecx mov bl, 色 mov [edi+eax], bl koko [98/08/26 Wed 04:40:54] [133.6.92.16] 私、現在グラフィックのプログラミングをあれこれやろうとして おりまして、グラフィックプログラミングでライブラリ関数で 云々でなく根本的に理解できたらなと想ってしまいまして色々 調べておりましたら(アセンブラにはそんな雰囲気があるようでゥ) アセンブラの本「はじめてのマシン語、MASMゥヅ@廚鬚舛腓ッ ちょく読んでおります。 質問になってしまうのですが、 1.ディスプレイ画面(フルスクリーン)を真っ黒にする。 2.その画面に対して任意の位置に点を表示する。 この2つをアセンブラで書こうすると、どうなるのでしょうか? 今よんでる本にありそうでなかったものですからゥイ匹覆燭Cイ いします。 (迷惑ついでに、ここで紹介されているフリーのアセンブラのど れを使ってというような事もご教授いただけるとゥレ埖コ圓納採 しました。) 高山 [98/08/25 Tue 13:11:46] [210.132.183.165] AZUCOさん、ありがとうございます。 電卓のプログラムについて。 加算と減算については問題ないのですが、乗算と除算の計算も 小学校の時にやったやり方で処理するのでしょうか? bitシフトでやる方法もあると聞いたのですがこのやり方も 数値が大きいと、シフト回数が膨大になってしまいます。 DOT [98/08/24 Mon 17:25:20] [210.145.213.2] こんにちは。DOTと申します。 このようなアセンブラのページがあったのですね。 私はX680x0でアセンブリ言語でゲーム等を作っています。 よろしくお願いします。 AZUCO [98/08/24 Mon 17:04:10] [202.244.60.1] 電卓については、小学校の時やった、筆算の様に一桁ずつ(でなくてもいいが)処理していきます。 たとえば16ビット加算なら、下位8ビットづつと、上位8ビットづつ、等のように行います。後は解りますよね? デバイスドライバのデバッグは、発想を逆転して、メモリ上に残してみてはどうでしょうか?(結果などもメモリに書き込む) ちゃんと動いてることが確認されたら、消すように変更すると。 なんか適当な答えですが、どうでっしゃろ? NABE [98/08/22 Sat 22:51:13] [203.141.128.50] はじめまして、"NABE"と申します。 DOS用デバイスドライバで実行後に自己消滅するタイプ(例:UMB操作)のデバッグは、どのようにして行うのでしょうか? メモリ上に残らないとなると、確認する方法が無いと思うのですが・・・。 高山 [98/08/21 Fri 10:54:15] [210.132.183.200] はじめまして。 アセンブラは初心者なのですが宜しくお願いします。 今度、電卓のプログラムを作ることになったのですが どう作っていいのか迷っているところです。 使っているアセンブラの命令の乗算と除算には8bitまでの 値しかあつかえないので、桁の繰り上げなどに四苦八苦しています。 アセンブラで組まれた電卓のサンプルプログラムやフローがあれば 参考にしたいのですが、どうも書店などを探しても アセンブラの本じたい あまり置いてないみたいですね。 どなたか、参考になるようなサンプルや書籍などをご存じでしたら 教えて下さい。 よろしくお願いします。 AZUCO [98/08/21 Fri 08:54:11] [202.244.60.1] インラインアセンブラに手を染め始めちゃった。 もう戻れないのねぇ(何が? YOU [98/08/19 Wed 10:31:49] [210.154.10.9] はじめまして! 私は、アセンブラを始めたのは、高校の時で 当時は、FM−8、FM−7、PC−8801、パソピア7 などを使っていました。 あのころは、CP/Mを使っていました。 BASICが支流で、そのままマシンコードを書き込んで いた時代です。 あのころは、CP/Mは画期的でした。 いまは、DOS、DOS/Vが支流で、アセンブラも DOS用の(Z80)アセンブラを使っています。 岩崎のアセンブラを使っているのですが マニュアルがなくて困っています。 (IR80) どこかで手に入らないでしょうか? 宜しくお願いします。 by.YOU Sister.DELETE [98/08/13 Thu 05:36:55] [210.164.41.209] NASMはMASMの文法が使用できるかについて 結論から言うと、まったく同じ文法が使用できるわけではありません。 しかし、MASMよりも簡易的な方法でセグメント等の割り当てができるので特に 問題はないと思うんですがゥ・ 注意しなければいけないのは、値が決まっていないデータは”resb”または”resw” という命令で確保しなければならず、決まっているデータは”db”や”dw”その他で 確保しなければならなかったりするところですか。 あと、コードセグメント等の割り当てには”SECTION なんとか”って命令を使用すること、 また、OFFSET命令がないので、”DX,HELLO”なんて事ができます。 まあ、いろいろな違いはありますがどちらかというと簡単にプログラムが作成できる ことを前提としたようなアセンブラですので、命令は簡単ですから、よく添付DOCを 読んでみてください。 でわ。 あーる [98/08/07 Fri 12:02:03] [163.209.180.90] NASMはMASMの文法がそのまま使えるのか どうか、どなたかご存知有りませんか? PC−9801シリーズで、小学館もしくはアスキーから マシン語グラフィックスとかいった感じの名前の本が あったように思うのですが、どなたか入手方法を 知りませんか? アセンブリ言語でグラフィックスのプログラムを 作成するのに必要なので、知っておられる方は 情報を下さい。 賭場一路 [98/08/07 Fri 11:10:46] [133.71.161.221] Magnesiaさんどうも書き込みありがとうございます。 >#ところで、ちゃんとした参考資料持ってます?資料なしでやるのはかなり無謀ですよ。 そういえば、DEBUGを大々的に取り上げたような本って、見かけませんね。 とりあえず、アセンブラの入門書とアスキーのMS-DOS標準ハンドブックを見ながらこつこつやっていこうと 思っています。 Magnesia [98/08/05 Wed 04:17:59] [210.172.112.194] >どうも、はじめまして、賭場一路と申します。 ども、はじめまして、Magnesiaです。 >アセンブラをMS-DOS6.2のDEBUGで始めたいのですが、何か特に気をつけなければならないこと >とか、便利な使い方などがありましたら、教えていただけませんか。 DEBUG使うんですか?根性ですねぇ。私も以前CP/M86で似たようなことやった気が・・・ 気をつけなければいけない点は、当然のことながらラベルが使えないので、 分岐とかジャンプ命令の飛び先を関数電卓片手に計算しなければならないことです。 DEBUGそのものはあまり、というかほとんど使ったこと無いので詳しい使い方は知りません。 ただ、精神的にかなり疲れることは確かですのでがんばってください。 #ところで、ちゃんとした参考資料持ってます?資料なしでやるのはかなり無謀ですよ。 #不可能とはいいませんけどね。 Unit Missing Link [98/08/01 Sat 21:16:27] [210.163.141.4] Unit Missing Link's Web page 'Rhythm' 05/04/98 〜 06/30/98 の書き込みをログページ Message Log 8 に、 07/01/98 〜 07/31/98 の書き込みをログページ Message Log 9 に移動しました。 この頃更新をさぼっていたのですが、皆様のおかげで、 Technical Assembler も 12,000 アクセスを超えることができました。感謝感謝。 現在は、 Assembler FAQs を作成中です。 掲載すべきものがありましたらご連絡くださいね! 今後とも Technical Assembler をよろしくお願いいたします!! 賭場一路 [98/08/01 Sat 09:58:08] [202.211.217.14] どうも、はじめまして、賭場一路と申します。 アセンブラをMS-DOS6.2のDEBUGで始めたいのですが、何か特に気をつけなければならないこと とか、便利な使い方などがありましたら、教えていただけませんか。 Magnesia [98/08/01 Sat 03:03:09] [210.172.112.182] 12000Get! ども、お久しぶりです、Magnesiaです。 カウンタ12000Get!しました。 それにしても、ずいぶん回りましたね。 私が最初にきた頃はまだ3分の1くらいだった気が・・・ しばらくこない間にいろいろ人も増えてるみたいだし。 これからもがんばってくださいね。 次は目標24000Get! 以上 : |
e-mail: mist@e-net.or.jp | Structured Anchor Tree Return to Menu Return to Parent Menu |
Powered by Unit Missing Link. |