![]() |
Message Log 25 | Return to Parent Menu |
Last Updated by 07/01/05(Fri) |
| |||
やっぱり 2000 年もアセンブラッ!!だねっ |
| |||
| |||
: 澤口@一升金 [2000/09/30 Sat 11:57:33] [211.4.198.32] 澤口@一升金です。 to HIRO さん: お持ちの Watcom C compiler のバージョンがわかりませんが、 v11.0 の場合は MS-C 同様に "_asm" キーワードです。 それ以前のバージョンですと、下記のように pragma 指令を使い ます。 ↓ http://www.acm.jhu.edu/~kooderi/code/c/compilers.html Watcom C はマニュアルが別売りで結構な値段ですので、こういう ところで苦労したりしますね。(しかも IDE の HELP もあっさり している) 関係ないですけど、 Watcom compiler はオープンソース化される そうです。大変、喜ばしい。 ↓ http://www.openwatcom.org/ HIRO [2000/09/26 Tue 02:11:02] [210.224.99.130] 初めまして、 今,WatocomCにて開発しているのですが asm擬似命令は使えないのでしょうか? 例えば、 asm(" 〜 "); ヘルプでは使えないようなことがかかれているのですが・・・・ もし、使いたい場合は、どうすればよろしいのでしょうか? どなかご教授下さい 澤口@一升金 [2000/09/23 Sat 21:16:28] [211.4.198.34] 澤口@一升金です。 to コンバットSUEZENさん: rom_data というのが独立セグメントだとすると、セグメント のベースが確定していないのではないですか? LABEL1 と LABEL2 は同一セグメントなのでしょうか。 エラーの出る最小限のソースを提示していただければ何か分か るかも知れません。 カワイ [2000/09/23 Sat 16:17:26] [210.166.117.138] 澤口さん、レスありがとうございました。 教えて頂いたホームページを早速調べてみたいと思います。 ちなみに、マウスのカーソルが出なくなってしまうのは、 DOSのビデオモードを101h(640×480の256色モード)にした場合です。 理由としては、マウスドライバがその解像度に対応していない ということのようです。というのも、MS-DOSの中にあるmouse.txt というファイルには、先のモードに対応しているとは書いて ありませんでした。 コンバットSUEZEN [2000/09/22 Fri 15:58:37] [211.18.247.179] >mov ax,(offset LABEL2)-(offset LABEL1) Resありがとうございます。ちょっとやってみたのですが、 コレでもうまくいきませんでした。 多分私がEXTERNを使用しているためおかしくなっていると思われます。 別のソースファイルで定義してある。 rom_data segment public screen_1: 0x00,0x00,0x00,… rom_data ends みたいなラベルをEXTERN宣言しているのですが、 extern screen_1:word こういう宣言ではいけないでしょうか? 基本的な質問かもしれませんがなにとぞよろしく。 相模隆明 [2000/09/21 Thu 14:36:30] [150.15.208.103] >mov ax,(LABEL2-LABEL1) もしかすると mov ax,(offset LABEL2)-(offset LABEL1) でなんとかなるのでは? 確認していないのでもしかすると間違ってるかも。 けんぼぉ [2000/09/21 Thu 10:34:50] [210.163.178.219] はじめまして。けんぼぉ といいます。 Linux でNASMをやっています。 じゃいさん♪ はじめまして。 > AT互換機でアセンブラを始めたいのですが、 > 良い入門書やWebページがありましたら英語でも良いので教えてください。 [NASM]フリーのアセンブラです。 私は「Where is it?」→「Hong-Kong」 からRPMパッケージを落としました。 http://www.web-sites.co.uk/nasm/ NASMのマニュアルです。(途中まで) http://guriponn.tripod.co.jp/others/japanise/nasmdoc0.html 同じくNASMのマニュアルです。(機械翻訳) http://www.bekkoame.ne.jp/~bero/docj/nasm/nasmdoc0.htm Assembly Programming Linux http://www.nk.rim.or.jp/~jun/lxasm/asm00.html プログラミングの入り口 http://www.geocities.co.jp/SiliconValley/9979/index.html アセンブラ入門 http://www.d1.dion.ne.jp/~ecb/assembler/ 少し立ち読みしただけで、あまり内容がわかりませんでしたが、基礎的な部分が 詳しく載っているみたいです。(本屋でチェックして購入を検討してください。) http://www.ohmsha.co.jp/data/books/contents/4-274-13134-3.htm 他にも過去ログやKiss-Me-quickさんのサイトにお勧めの入門書が 記載されています。 Kiss-Me-Quick http://www.annie.ne.jp/~starbow/top.html コンバットSUEZEN [2000/09/21 Thu 09:59:27] [211.18.247.179] LASMを使用しているのですが、なんか変なのです。 セグメントが64K以内なのにオーバーしているだとか、 mov ax,(LABEL2-LABEL1) みたいなデータサイズの取得ができないのです。 ほかにこんな症状に悩まされたことのある人はいませんでしょうか? じゃい [2000/09/20 Wed 20:18:13] [195.74.130.246] 書き忘れましたが、LinuxとFreeBSDを使用しております。 じゃい [2000/09/20 Wed 20:14:40] [195.74.130.246] はじめまして。 AT互換機でアセンブラを始めたいのですが、 良い入門書やWebページがありましたら英語でも良いので教えてください。 澤口@一升金 [2000/09/19 Tue 20:01:51] [211.4.198.30] 澤口@一升金です。 to カワイさん: とりあえず、VGA 参考ページ。 ↓ http://www.brackeen.com/home/vga/ http://www.cubic.org/source/archive/hardware/video/ http://text.csn.ul.ie/~darkstar/GFX/index.html http://chesworth.com/pv/graphics/denthor/index.html なぜマウスカーソルが出ないか、ですが実はよくわかりません。 DOS 用のマウスドライバは入っていて、他のモードでは正常表 示されているということでしょうか? カワイ [2000/09/12 Tue 22:59:31] [210.166.117.143] はじめまして。カワイと申します。 突然、大変場違いな質問で恐縮なのですが、最近はDOSに 関する書物も少なく、この問題に関して途方にくれています。 質問: ビデオモードの設定を640×480の256色モードで使用して いますが、このモードでマウスのカーソルを表示できません。 DOSのビデオモードのBIOSモードを640×480の256色モードにすれば (int 10h でah=00hで設定するもの) いい話だとおもうのですが、私の知る範囲の参考書では、 640×480の256色モードについては、記述していません。 もし上記の設定ができるようでしたら、教えて頂けたら幸いです。 大変長々とすいませんでした。よろしくお願いします。 翠鳥智衣(houbou) [2000/09/10 Sun 05:19:17] [210.197.122.9] Clinic of Nurse Cap. WISE MAID Project.(工事中) 既に化石なhoubouです。 ちょっとステキなページがあったのでご紹介 VESAもわずかだけどある。やっぱりVESAは海外だなぁ。 http://www.t3.rim.or.jp/~hiaoki/ 世界最悪水準なので(?)私のページは行かない方が・・・・。 更新停止中です。 Rio [2000/09/03 Sun 23:19:54] [210.130.71.169] Ichiさん、教えていただいてありがとうございます。 なるほど、COM形式はCP/M時代の名残のような物だから、 メモリを占有してしまうわけですね。 早速試してみたら、うまくいったようです。 ありがとうございました。 Ichi [2000/09/03 Sun 02:09:46] [211.13.2.251] http://www7.freeweb.ne.jp/computer/ichi98/ to Rio氏: COM形式ですよね? COM形式では、起動時に 全てのメモリがそのプロセスに割り当てられるので、 必要に応じて、DOSに返してやる必要があります。 プログラムの先頭で以下の様にします。(決り文句のようなもの) mov ah, 4ah ; 割り当てられたメモリブロックの変更 mov bx, 100 ; 必要なパラグラフ数 ; esは対象のメモリブロック。COMの場合、起動時に ; 自分自身になっているはず int 21h Rio [2000/09/02 Sat 23:51:45] [210.130.71.3] だいぶ前に一度書き込みしましたが、一応始めまして。 func 4b01hを使う練習として、以下のようなプログラムを 作ったのですが、うまく動作しません。 assume cs:code,ds:code,es:code code segment org 100h start: mov segme,ds mov ax,4b01h mov dx,offset asciz mov bx,offset pblock int 21h jc error error: mov ax,4c00h int 21h asciz db 'a:\dos\mem.exe',00h pblock dw 0000h segme dw ? of dw offset arg dd 2 dup (?) dw 3 dup (?) arg db 02h,'/p','0dh' code ends end start デバッガで調べるとALに08hが返ってきているのですが、 コンベンショナルは600KB近くあるので、メモリは 足りていると思うのですが... ひょっとしてバカな質問ですか?すいません。 Silphire [2000/09/01 Fri 12:49:45] [210.253.182.2] 相模隆明さんへ >ELF形式の実行ファイルを逆アセンブルするツールの >所在をご存知の方がありましたらお教え願いたいのです。 やはりgdbでしょう。UNIX上で動作するものです。 標準的なツールですので、man gdbでmanを見られると思います。 DOSで動作するものというものは恐らく無いと思います。 まあ、外国にはあるかもしれませんが。 推測ですが、djgppのWindows版とかなら使えるかもしれません。 それと、今思い付きましたが、nasmの逆アセンブラが nasmのパッケージに付属していましたので、それも使えるかもしれません。 推測ばかりですみません。 相模隆明 [2000/09/01 Fri 08:38:42] [150.15.208.102] ELF形式の実行ファイルを逆アセンブルするツールの 所在をご存知の方がありましたらお教え願いたいのです。 DOSで動作するものがあればありがたいのですが、 ソースがあれば自分でコンパイルします。 どうかよろしくお願いします。 SegaWa [2000/08/29 Tue 20:24:54] [210.172.70.130] gccからインラインアセンブラを使いたいのです。 Cの変数をわたす、オペランドの数の上限が10となっているらしく、 アセンブラ化したい箇所全部が、ひとつのasm("")におさまりません。 これを二つ以上に分けて書くと、コンパイラによって、 間に余計な命令を入れられたりしてしまい、困っています。 なにか、よい方法はないですか? KAZ [2000/08/21 Mon 11:59:07] [150.43.155.7] >澤口@一升金さん 遅くなって申し訳ないんですが、 お返事どうもありがとうございます。 さっそくその資料を調べてみます。 mtm [2000/08/21 Mon 06:12:33] [210.172.198.106] と思ったんですが,やはりmakeファイルから 作らないと無理かな... 試してないのに書き込みして申し訳ない. mtm [2000/08/21 Mon 06:08:42] [210.172.198.106] VC6でもカスタムビルドを使えば, COMファイルをmasmを使って作れるはずです. URL参照. http://puyon.pns.to/asm/index.html ぽくしぃ [2000/08/20 Sun 08:34:00] [210.250.249.247] 澤口@一升金さん、お返事ありがとうございました。 MAKOCAN [2000/08/19 Sat 21:41:21] [64.236.98.170] スタートドリームズ ありがとうございます 探してみます 助かりました クボッチ [2000/08/19 Sat 21:35:54] [203.139.28.193] 澤口@一升金さんありがとうございました 澤口@一升金 [2000/08/19 Sat 19:40:16] [211.4.198.30] 澤口@一升金です。 to MAKOCANさん: Microsoft のリンカは、このページの 5/10 付けの書き込みに書いて あります。lnk563.exe で検索して下さい。 あるいは、このサイトからも 16bit Linker がダウンロードできます。 ↓ http://www.users.uswest.net/~sdiggins/basm.html アセンブラよりもリンカはコンパチビリティが高いので、必ずしもマイクロ ソフト社製にこだわる必要はありません。 MAKOCAN [2000/08/19 Sat 17:58:46] [64.236.114.150] スタートドリームズ 16bitアプリです 本当に申し訳ないんですがすみませんが 16bitリンカはどこにあるかわかりますか? ほげほげ [2000/08/19 Sat 17:17:07] [165.76.207.136] 澤口@一升金さん、ありがとうございます。 参考にさせていただきます。 澤口@一升金 [2000/08/19 Sat 15:07:31] [211.4.198.31] 澤口@一升金です。 to ぼくしぃさん: VC++6.0 では COM 形式の実行ファイルは作成できません。 (というより、 DOS 用実行ファイルはそもそも作れない) VC++ で DOS 用コンパイラを作成すれば可能かもしれませんが・・・ COM はもっぱら DOS での実行ファイルですから、 DOS 用コンパイラ かアセンブラでないと生成できません。 澤口@一升金 [2000/08/19 Sat 15:02:48] [211.4.198.31] 澤口@一升金です。 to MAKOCANさん: link.exe でリンクしないと実行ファイルにはなりません。 というか、どんなプログラムを作られたのですか? DOS 用 16bit アプリなら16bit リンカが必要ですが。 澤口@一升金 [2000/08/19 Sat 11:48:58] [211.4.198.32] 澤口@一升金です。 >to ほうぼうさん: ほげほげさんでした。失礼しました。 澤口@一升金 [2000/08/19 Sat 11:44:37] [211.4.198.30] 澤口@一升金です。 to ほうぼうさん: motion blur で検索をかければそれらしいサイトはひっかかってくるのですが、 ソース付き解説となるとちょっと見あたりませんね。 image processing はアルゴリズムが先で、アセンブラ云々は次の話です。 まずは、アニメーション技法とかアルファブレンディングなどの基礎技法を マスターしましょう。 ↓ http://www.efg2.com/lab/library/Graphics.htm#Algorithms サイトや参考書では、3D グラフィックスを基礎として、ゲーム系、メガデモ系、 アニメ系を探すのがいいでしょう。 Windows ベースなら DirectX、 UNIX ベースなら OpenGL もマスターする必要 があります。 なにもかも自分で作成するのは大変ですから、コンテンツ作成そのものが目的 でしたら、Pov-ray とか Corel Draw とか、Photoshop などの解説サイトにも motion blur その他の画像生成テクニックはあるでしょう。 ぽくしぃ [2000/08/19 Sat 08:19:05] [210.250.245.160] はじめまして 質問なのですがVC++6.0で、COMファイルの作り方を教えてください(あればの話ですが) MAKOCAN [2000/08/18 Fri 15:27:18] [64.236.109.251] スタートドリームズ 初めましてMAKOCANといいます すみませんが、質問よろしいでしょうか Windows DDKの中のML.exeを使って .objファイルはできたのですが どうやって.exeファイルを作るのでしょうか? どなたかご存知ないでしょうか? ほげほげ [2000/08/17 Thu 05:47:45] [165.76.206.133] はじめまして、ほげほげです。 早速の質問で恐縮ですが、VC++のインラインアセンブラ(特に、アセンブラにこだわってはいないのですが…)で、モーションブラー効果などの画像加工をやってみたいのですが、(探し方が甘いのか)参考となる書籍や、ホームページが見当たりません。 どなたか、詳しい方がおられたら、お勧めの書籍などを教えて下さい。 澤口@一升金 [2000/08/16 Wed 19:27:03] [211.4.198.30] 澤口@一升金です。 to クボッチさん: 一番簡単な Z80 の割り込みサンプルってこんな感じですけど、 割り込みの何がどうわからないのですか。 ↓ http://www.interline.or.jp/~tomcat/z80_10.htm クボッチ(まだ初心者) [2000/08/15 Tue 18:10:58] [63.12.69.244] はじめまして Z80で割り込みがぜんぜんわかりません ホームページを検索しまくったりもしたのですが・・・ 誰か教えてください。 ひでのり [2000/08/13 Sun 08:55:55] [210.250.244.59] はじめまして、ひでのりです。 アセンブラは初心者で、今は本を買いあさってます。 この掲示板で紹介されていた 「はじめて読む〜」が書籍検索でまったくヒットしないので 疑問に思っていたところ、「初めて読む〜」と、 漢字に変換していたことに気づき、ひらがなで検索したら見事にヒット! 「はじめて読む8086」、「〜MASM]、「〜486」と、 三冊まとめて注文しちゃいました。(サ、サイフが軽い!?) とりとめのない話ですいません。 同じことで悩んでる方の助けになればと思いまして(僕だけ?) TACK [2000/08/11 Fri 19:19:12] [210.170.102.37] to 澤口@一升金 様 ありがとう御座います Windowレベルでのアセンブラ、デバッガの環境を使ったことがないので 知りませんでした。 TACK [2000/08/11 Fri 19:19:05] [210.170.102.37] to 澤口@一升金 様 ありがとう御座います Windowレベルでのアセンブラ、デバッガの環境を使ったことがないので 知りませんでした。 澤口@一升金 [2000/08/11 Fri 07:46:56] [211.4.198.32] 澤口@一升金です。 to TACKさん: XA80 は、システムロード社の Z-Vision(Z80シミュレータ)におまけで ついてくるアブソリュートアセンブラです。 to KAZさん: ステッピングモータの Z80 による制御は、総合電子出版社の本に詳し いです。 ↓ http://www.7-g.co.jp/sougou/annai.htm ソフト的にはカウンタによる任意周期の割り込みの仕方とパラレルポート への出力の仕方をマスターすれば良いのですが。 (専用のコントローラLSIとかコントロールボードは使わない場合) POTOS [2000/08/10 Thu 13:45:47] [211.6.157.179] volvox sonicさん、ありがとうございました。返信送れて申し訳ないです。 ココアラ [2000/08/09 Wed 16:32:30] [210.154.69.211] カトさん、ものすごく詳しい説明ありがとうございます。 これだけ説明していただければほかに調べることはありません。 いろいろなページを探してみたつもりなのですが、98のタイマに 関するページがほとんどで、AT互換機の情報がぜんぜん見つかり ませんでした。 ありがとうございます。 TACK [2000/08/09 Wed 13:27:46] [210.170.102.37] はじめまして、初めて投稿するTACKと申します。 KAZ さんへ ステッピングモーターとプログラムだけですか? それでは動かせません。 少なくとも ・ステッピングモータードライバ ・電源(ドライバによりますが6Vのステッピングモーターなら 多分DC12V) ・パルス発生器(プログラムでシミュレート可能) がなければ(ハード的に)動きません。 XA80 for WINDOWSがどんなソフトなのでしょうか? (Z80のシミュレーターですか?) PCからどうやってハード線をだしますか? (ボードを実装する?) パルスモーターの制御とは何をしたいのですか? そのあたりが不明ではあなたが思っている回答がえられないと思いますよ。 以上 力卜 [2000/08/09 Wed 13:11:15] [192.51.44.19] ココアラさん、こんにちは。力卜と申します。 引用に際して改行位置を変更しました。 >RTC(int 1ch)とまったく同じ周期で割り込みがかかってくるのです。 過去にも書きました([2000/05/12 Fri 12:20:50])が、 int 1chは、int 08h(インターバルタイマ割り込み)ハンドラが 発行するソフトウェア割り込みです。なので、当然同期します。 >インターバルを設定するにはどうすれば良いのでしょうか。 >ポインタで結構ですので、よろしくお願いします。 設定処理なら、Cソースになりますが、XM7(FM-7エミュレーター) V1.0L10のソースの \IBMPC\ibm_tim.c が簡潔でわかりやすいです。 "FM-7エミュレータ XM7" URL http://www.ipc-tokai.or.jp/~ytanaka/fm7/xm7.shtml から、ソースのアーカイブ xm71010s.lzh を取り出してください。 (って勝手に紹介してしまってよいのかなぁ?) PITへのカウンタ設定値は、t[s] * 1,193,180[Hz]で求めます。 t=0.002[s](2[ms])なら、2386.36で、切り捨てor四捨五入して 2386(0x0952) となります。あまり小さい値だと、Windowsの DOS窓などで正しく動作しないようなので気を付けて下さい。 もとに戻すときは、0x0000 (65536)を設定してあげます。 これで、従来の約55[ms]周期(約18.2[Hz])になります。 なお、ソース中のタイマ割り込み処理の timer_entry()は、 オリジナルの int 08hハンドラを呼び出していないので注意 してください。(ゲームみたいに種々のリソースを占有する ソフトならこれでよいでしょうが) ワード(16ビット幅の)カウンタを用意して、割り込み処理の最後に カウンタに、「PITへのカウンタ設定値」を足します。キャリーが 起きたら、「従来の int 08hベクタ」にブランチして、従来の int 08hベクタの処理や、int 1chの処理を行わせてください。 キャリーが発生しなかったときは、ソースにあるとおり、 EOIを発行して iretすればよいでしょう。 ココアラ [2000/08/09 Wed 00:13:19] [210.228.248.160] ナショナルセミコンダクタにメールで相談したらわざわざNS16550の 日本語版データシートを一日で送り届けてくれました。しかもタダ。 あまりに親切なんでびっくりしちゃいました。 ただ、澤口@一升金さんに教えていただいたところのソースなどを 参考にほとんどできちゃってたのであんまり意味はありませんでしたが・・・ しかし、またつまってしまいました。AT互換機のタイマ割り込みです。 石はどうやら98系とほぼ同じもの(上位互換?)を用いているよう なのですが、RTCとの区別がわかりません。調べたところタイマは IRQ0らしいのですが、RTC(int 1ch)とまったく同じ周期で割り込み がかかってくるのです。インターバルを設定するにはどうすれば 良いのでしょうか。ポインタで結構ですので、よろしくお願いします。 KAZ [2000/08/08 Tue 14:08:31] [150.43.30.99] アセンブラ初体験のものです。 アセンブラに限らず、プログラミング関係の知識は 全くないのですが・・・。 卒業研究で、ステッピングモータを、 Z80で制御するっていうのをやっているんですが、 とにかく何から始めていいのかわかりません。 今、手元にあるものは、 DC6VのステッピングモータとXA80 for Windowsという プログラムだけです。 その他研究室内にいろいろな機材はあるんですが、 何が何だかわからないもので・・・。 実際、ここに書き込むような内容じゃなく、 先生に相談することというのはわかっているのですが、 ただ、今、担当の先生と非常にケンカ・・・というか、 折り合いが悪い状態なので、くやしくて聞くに聞けないのです。 文法については自分でどうにか頑張って勉強するつもりです。 とにかく、「ハードウェアをプログラムで制御する」 ということが全然わかりません。 私信でもかまいませんので、よろしくお願いします。 sonic [2000/08/05 Sat 07:30:24] [210.197.78.133] to POTOSさん #pragma warning( disable : 4035 ) function ... #pragma warning( default : 4035 ) でうまくいくと思います。 ちなみに4035というのは警告番号。 アウトプットウィンドウに表示されるC4035と言う数字です。 sonic [2000/08/05 Sat 07:18:41] [210.197.78.110] 現在W2kを使っていて先ほどWindows2000DDKをDLして、 この掲示板に情報のあったパッチを当ててMLのバージョンを 上げようとしたのですが、エラーが出てしまいます。 w2k対応のパッチでなくてはならないのでしょうか? ぴょん太 [2000/08/04 Fri 23:28:15] [210.139.252.165] どうもぴょん太です。 ついこないだアレなサイトを見ていると MS-DOS 6.0 SourceCodeってのがありますた。 だれかコレについてご存知の方いらっしゃいますか? 実はもうフリーになって配られている、とか 配られていないが密かに開発者の誰かが流出させた、とか 経緯が気になりますね。 しかしそのうちWinも…(?) POTOS [2000/08/03 Thu 16:59:22] [211.6.157.179] はじめまして、POTOSといいます。 最近VCのインラインアセンブラで質問させていただきます。 通常関数の戻り値はeaxレジスタに格納するのが掟だそうですが、 実際に関数の戻り値を記述しないとコンパイル時に警告が出ます。 動作的には問題ないのですが、やはり警告は気分が悪いので戻り値 を返したいと考えています。警告レベルを下げる以外の解決方法が あれば教えてください。一応以下のようなコードで今のところ誤魔化 しています。よろしくお願いします。 int add(int x, int y) { int result; _asm { mov eax, dword ptr [x] add eax, dword ptr [y] mov dword ptr [result], eax } return result; //結果を返す } とも [2000/08/01 Tue 16:00:52] [210.238.31.236] to 澤口@一升金さん どうもありがとうございます。 何となく、pushaと同じかなとは思っていたのですけど。 これでようやく分かりました。 Silphire [2000/08/01 Tue 14:13:36] [210.253.182.2] ども、Silphireです。 少し前になりますが、 >Windows98SEのDOS窓、MS-DOSモードともに7.10でした。 ああ、NTはそうなんですか。初めて知りました。 どうも、勉強になりました。ありがとうございます。 澤口@一升金 [2000/08/01 Tue 00:47:28] [210.190.4.131] 澤口@一升金です。 to ともさん: インテルニーモニックで言うところの pusha,popa すなわち 全レジスタのスタック待避、復帰です。 その資料は NEC 表記で書かれていたのでしょう。 ちなみに、 V series のドキュメントはここにあります。 ↓ http://www.ic.nec.co.jp/micro/ods/jpn/upgkit/16V/doclist.html Daisuke [2000/07/31 Mon 18:45:27] [210.255.7.1] to こたつみかんさん Win98 DDKをダウンロードしたならMASMは ML.EXE という ファイル名ではいっているはずです。 あと ML.ERR も必要です。 こたつみかん [2000/07/31 Mon 17:19:27] [133.205.99.179] はじめましてこんにちわ。 アセンブリをはじめようと何かと下調べしています。 やっぱりMASMかなと考え、また無料で落とせると聞きDDKを落としてインストールしてみたところ、MASM.EXEというのがあると予想していましたが見当たりませんでした。 いったい私は正しいものをダウンロードできたのでしょうか。 このようなくだらない質問をして立腹されたのならば申し訳ありません。 とも [2000/07/31 Mon 07:59:26] [210.238.31.236] V30系の表記で push R, pop R とかあるようですが、これは一体何をしてるのでしょう? 突然の質問ですいません。 昔のアセンブラの本を見てたら出てきたので・・・。 澤口@一升金 [2000/07/30 Sun 23:42:59] [210.190.4.131] 澤口@一升金です。 to Kazuさん: 紹介したページに 32bit 逆アセンブラもありますから、解析は できるでしょう。ただ、16bit アプリと違って、32bit アプリ は Win API の固まりです。逆アセンブルでは実行時アドレスが 数値としてわかるだけですから、どこでどの API を呼び出して いるかは、そうすらすらとは分かりません。 念のため付け加えて置きますと、商用ソフトではライセンス条項 にたいがいリバースエンジニアリングの禁止を謳っているはずで す。 つまり、原則的に解析結果を Web で発表したり、他人に教えた りすることはできません。ご注意下さい。 Kazu [2000/07/29 Sat 22:54:45] [210.255.146.90] 澤口@一升金さん ありがとうございます。 わかるよーな、わからんよーな・・とりあえず勉強してみます。 ただ、最近のアプリは32BITがほとんどですよね?? 澤口@一升金 [2000/07/28 Fri 02:14:51] [210.190.4.131] 澤口@一升金です。 to kazu さん: 普通は disassembler というツールを使います。 ↓ http://archive.csee.uq.edu.au/~csmweb/decompilation/disasm.html ただ、実際には動きを実際にトレースしないとほんとの コードの動きは把握しきれないことが多いです。 特に Windows アプリの場合は EXE ファイル単独で動作 していることは稀で、 DLL がどーたらとか OLE がこー たらと言う話になるので、 debugger とか ICE とかいう ツールが必要になるのですが、実用になるものは、趣味で 購入できる値段ではありませんね。 強いてフリーのやつ、といえばやはり Turbo Debugger かな。 ↓ http://www.borland.com/bcppbuilder/turbodebugger/ とりあえず、16bit コード用のフリーの disassembler とか debugger をそろえてトレーニングすることをお勧め します。 ニーモニックを覚えるだけじゃ駄目で、OS のシステムコー ルや BIOS ファンクション、インタラプトリストにも一通り 目を通しておく必要があります。 cocoala [2000/07/27 Thu 23:59:34] [210.228.248.106] 澤口@一升金さん、ありがとうございました。 解読してみます。 ひろ [2000/07/27 Thu 23:06:24] [210.155.193.139] アドバイスをくださった皆さんどうもありがとうございます。 to Silphireさん >DOSのバージョンを調べてみてはいかがでしょうか。 INT 21h(AH=30h)のことですよね? Windows98SEのDOS窓、MS-DOSモードともに7.10でした。 Windows2000は5.00のようです。NT4.0は今手元に無くてわからないです。 OSのバージョンチェック + INT 2FhのWindows95/98判定でやってやれ ないことはなさそうですが、いろいろなOSのバージョンを調べる必要 があるので、少し大変そうですね。 toカトさん >NTや2000にしか存在しない環境変数があれば、NT or 2000上で >動作させたとしてエラーを出します。 環境変数ですか、まったく思いつきませんでした。検討してみます。 >別の方法として、Win16/32アプリを作成できるのなら、GUIアプリで >警告ダイアログを開くだけのものを作り、目的のDOSアプリを >STUB.EXEとしてlinkする方法も使えるかも知れません。 なるほどSTUBを使う方法ですか、これも検討してみます。 kazu [2000/07/27 Thu 22:43:57] [210.255.146.90] おそらくこのページに書きこするような内容では無いと思うのですが・・・ 初心者すぎる、質問でごめんなさい。 マシン語?っていうんですか、ダンパーでEXEファイルとかダンプすると、表示される16進数の魔法の記号たちは・・・あれを読みたいんです。VBやC++なら、超入門編ぐらいならよめるんですが、、16進数の記号君は何を書いてるのかさっぱりわかりません・・・噂ではアセンブリ言語にやくして どーのこーの・・・アセンブリ言語の本は買って読み漁りました、JMPで指定のアドレスに飛ぶとかとばんとか・・・それはわかったが、じゃあ16進数をどーやってアセンブルすればいいの?? ハンドアセンブルちゅうやつをやろうと思ったが対応表?ちゅうんすか?あれがない・・・ ちなみに、OSはWIN2000で、CPUがPV この二つが解ってればあとは、それ用の対応表?ってやつがあると時間かかってもなんとかなるんですよね??どなたか、そんな事が解るHP教えて下さいーーーお願いします。 力卜 [2000/07/27 Thu 19:34:18] [192.51.44.19] ひろさん。 全然エレガントじゃないですけど、次の方法はどうでしょうか? - まず、WindowsNT or 2000上で動作しているかの判定します。 NTや2000にしか存在しない環境変数があれば、NT or 2000上で 動作させたとしてエラーを出します。(例: SYSTEMROOT, PATHEXT) - 次に、Windows95 or 98 (or 3.1?)上のプロテクトモード上で 動作しているか否かの判定に、これまでの INT 2Fh または、 環境変数 windir(小文字)が存在するかを使います。 別の方法として、Win16/32アプリを作成できるのなら、GUIアプリで 警告ダイアログを開くだけのものを作り、目的のDOSアプリを STUB.EXEとしてlinkする方法も使えるかも知れません。 (この方法だとWin3.1ではDOSプロンプトから実行できちゃうのかな?) …最初は、環境変数 windir(小文字)が存在すれば、すべての場合で WindowsのDOS窓だと判断できると思ったのですが、NT or 2000 上だと、DOSアプリからはwindir環境変数を見ることができない みたいでした(残念)。 オマケですが、DOSの Versionを int 21h で調べる方法だと、 Win95/98をCommand Prompt Onlyで(純粋なDOSとして)起動しても、 Version が 7.x として返ってきてしまいました。 澤口@一升金 [2000/07/27 Thu 17:09:54] [210.190.4.131] 澤口@一升金です。 to Silphireさん: WinNT の DOS バージョンは 5.5 くらいじゃなかったかな。 あと、DR-DOS とか PC-DOS なら 7.0 はあり得ますね。 (これはほとんど言いがかりか) こさか [2000/07/27 Thu 17:09:08] [203.179.164.62] こさかでーす こさか [2000/07/27 Thu 17:08:58] [203.179.164.62] こさかでーす こさか [2000/07/27 Thu 17:08:42] [203.179.164.62] こさかでーす こさか [2000/07/27 Thu 17:08:10] [203.179.164.62] こさかでーす こさか [2000/07/27 Thu 17:07:09] [203.179.164.62] こさでーす Silphire [2000/07/27 Thu 13:24:28] [210.253.182.2] to ひろさん: DOSのバージョンを調べてみてはいかがでしょうか。 DOSのバージョンが7.0以上ならばWindowsなはずです。 ただ、Windows 3.1以前の場合はこれは使えませんので、 その時はINT 2Fhを使って下さい。 私は今学校にいて、ファンクション番号が分かりませんので、(^^;) そのあたりはInterrupt Listで調べて下さい。 申し訳ありません。 ただ、INT 21hである事には違いありません。 ひろ [2000/07/26 Wed 22:28:25] [210.155.193.252] 皆さん今日は DOS用のプログラムを書いているのですが、このプログラムを WindowsのDOS窓から実行されたくないので、WindowsのDOS窓 から実行された場合はエラーメッセージを表示して終了する ような処理にしようと考えています。 そこで質問なのですが、プログラムが実行された環境が純粋な DOS(WindowsのMS-DOSモード含む)なのか、それともDOS窓で実行 されているのかプログラム内で確かめる方法は無いでしょうか? Windows95/98だけならINT 2Fh(AX = 160Ah)で判別可能なのです が、WindowsNT/2000だとこの方法で判別できないようですので。 判別方法をご存知の方がいましたら是非ともおしえてください 澤口@一升金 [2000/07/26 Wed 22:25:05] [210.190.4.131] 澤口@一升金です。 to りくりさん: 680X0 の詳細資料はここにあります。 ↓ http://ebus.mot-sps.com/ProdCat/sg/0,1251,M934310184622,00.html 澤口@一升金 [2000/07/26 Wed 22:00:57] [210.190.4.131] 澤口@一升金です。 to makoto さん: そのものズバリの団体がありました。 ↓ http://www.linuxassembly.org/ 澤口@一升金 [2000/07/26 Wed 21:32:51] [210.190.4.131] 澤口@一升金です。 to ココアラさん: ここじゃだめですか? ↓ http://www.simtel.net/simtel.net/msdos/io_utils.html ココアラ [2000/07/26 Wed 18:54:02] [210.154.69.211] 今AT互換機でRS232C通信のコードを書いているのですが、 送信してもラインモニタに表示されず、初期化すらうまくいきません。 どこかに参考になるサンプルソースはないでしょうか。 C、C++、アセンブラのいずれでも大丈夫です。 宜しくお願いします。 ほくと [2000/07/24 Mon 23:37:47] [210.229.21.145] りくりさん >だれか〜僕にHD68000の参考になる本を教えて下さい。 >どうしても68000が使いたいの〜 >68020の本もあったら教えて下さいお待ちしてます。 以前、本屋でMC68030、MC68040、MC68060のユーザーズマニュアル を見たことがあります。その本の発売元はCQ出版となっていたので 問い合わせてみてはいかがでしょうか。 恐らく、68000のユーザーズマニュアルも取り扱ってると思います。 Daisuke [2000/07/24 Mon 19:30:58] [210.255.9.82] to makotoさん >アセンブラのプログラムはどうやって実行すればよいのでしょうか? アセンブラのプログラムは基本的に Linux であれば GAS か NASM でプログラムを組み、オブジェクトファイルとしてC言語等に リンクするのが一般的です。 私の場合はアセンブラはDOSでしか使いませんので 詳しくは言えません。(というかあまりよくわからない) 個人的にはアセンブラ環境ではDOSが一番楽だと思います。 ただ最近はDOSが売ってないのでFreeDOSやDR-DOS等で NASM・Arrow ASMを使って勉強するといいと思いますよ。 アセンブラの資料はMASM等の本でいいと思います。 フリーソフトのソースを読むのもとても勉強になりますよ。 makoto [2000/07/24 Mon 16:28:33] [210.161.231.242] はじめまして、makotoと申します。これから コンピュータの構造を勉強しようと思い、アセンブラ言語 を勉強しようとおもっているのですが、アセンブラのプログラムは どうやって実行すればよいのでしょうか?今自宅のPCはDOS/V機 でLinuxが入っています。後、皆さんはどうやってアセンブラの知識 を得ることができたのでしょうか?本屋などで見てみるとZ80やMASM などのかなり昔の文献しかなく新しく出版されたものが見当たりません。 Silphire [2000/07/24 Mon 13:31:48] [210.253.182.2] 自己レスです。 >質問なのですが、NASMでは、 >分割アセンブルをしてCOMファイルを作ることはできないのでしょうか? >どうもマニュアルを読むだけだと、そのようなことはできないようにおもえます。 >どなたかご教授下さい。 見事にマニュアルにありました。 Chapter 7にありました。 お騒がせしてすみません。 >1セクタの容量をどうやって知るのかわからなかったのですが、 1セクタの容量を知るには、IPL(BPBだったか?)に書いてあります。 (http://www.vector.co.jp/soft/data/hardware/se016321.html) のIPLの欄を参考にしてください。 PC-98シリーズ用の資料ですが、IPL部分は98もATも同じだったと思いますので、 一応参考になるとは思います。 私自身もこれでATのIPL部を解析しました。 しかし、ATのセクタ中のバイト数は、 10年近く前のディスクをサポートするつもりでないなら、 カトさんのおっしゃるとおりに、 1セクタ=512バイトと仮定してよいと思います。 澤口@一升金 [2000/07/22 Sat 12:10:31] [210.190.4.131] 澤口@一升金です。 to cojicoji さん: PC/AT と PC98 の違いですが、 ・割り込みコントローラ 8259A の接続と割り込み種別 ・グラフィックスコントローラと VRAM アドレス ・漢字の表示方法 ・リアルタイムクロック ・DMA の使い方 ・カウンタの使い方 ・シリアルポート ・パラレルポート ・マウス制御 ・キーボード制御 ・ディスク制御 など、直接 I/O に関する部分はほとんど異なるので、PC/AT マシン のプログラムにしか興味がないとなると、PC98 の参考書はあまり役 には立たないでしょう。要するに PC/AT 用のソースでそのまま PC98 に使える、あるいはその逆のケースは I/O が絡む限りはほとんど無い わけです。 割り込みコントローラ、カウンタタイマ、DMA コントローラ、 FDC は LSI が同じですから、LSI そのものの初期化や制御一般を幅広く押さえる 役には立つかもしれません。 規約のあるものについてはそのまま使えますが。 たとえば ・EMS,XMS,VCPI,DPMI ・ASPI ・DOS 標準ファンクション など。 ただ、これは別に PC98 が古いわけではないです。DOS レベルでは PC/AT の方が設計は古いです。単に「ハードが違う」という話ですね。 アセンブラプログラマのスキルというのは、ハードスペックを理解して 最大性能を引き出すことにつきるわけで、古いも新しいもないです。 でなければ、いまだに Z80 ボードとか 8051 ボードなどといった、 30 年も前に設計された CPU が使われていることが説明つきませんね。 日立の H8 コアも 20年くらい立ってますし、 SH も 10年以上になります ね。 FD からのブートシーケンスは 8bit 時代の技術をそのまま引きずって いますから、アーキテクチャとしては 40年前の仕様です。 Win98 でならアセンブラプログラムはできるけど、 PC98 ではどこから 手を着けていいかわからない、というのはフランス料理はできるけど ご飯の炊き方はわからない、というのと同じで、アセンブラプログラマ としてはあまり格好いいものではありません。 いずれにせよ、PC/AT はいくら世界的なシェアがあるといっても、ロー カルな技術の一つに過ぎないわけですから、いろいろなハードアーキテ クチャに挑戦するに越したことはないと思います。 もちろん、PC98 でなくても、 Palm とか Zaurus でもいいわけですが、 ツールや本体の値段、アーキテクチャの違いを考えると、 PC98 が 別アーキテクチャのトレーニングにはもっとも敷居が低いでしょう。( 日本では、という条件付きで) cojicoji [2000/07/21 Fri 04:12:28] [202.211.170.121] cojicojiです。 >カトさん >もしint 13hを解析するのなら、DMAや、FDC(intel 8727 or >NEC μPD765A/745/7265)の知識が必要になりそうです。 >昔、PC-8801シリーズやPC-9801シリーズを使っていたヘビーな >人に聞くといろいろ教えてもらえるかも知れません。 偶然1週間前に図書館で "DMAとCプログラミング 工学図書" という本を借りてきてました。 内容はカトさんの話にあるμPD765Aや8237Aの操作法などが 詳しく書いてあるようです。 書いてあるようですっていうのは まだあまり読んでないからなんですが、 というのも、この本にはPC-9800という 私が本を見るとき避けている言葉がのっているからです。 わたしのようなパソコン暦の浅い(win98からの)人から見ると なんとなく、PC-9800は古いパソコンで、そのテクニックは そのまま今のパソコンではつかえないのではないか? という偏見があります。 そこで皆さんに聞きたいのですが、 フロッピーがBドライブにあるとか Cバスってのがあるなどとは聞いた事があるのですが、 この部分は同じだとか違うだとか、 PC-9800の本を読むときに気をつけたほうがよい点には どのような事があるのでしょうか? cojicoji [2000/07/21 Fri 03:18:40] [202.211.170.62] cojicojiです。 >アンネさん bochsのエラーがよくわからなくて困っています。 私の場合、はじめてbochs.exeを起動したとき 動かなくて、.outファイルの情報をみると hrddrv.imgがopenできないということだったので makeimge.exeでイメージファイルを作りました。 そして、あらためてbochs.exeを実行すると 瞬間(0.5sぐらい)、画面はでてくるのですがやはり起動せず。 (この時点でmakeimageでfloppy.imgも作っています。) .outファイルをみてみると 9443 *** io read 3c5 case 1: sequencer clocking mode 9974 vga: io write: 3cf: reg 05: value = 10h 26439 *** io read 3c5 case 1: sequencer clocking mode 134384 floppy_command: attempt to read/write sector 1, sectors/track=0 bochs: panic, prefetch: EIP > CS.limit 138660 Last time is 964114681 とのことでした。 ん、ということは、つまり起動プログラムがないってこと? >イメージファイルをfloppy.imgにリネームして の意味をもう一回かんがえて 自作bootimageをfloppy.imgにリネームし bochsファルダに持ってきたら動きました。 当たり前のことをやってないだけでした。 というわけでこの文書いてるうちにできちゃいました。 これ、かなり面白いかつ便利なプログラムですね。 いままでの再起動連発が馬鹿らしくなりました。 翠鳥智衣(houbou) [2000/07/21 Fri 02:38:15] [210.197.123.123] Clinic of Nurse Cap.(なぞなるクリニック) 何故houbouが・・・。(とさておき) > りくりんさん > だれか〜僕にHD68000の参考になる本を教えて下さい。 本ではないですが、ftp://x2ftp.oulu.fi/のAmigaディレクトリ あたりに資料があったと思います。(あとベクターか日立かな) それとどこかに68000のシミュレーターがあったはずです。 simtelnetでしたかな。 りくりん [2000/07/21 Fri 01:54:17] [198.81.5.130] う〜ん はじめまして〜 だれか〜僕にHD68000の参考になる本を教えて下さい。 技術評論社には一冊あってけど、A5サイズの簡単な本が欲しい。 どうしても68000が使いたいの〜 (・_・)......ン?それと、もうひとつ! 68020の本もあったら教えて下さいお待ちしてます。 あ〜だれか返事くれるのかな〜・・・・・ アンネ [2000/07/21 Fri 00:36:19] [210.234.14.194] > cojicoji さん > bochsダウンロードしました。ちょっと動かし方がわからなくて > まだ、快適な環境を得られていません。 > virtual discはつくってみたのですが > どう実行したらよいかわかっていない状態です。 イメージファイルをfloppy.imgにリネームして bochsのディレクトリに入れてbochs.exeを実行するのが いちばん簡単です。 別のディレクトリで実行する場合はbochsrcをコピーして 中身をちょっといじります。 (biosファイルのパスを絶対パスにとか) : |
e-mail: mist@e-net.or.jp | Structured Anchor Tree Return to Menu Return to Parent Menu |
Powered by Unit Missing Link. |