![]() |
Message Log 18 | Return to Parent Menu |
Last Updated by 07/01/05(Fri) |
| |||
PC-98 ってすきだなぁ |
| |||
| |||
: たか [1999/12/27 Mon 13:51:44] [210.166.9.1] 24800ヒット 久し振りにきりのいいカウンタ見ました。 そうなんですか、本となって売っているんですね。 Coppermineなどのハードウェア特性は英語で見るしかないかも。 私はC/C++大好きですが、初心者の陥りやすい失敗を聞いて いると、「アセンブラ知っていたら簡単にわかることなのに」と いう質問がとても多いです。 事実、C/C++のデバッグは、アセンブラレベルのデバッグで す。ローレベル画面はこれからも絶対必須です。もちろんアセン ブリ出力はたいていのコンパイラに備わっています。この意味を よく考えてみましょう。 歩野零一 [1999/12/26 Sun 20:51:56] [210.251.20.85] >http://www.intel.co.jp/jp/developer/design/pentiumiii/manuals/index.htm 秋葉のザコンでこれらの日本語マニュアルが1500円〜で売られていました。 どうも内容は、PDFそのままの印刷のようです。 CQ出版から出ていますね。 たか [1999/12/24 Fri 09:54:59] [210.166.9.1] あっ、書き忘れましたが、日本語訳もあります。英語の原本の方が 最新版らしいのですが。 アセンブラの最適化マニュアルまであって感激!! 私はこれをD/Lした後、C++のローレベルデバッグ画面とにら めっこしながら、コンパイラの最適化能力を推し量ったりしていま す。最近のC/C++コンパイラは凄い性能を持っていますね。 たか [1999/12/24 Fri 09:46:15] [210.166.9.2] もうUPされていたらごめんなさい。 次のアドレスからPDFファイルをD/Lしてください。x86系の CPU大好きな方は絶対得します!(ちょっと大きなファイルですが) http://www.intel.co.jp/jp/developer/design/pentiumiii/manuals/index.htm houbou [1999/12/22 Wed 01:12:49] [210.172.148.32] どうもhoubouです。 閲覧して感じたのですがWindows2000 DDK RC3はWin98DDKの マイナーアップデートにNT4.0DDKのツール/ライブラリを くっつけたような出来ですがこれからアセンブラをする人には 関係はないはずです。 使い道としては98DDKの付属ツールをちょいとアップデートする位です。 ML.EXE,LINK.EXEはML614.EXEをダウンしてアップデートしましょう。 Win98DDKと比較して幾つかなくなっているツールもあるのでご注意を。 EXE2BIN(ALINKがあるから不要),MAPSYM.EXE,MC.EXE,RC.EXE(旧版)などなど。 C/C++コンパイラが付属していますがどうやって使うかは不明 ちなみにそのままでは動作しません。(無理矢理動作させることも可能) Windows95でもインストールできますので心配なく。 ところで・・・・。 LINK.EXE -lib でライブラリアンになるって知ってましたか?(ALIBがあるので無意味) 総評 : 色々整頓したようですがまだまだですね。 DDKの構築環境をを総て入手してしまった。 houbouでした。 環境の方はカスタマイズしてenigmaを設定して完成です。 houbou [1999/12/21 Tue 05:26:58] [210.172.148.37] Infomation Website どもまたまたhoubouです。 すごい所を見つけたので書いておきます。 > http://www.csl.sony.co.jp/person/fnami.j.html (趣味のページ→アセンブラ) アセンブラでの高速化手法が掲載されているサイトです。 ・・・DDKが欲しいという方のために・・・。 > http://www.microsoft.com/hwdev/ddk/ > http://asmjournal.freeservers.com/ > ftp.microsoft.com/softlib/mslfiles/ を書いておきます。ご活用下さい。 houbou ...ed houbou [1999/12/21 Tue 05:12:01] [210.172.148.37] Re:Download NOT SoftIce どもhoubouです。今徹夜してWindows2000DDK RC3を ダウンし終えたところです。(後でレポートしますね。 NT4.0DDKとWin98fullsetは最悪だった。) > SoftIceをDL出来る所を知りませんか? > 知っている人がいたら教えてください。 すみません。知らないですがwin32バイナリのデバッガを お探しならGoVest!というのがあります。 > http://ourworld.compuserve.com/homepages/atrimborn/ SoftIceは市販ソフトだった気が・・・。 (↑実はよく知らないのであてにしないように。) houbouでした。 vash [1999/12/20 Mon 04:28:06] [210.154.214.117] SoftIceをDL出来る所を知りませんか? 知っている人がいたら教えてください。 birthday [1999/12/19 Sun 06:19:21] [210.234.48.208] こん××は! みなさん、初めましてです。 昨日書店に出掛けまして、 「はじめて読む8086」 「はじめて読む486」 「CPU知識革命」←最近のPen.IIIの説明載ってる 、の3冊を購入してきました。 8086→486→CPU知識の順で読んでリファレンス でもHTMLで書きながら勉強していきたいと思います。 いろいろと質問させていただくかもしれませんので、 その際よろしくお願いします。 アセンブラHP作ったらお知らせします! J.Naka [1999/12/18 Sat 19:26:33] [210.132.31.164] Object-Oriented 私の音は、 MASMは、えむえーえすえむ。 TASMは、てぃーえーえすえむ。 なはっ、棒読みでし。 ところで、ここの過去ログ(って最近のですが)を見てると、windowsでアセンブラ、ってのがwin95でた当時よりはかなり敷居が低くなった感じするのですが、私のような、英語駄目なアマチュアでもいじれますか? ココアラ [1999/12/15 Wed 23:42:21] [210.228.248.129] 昔から思っていたことを今日ふと思い出しました。 みなさん、MASMやTASMをどのように読まれているのでしょうか? 正式な読み方は開発関係者以外知らないのかもしれませんが・・・ 僕の周辺には、「ますむ」派と「えむあすむ」派の 人間がいるようです。 ちなみに、僕はTASMを「たすむ」と呼んでいたので、MASMも 同様に「ますむ」でした。 houbou [1999/12/13 Mon 23:23:32] [210.172.148.30] 資料とか どうもhoubouです。 どうやら資料不足でお困りの方が多いようですね。 そこでx2ftp,simtelnet,garbo等のftpサイトを 巡回してみてはどうでしょうか? ということでsimtel,x2ftp等にミラーをしている ftp://ftp.cdrom.com/ はいかがでしょうか?(国内のx2ftpミラーはいずこ?) Norton GuideやUGPRG.ZIPは持っていると良い かもしれません。(英語でAT互換機用ですがかなり詳しい) それとFAQ集を作成した方が良いのでは? 似たような質問が多いですし。 NT4.0DDKは落とすと大損します。(ML Ver.6.11d) やっぱり98DDKのSegmentがbestです。 fullはやめておきましょう。 #統合環境エディタとしてenigmaが良さげですよ。 > http://www.enigma-uk.freeserve.co.uk/ それと、 > http://service.software.ibm.com/ddk/ からOS/2DDK(MASM6.0フルセット)が入手できます。 ヘルプファイルだけでも価値があると思います。(英語) batchで作成していたプログラムが完成したので もうそろアセンブラを始めようかと考えているhoubouでした。 そのプログラムが欲しい方は来年にでもPMD-BBSにアップ しておきます。 J.Naka [1999/12/12 Sun 03:30:47] [210.132.27.70] 「Object-Oriented」 。。。だったかな(^^; こんにちは!初めまして! 超嬉しいです。「忘れ去れしアセンブラー」の掲示板! FGALのとあるフォーラムをとある事情て退会してから、久しぶり(数年振り!)に見る、「アセンブラー」の文字列! いっやっほーい!(笑) 自分はアマチュアなので、昨今のwindowsプログラムにはついていけません、だから、近状は、糞面白くないHTML関連でお茶を濁しています。、、、しかし、今でも思考パターンはCPU&メモリです。高級言語(C/C++,perlなど)のトリッキーなメモリアクセス表現にはついていけません!(笑)(単にお馬鹿だけなのですが(TT))。一番痛いのは、英語が駄目!ということ、、、致命的(TT) あっ、すいません、愚痴のオンパレードで(^^; これから、ちょくちょくよらしてもらいますね(_ _) #あっ自ホームページは工事中で、アクセスカウンターだけが動作しています。コンテンツにはアクセスできませんので、よろしく。 #ちなみに、最近出入りしている工房系掲示板は、「とほほWWW−ラウンジ」です。HP制作が中心です。(TT)つまらん(笑) arm [1999/12/08 Wed 22:35:25] [163.139.59.54] みんくさん: >プログラム(COM)をMASM6(DDK)でアセンブルしたら、 >DUMP.ASM(112) : error A2006: undefined symbol : FALSE >または TRUE のエラーだけがたくさんでてきました。 MASM6では、プロシージャの内部はローカルラベル扱いで隠されるからです。 ml /Zm isascii.asm /link /TYNY という風に /Zm をつけるとMASM5.1互換になるのでコンパイルできます。 プログラムの最初に option noscoped または option m510 と書くか、ラベル名を TRUE:: というようにコロン二つで宣言するという方法もあります。 (それぞれ、グローバルスコープ、MASM5.1互換、グローバルラベル) 歩野零一 [1999/12/08 Wed 18:08:48] [210.251.11.109] ココアラ様 レスありがとうございます。 >引数を取り出すためのベースポインタだから、では? うーん。多分そうですよね。殆ど自分で答えを出していた? のか…。 NASMの日本語訳マニュアルがあった!と思ったら、翻訳 ソフトによるバリバリの直訳でした。 いいPentiumのアセンブラ教本はないかなぁ。 みんく [1999/12/08 Wed 16:15:31] [133.98.27.113] ジャンプ 澤口@大崎さんありがとうございました。 またまた初歩的な質問です。「初めて読む8086」の漢字ダンプ プログラム(COM)をMASM6(DDK)でアセンブルしたら、 DUMP.ASM(112) : error A2006: undefined symbol : FALSE または TRUE のエラーだけがたくさんでてきました。 例 ISASCII PROC NEAR PUBLIC CMP AL,20H JB FALSE CMP AL,7EH JA FALSE TRUE: OR AH,0FFH RET FALSE: CMP AL,AL RET ISASCII ENDP 上のラベルの所に他の PROCの所から飛んでいるんですが、 なぜでしょうか?。MASM3では正常です。前方ジャンプはしてません。 澤口@大崎 [1999/12/07 Tue 20:29:43] [210.141.243.66] 澤口@大崎です。 to みんくさん: MASM コンパチの商用ソフトなら日本語マニュアルがついて くると思いますが。 ↓ http://www.tamasoft.co.jp/index.html あ、Windows Help 形式のマニュアルがダウンロード可能 と書いてますね。 みんく [1999/12/07 Tue 16:36:25] [133.98.27.113] マニュアル MASM6(DDK)のマニュアルがある場所について知っている方、 教えてください。 環境変数、パスはもちろん、各種命令についてのっているもの を探しています。(詳しく書かれているもの) 286以上の命令を使いたいんですが、MASM3(古いと思う。)しか 持っていません。ほかのアセンブラに乗り換えようとしたんですが、 自分ではどうもMASMがいいみたいで。 ココアラ [1999/12/07 Tue 03:37:11] [210.228.248.60] 断っておきますが、僕はLinuxを触ったことはありません。 Solarisを使っています(学校で)。 >●問1: > ebpの内容が退避された後、スタックポインタの値が代入 >されている理由が良くわかりません。このようなコーディング >には、なにか特別な理由があるのでしょうか? 引数を取り出すためのベースポインタだから、では? スタックポインタは動いてしまうから使えないので・・・ >#x68kを弄くっていたときですが、A6レジスタをスタックに >#退避したのち、A6にスタックの領域のアドレスをmovし、 >#A6を自動変数のインデックスとして使用するコードをよく >#見ました。これと同じことなのでしょうか? こちらはまったく無知なのですが、おそらく 同じではないでしょうか。 インデックスって言うのかな? ベースと言った方がいいのかも。 >●問2: >なぜebpのみを退避する必要があるのでしょうか。 > 他のレジスタは退避することなく書き換えても問題ないの > でしょうか? これは確か処理系依存だったような気がしますが、汎用レジスタは 破壊可能です。bpやsp、セグメントレジスタ等は値を保持しなけれ ばなりません。 #コンパイラが汎用レジスタを破壊されてもいいようなコードを #吐きます。スタックに待避するわけではなく、ただ使っていない #だけです(確かTurbo Cでは)。 >●問3: > プロテクトモードというよりPentiumのアセンブラ習得に > 役立つ書籍やWebサイトをご存知でしたらポインタで結構 > ですのでご教授ねがえないでしょうか。 大学入って半年、まったくアセンブラに触れていない・・・ のでこちらは分かりません。僕の中ではアセンブラは486までです。 歩野零一 [1999/12/06 Mon 19:57:23] [210.251.7.145] intelアセンブラ初心者の歩野零一と申します。初めまして。 過去ログを一通り検索しましたが、該当するような記事が 見当たりませんでしたので、お尋ねしたいと思います。 linuxにおいて、仮に次のようなCの関数があったとすると、 #とくに意味のない関数です。 void foo(register int a, register int b){ register int c; c = a + b; } gccの出力は、次のようになります。(gcc -S foo.c) (前略) foo: pushl %ebp movl %esp,%ebp movl 8(%ebp),%eax movl 12(%ebp),%edx leal (%edx,%eax),%ecx .L1: movl %ebp,%esp popl %ebp ret (後略) ●問1: ebpの内容が退避された後、スタックポインタの値が代入 されている理由が良くわかりません。このようなコーディング には、なにか特別な理由があるのでしょうか? #x68kを弄くっていたときですが、A6レジスタをスタックに #退避したのち、A6にスタックの領域のアドレスをmovし、 #A6を自動変数のインデックスとして使用するコードをよく #見ました。これと同じことなのでしょうか? ●問2: なぜebpのみを退避する必要があるのでしょうか。 他のレジスタは退避することなく書き換えても問題ないの でしょうか? ●問3: プロテクトモードというよりPentiumのアセンブラ習得に 役立つ書籍やWebサイトをご存知でしたらポインタで結構 ですのでご教授ねがえないでしょうか。 以上よろしくお願いいたします。 BDC [1999/12/05 Sun 18:47:32] [133.100.201.51] 最近アセンブラに興味をもち、本を読んだり、ネットで アセンブラのページを見たりしているのですが、DOSは多い けれどunixやlinuxでのアセンブラ解説で初心者でもよし! というところが見つからないのです。 本でもHPでもどこかいいのを知っている方教えてください。 葵 [1999/11/28 Sun 15:02:17] [216.101.46.187] Arrowsoft? そいや、そんなところも・・・ ArrowSoft http://members.xoom.com/arrowsite/ http://www.arrowsoft.com/ FreeCompiler http://www.thaidev.com/html/winapp/compiler.htm http://www.users.uswest.net/~sdiggins/basm.html http://www2.dgsys.com/%7Eraymoon/faq/gen2.html Link http://www.faqs.org/faqs/assembly-language/x86/general/part3/section-1.html arm [1999/11/26 Fri 23:00:25] [163.139.59.25] CQ出版社 (インターフェース、トラ技) shouichiさん: >Pentium以降のバスに関してはまったく知識がありません。 >書籍などで公開されているものがあれば教えてください。 雑誌ですが、 インターフェース1998年4月号「PC関連インターフェース規格のすべて」 トランジスタ技術1999年9月号「PCのハードウェア徹底研究」 は、持っていて損はないと思います。 前者はPCIバス、ISAバス、シリアル、パラレルなどが、 後者はマザーボードのブロック図と各機能について載っています。 雑誌のいいところは広く概要がわかるのと、安いです。 あと参考文献を見れば、何に載っているのかわかるのでオトクです。 崇 [1999/11/26 Fri 10:29:44] [210.225.66.168] 99 BASIC インタプリタ はじめまして。Info Nave でいろいろサーチをかけていたら このページを見付けました。 アセンブラを一生懸命やるページがあるなんて、とても貴重 だし、面白いし、驚いてしまいました。 で、自分の作った Win 用 BASIC が、アセンブラをやるかたに、 少しお役に立てるかな?と思いましたんで、紹介させて下さい。 この BASIC、N88 の時代の BASIC の雰囲気をなるべく再現 しようとして作られていますから、USR 関数や PEEK,POKE など、マシン語をあやつる手段が用意されています。 80486 とか Pentium の、ちょっとしたルーチンを作って 遊ぶのに、使えるかもしれません。 興味がわいたら、ちょっとのぞいてみてください。 shouichi [1999/11/26 Fri 00:13:34] [210.153.190.2] PC-98DAを使っていたときに、8086の勉強をしたのですが、そのときの 本には、8086やV30のバスインターフェースに関する部分がよく説明に中に登場していましたが、Pentium以降のバスに関してはまったく 知識がありません。書籍などで公開されているものがあれば教えてください。 dtx [1999/11/24 Wed 14:12:39] [210.136.124.211] to 土野明日香さん >さて、確認したところ、やっぱり英字部分はASCIIコードのようでした。 >となると、AHA-2940U2WのBIOS-ROMが、何か細工をしているのかな? ちょっと当方のROMを見てみましたが、きちんとメッセージ読めましたが・・・ ただ、ROMに書いてある内容そのものがLZHで圧縮されているので、拡張子を LZHにして、ROMをさらに展開しなくてはなりません。 #AWARDBIOSなんかも、ROMにLZHファイルがそのまま入っていて、実行時に メモリに展開してから実行されるようですが。 shouichi [1999/11/22 Mon 23:30:06] [202.235.204.35] どうも丁寧な回答ありがとうございました。 またよろしくお願いします。 澤口@大崎 [1999/11/21 Sun 22:19:30] [210.141.243.66] 澤口@大崎です。 to shouichiさん: 詳しいと威張れるほどじゃないですけど・・・ EFL です。 shouichi [1999/11/21 Sun 21:21:56] [210.153.190.7] はじめまして。アセンブラの初心者です。ひとつ教えてほしいのですが Visual C++6.0のインラインアセンブラを使用した場合、レジスタの 値をウォッチできますが、EFLAGSレジスタはレジスタウィンドウの どれを見ればいいのでしょうか? 詳しい方がいらっしゃれば教えてください。 土野明日香 [1999/11/21 Sun 01:21:24] [210.131.96.219] To 相模隆明さん どもどもっ★土野明日香です。 》私も98野郎なのではっきりした事は言えませんが、INT 10Hについての資料を発見したので 》紹介しておきます。 ありがとうございます。早速行ってきました。 凄いですねぇ、私の知りたかったこと、どんぴしゃりです。相模隆明さんは、普段から色々と幅広く情報収 集していらっしゃるのでしょうね。 さて、確認したところ、やっぱり英字部分はASCIIコードのようでした。 となると、AHA-2940U2WのBIOS-ROMが、何か細工をしているのかな? arm [1999/11/20 Sat 00:04:10] [163.139.59.13] みんくさん: >>x86ですね。Windows(95/98/NT)のDOSプロンプトだと、16bit/32bit両方の >>プログラムが走ります。お試しなら16bitモードでいいかと。 >とありますが実際、どんな環境ですか?。 ちょっと説明不足でしたね。 Windowsのスタートメニューの「MSDOS」のアイコンで起動するDOSプロンプト (いわゆるDOS窓)が、16bit/32bit両方のプログラムが走る環境です。 で、ゼロからプログラムを作るときには16bitの方が手軽ですよ、という話です。 >またリアルモード(16bit)とプロテクトモード(32ビット)って >DOSモードで起動した時と、WIN95のDOSプロントの事ですか?。 使う人から見るとそうですね。 実際は、DOSでもWindowsでも、ほとんどの場合は、プロテクトモードで 動作しています。 プロテクトモードなんだけどリアルモードのソフトが動くという仮想86 モード(なんちゃってリアルモード)というのがあって、DOSでは ずっと仮想86モード、Windowsでは必要に応じて仮想86モードになる という感じです。 つまりDOSでもプロテクトモードだしWindowsでも16bitのソフトが動く というわけなんですが、混乱を招くだけかも…。 >そのへんがはっきりしないので夜も眠れません。 土日ですから、寝ないでも大丈夫ですよね? みんく [1999/11/19 Fri 15:00:57] [133.98.27.113] http://www.geocities.co.jp/Playtown-Denei/6067 過去の掲示板に >x86ですね。Windows(95/98/NT)のDOSプロンプトだと、>16bit/32bit両方のプログラムが走ります。お試しなら16bitモード >でいいかと。余談ですが16bitモードで32bitレジスタを使うこともで >きます。 とありますが実際、どんな環境ですか?。 またリアルモード(16bit)とプロテクトモード(32ビット)って DOSモードで起動した時と、WIN95のDOSプロントの事ですか?。 そのへんがはっきりしないので夜も眠れません。 MEG [1999/11/18 Thu 16:24:51] [210.159.27.89] armさん、相模隆明さん、 ありがとうございます。 さっそく家に帰ってA86を入手しようと思います。 しっかり勉強して、はやく皆さんの話についていけるような レベルに到達したいです。 また分からないことがあったらお願いします(^^) 相模隆明 [1999/11/18 Thu 16:16:33] [150.15.16.31] to MEGさん 単にMASMの代わりを求めているのならArrowASMやA86のほうがMASM と互換性があり、やりやすいと思いますよ。 A86は http://eji.com/a86/index.htm にあります。 ArrowASMの公式なページってあるんですかね。 知ってる人がいたら教えて下さい。 A86はマクロの展開にMASMと非互換の部分があるみたい。 arm [1999/11/18 Thu 06:50:20] [163.139.59.32] MEGさん: >今学校でMASM ver5.1を使っているんですが、 >これはどこから入手したらいいんでしょうか? MASM 5.1そのものはもう売ってないので、入手不可です。 もし買うのならMASM 6.0ですね。MASM 5.1互換で、日本語マニュアルがついてます。 マニュアルが不要(入門書等を持っている)なら、下の方で相模隆明さんが 紹介しているNASMでも十分役に立つと思います。 ところで8086のレジスタは AX…Accumulator BX…Base register CX…Count register DX…Data register CS…Code segment DS…Data segment ES…Extra segment というようにこじつけてありますが、FSとGSも何かの略なんでしょうか? MEG [1999/11/17 Wed 11:52:37] [210.237.170.130] あう!文字化けしてるぅ(TT 半角カナにしちゃってたみたいだ・・・ 『過去ログで紹介されていた「Intel x86 Main Page」という・・・』 です MEG [1999/11/17 Wed 11:47:29] [210.237.170.130] はじめまして(^^ めちゃくちゃ初歩的な質問をするんですが、 今学校でMASM ver5.1を使っているんですが、 これはどこから入手したらいいんでしょうか? 過去杆泙脳匆陲気譴討い植Intel x86 Main PageC箸いヲ ページにいってみたのですが、英語ばかりでわかりません(泣)。 けん [1999/11/16 Tue 23:28:42] [202.211.233.32] armさん: お返事ありがとございます。(^^) DOSプロンプトの16bitモードでしばらく研究してみます。 「はじめて読む8086」を昨日の夜、読みました。 今日から「はじめて読む486」を読みます。 大学の同級生にもアセンブラ、C、等に詳しい友人を見つけました。 みなさん: 今夜はついさっきまでかかって、Cでダンププログラムを作っていました。 ASCIIコードのダンプも横につけて、実行ファイルを開き、 「おぉ、おぉ〜おぉ!」と1人で騒いでいました。(^^) なんか、「あぁ、帰ってきたんだな〜。」という感想です。 この春、Win に乗り換えてから、ダンプリストを見るのは初めてでした。 ネットワークも夏休みが終わってから生まれて初めてなのです。 最近のマシン(?)は初心者ですが、機械語やプログラミング大好きです。 みなさん、今後ともよろしくおねがいします。 arm [1999/11/16 Tue 19:50:17] [163.139.59.20] ひろさん: >話は変わるのですが、皆さんI/O PortやBIOS DATA AREA(0:400〜)などの情報(使い方など)をどのような資料で調べていますか? >私は「Ralf Brown's Interrupt List」を参考にしていますが結構知りたい情報が書いてない場合が多いもので。 私は持ってませんけど英文のすごく分厚いのが有名ですね。 しかし(立ち読みはしたんですけど)これも完全とは言えないし、 今となっては少し古いので、必要に応じてデバイス別に調べるしか ないのではないかと思います。 最近はCQ出版社から比較的豊富に出てますね。 ハード工作の添付資料でパラレルポートの仕様が載ってたりとか。 あとCOMポートの場合ですが、ポートが存在しなくてもBIOSワーク には値があったりするので、あんまり信用できません。 けんさん: >今の自分のCPU(Celeron)はどれに当てはまるんだろう、、、 >という時点で四苦八苦しています。x86系でよいのでしょうか? x86ですね。Windows(95/98/NT)のDOSプロンプトだと、16bit/32bit両方の プログラムが走ります。お試しなら16bitモードでいいかと。 余談ですが16bitモードで32bitレジスタを使うこともできます。 土野明日香さん: >ところで、ITFいじりですのでRDMSRコマンドなども使っているのですが、 >この辺のコードは通るでしょうか? EXDEBではOkでした。Pentium Proあたりまでの命令が使えます。 ソース(これまたアセンブラ)が公開されてますので拡張もできると思います。 (が、EXDEBはリダイレクトには未対応のようです) しかしBIOSと勝負するのはちょっときついですねぇ。 昔ほど洗練されてないからできるのかもしれませんが。 相模隆明 [1999/11/16 Tue 16:14:06] [150.15.16.6] フリーのアセンブラで16/32ビット両用のものといえばやはり NetwideAssembler(NASM)でしょう。 http://www.web-sites.co.uk/nasm/ にあります。 http://www.bekkoame.ne.jp/~bero/docj/nasm/nasmdoc0.htm を参考にすればよいと思います。 みんく [1999/11/16 Tue 14:39:44] [133.98.27.113] すいません。 下のみんくの質問があいまいでした。 ターゲットは 8086,486,PemtimuCPUのアセンブラについてです。 みんく [1999/11/16 Tue 14:06:00] [133.98.27.113] はじめて書きます。 アセンブラについてよく知らないのですが、16/32ビット両方の コードを吐き出すアセンブラはどんなものがあるんですか? できればたくさん教えてください。(フリーのを中心に) 相模隆明 [1999/11/16 Tue 12:40:55] [150.15.16.31] 私もアセンブラを持ってなかった頃はリダイレクトを使ってデバッガを アセンブラ代わりに使ってました。 最後のQを忘れると止まっちゃうんだよね。 DOS窓だと強制終了できるけど当時はリセットするしかなかった。 実に懐かしい想い出。 fnami [1999/11/16 Tue 10:28:32] [202.238.80.25] 土野明日香さん: > 今は、32Bitコードを書く関係でDDEB.EXEでそれと同じことをしているのですが、 > MS-DOS窓だとスクロールしていってしまった内容は、遡れませんからねぇ(^^;;。 そういうときはリダイレクトでしょう。 E:\>TYPE AHO.DBG A MOV AH,00 INT 18 D 100 103 Q こういうファイルを用意しておいて、 E:\>DEBUG <AHO.DBG >AHO.OUT とすればできます。 > コードが10行程度だと何とかなりますが、このときばかりはMS-DOSの25行という限界がうらめし > くなりますね。 > VTEXTのように、どこかを弄ると、MS-DOS窓が45行になってくれたりすることはないでしょうか >ね(^^;;;。 AutoMATEを使えば30行にはなります。TTを使って文字の縦ドット数を減らせばもっといきますが、DOS窓ではうまく表示できないようです。 相模隆明 [1999/11/16 Tue 08:43:03] [150.15.208.100] >AT互換機でINT 10H function 0Ehって、使われているコードはASCIIではないのでしょうか? 私も98野郎なのではっきりした事は言えませんが、INT 10Hについての資料を発見したので 紹介しておきます。 http://hp.vector.co.jp/authors/VA003720/lpproj/int10h/ 0Ehについては http://hp.vector.co.jp/authors/VA003720/lpproj/int10h/i100e.htm にありますね。 土野明日香 [1999/11/15 Mon 23:57:59] [210.131.97.91] To 相模隆明さん どもどもっ★土野明日香です。 》http://plaza4.mbn.or.jp/~iruka/にそれっぽいツールがありますよ。 情報提供ありがとうございます。 早速行ってみてきます。 》それとデバッガとしてはEXDEBがオススメ。 》スクロールさせてみることができます。(たぶんベクターにあるよ。) こちらも捜してみます。 ところで、ITFいじりですのでRDMSRコマンドなども使っているのですが、この辺のコードは通る でしょうか? それと、再び質問です。 AHA-2940U2WのBIOS-ROMを見ていて気が付いたのですが、AT互換機でINT 10H function 0Ehって、 使われているコードはASCIIではないのでしょうか?(当方、PC-98オンリーのためAT互換機は全く 未知の分野です) 通称TelTypeモードというらしいのですが、どうも表示されるはずのストリングスが人間語で読め なくて(^^;;。 どなたかご存じでしたら教えて下さい。 相模隆明 [1999/11/15 Mon 17:00:26] [150.15.16.40] >VTEXTのように、どこかを弄ると、MS-DOS窓が45行になってくれたりすることはないでしょうか >ね(^^;;;。 http://plaza4.mbn.or.jp/~iruka/ にそれっぽいツールがありますよ。 それとデバッガとしてはEXDEBがオススメ。 スクロールさせてみることができます。(たぶんベクターにあるよ。) arm [1999/11/15 Mon 08:10:13] [163.139.59.52] ひろさん: >単純ループ法は解像度は高いが初期計測が必要,若干の誤差が出る可能性あり >DRAMリフレッシュレート法は解像度は15usまでだが簡単に使える ソフト一般の話ですが、DRAMリフレッシュレートの方は平均7.5μsのタイマですから、 単純に置き換えるとバグになりますよね。(経験済みなんで…) けん [1999/11/15 Mon 04:26:44] [202.211.232.25] みなさん、はじめまして。(^^) Z-80(NEC PC-8801 と 自作ボードコンピュータ) で機械語をやっていた者です。 今のマシンでも機械語をやりたくて情報を集め中です。 ニーモニック<>機械語 対応表を探していたのですが。 今の自分のCPU(Celeron)はどれに当てはまるんだろう、、、 という時点で四苦八苦しています。x86系でよいのでしょうか? 頭の中が80年代で止まっているのでそろそろ動き出そうかと。。。 この掲示板にちょくちょくお邪魔させて頂こうと思ってます。 みなさん、よろしくおねがいします。 、、、遅れましたが、電子工学科の学生で21才です。(^^) 土野明日香 [1999/11/13 Sat 20:41:20] [210.131.96.248] To fnamiさん どもどもっ★土野明日香です。 》8086コードをハンドアセンブルとは、なかなかやりますね。 いえ、まだまだですよ(^^;;。 たまに、(レジスタの関係などで)存在しない命令を記述してしまったりして(^^;;;。 》さて、「アセンブラソースをカット&ペーストして」ということですが、Windows付属のDEBUG.EXEではだめで 》すか。MS-DOSプロンプトのペースト機能を使ってこんなふうにすれば、16進で結果を見られます。 今は、32Bitコードを書く関係でDDEB.EXEでそれと同じことをしているのですが、 MS-DOS窓だとスクロールしていってしまった内容は、遡れませんからねぇ(^^;;。 コードが10行程度だと何とかなりますが、このときばかりはMS-DOSの25行という限界がうらめし くなりますね。 VTEXTのように、どこかを弄ると、MS-DOS窓が45行になってくれたりすることはないでしょうか ね(^^;;;。 土野明日香 [1999/11/13 Sat 20:40:33] [210.131.96.248] To armさん どもどもっ★土野明日香です。 》16bitですし、そういう都合のいい統合環境はないのでは? やっぱ駄目ですか(T_T)。 》私だったら、Wz (テキストエディタ) でマクロを書きますね…。 》範囲をコピーしてキー押すと、一時ソースを生成、コンパイルして表示、みたいな。 MIFESを使っているので、それに近いことをしようかと思ったのですが、こちらのみなさんなら、 何かいい方法をご存じかと思って(^^;;。 》まあ、オペコードを暗記するのが一番速いのかもしれませんが。(笑) 》よく使うやつは覚えますよね。 今当てているのがIDE-BIOSなんですが、ご存じのようにPC-98の場合、発売時期によって「544MB/ 4.25GB/31.51GB」の容量の壁があるのです。 で、このBIOSを127GBまで対応できるように書き直しているのですが、元々決めウチとなっている 部分を書き換えて、扱われているヘッド/セクタがパラメータ可変になるようにしているのです。 となると「同じバイト数の中に、今まで以上のステートを押し込」まなければならないわけで、 それらしいコードを書いてはDDEB.EXEを参考にしつつハンドアセンブルしてバイト数を数え、駄目 だとまた書き直して...というようなことを延々とやっているのです(^^;;;。 ひろ [1999/11/13 Sat 14:56:33] [210.155.193.120] 澤口@大崎さん、armさんアドバイスどうもありがとうございます。m(__)m 教えていただいた方法でタイマ(時計)を作り、時間計測のテストをしてみました。 単純ループの方法も、DRAMリフレッシュレートの方法、の両方とも問題なく使用できました。 単純ループ法は解像度は高いが初期計測が必要,若干の誤差が出る可能性あり DRAMリフレッシュレート法は解像度は15usまでだが簡単に使える といった長短があるみたいですね。 話は変わるのですが、皆さんI/O PortやBIOS DATA AREA(0:400〜)などの情報(使い方など)をどのような資料で調べていますか? 私は「Ralf Brown's Interrupt List」を参考にしていますが結構知りたい情報が書いてない場合が多いもので。 もし、おすすめの書籍や、ホームページ等があれば教えてください。 arm [1999/11/13 Sat 00:11:22] [163.139.59.17] ちょこっと更新 ひろさん: >mov cx,10000 >@@: loop @b >はプログラム中のどんな場所(状況)から呼ばれても処理時間は同じであると考えて良いのでしょうか? リアルモードかつ割込禁止状態なら、同じでしょう。 (わざとVRAMとか、キャッシュ不能領域で動かさなければ...) 仮想メモリマネージャが走ってる場合は、微妙に変わりそうですね。 10μ秒とか、そのくらいの精度であれば、問題ないと思いますけど。 >RDTSCはDOSでは少し厳しいみたいです。半分特権命令みたいなものですから、 そこまで考えてませんでした。アセンブラネタだと思ったんですけど。 たぶんDOSエクステンダ環境なら使えるんでしょうね。 土野明日香さん: >というのも、現在PC-98のBIOSにパッチを当てる作業をしているのですが、エディタ上でハンドア >センブルしてコードを書いているのです。数100Byteになると結構面倒です。 >このため、アセンブラのソースコードをカット&ペーストすると、その分アセンブルしてオブジ >ェクトコードを吐いてくれるようなものが望ましいんですが<アセンブラというよりデバッガかも(^^;;。 なんかすごいことしてますね。 16bitですし、そういう都合のいい統合環境はないのでは? 私だったら、Wz (テキストエディタ) でマクロを書きますね…。 範囲をコピーしてキー押すと、一時ソースを生成、コンパイルして表示、みたいな。 まあ、オペコードを暗記するのが一番速いのかもしれませんが。(笑) よく使うやつは覚えますよね。 fnami [1999/11/12 Fri 11:25:41] [202.238.80.25] Re: MS-Windows上で動くアセンブラは? 8086コードをハンドアセンブルとは、なかなかやりますね。 さて、「アセンブラソースをカット&ペーストして」ということですが、Windows付属のDEBUG.EXEではだめですか。MS-DOSプロンプトのペースト機能を使ってこんなふうにすれば、16進で結果を見られます。 E:\>DEBUG -A 1D81:0100 MOV AH,00 1D81:0102 INT 18 1D81:0104 -D 100 103 1D81:0100 B4 00 CD 18 .... -Q E:\> 葵 [1999/11/11 Thu 21:10:11] [216.101.46.191] こんな所見つけました。 英語のサイトですが、LINKとSample Sourceが結構あります http://www.fys.ruu.nl/~faber/Amain.html 土野明日香 [1999/11/10 Wed 23:30:48] [210.131.97.48] MS-Windows上で動くアセンブラは? 初めまして★土野明日香です。 アセンブリ言語専用の場があると教えて貰い、喜んでやって参りました(^o^)。 さて、ご質問なんですが。 MS-Windows上でGUIソフトとして動作するアセンブラって存在しますか? というのも、現在PC-98のBIOSにパッチを当てる作業をしているのですが、エディタ上でハンドア センブルしてコードを書いているのです。数100Byteになると結構面倒です。 このため、アセンブラのソースコードをカット&ペーストすると、その分アセンブルしてオブジ ェクトコードを吐いてくれるようなものが望ましいんですが<アセンブラというよりデバッガかも(^^;;。 MASMは一応持っているのですが、ご存じのようにパッチコードというのは「あっちに何バイト・ こっちに何バイトという感じでつぎはぎだらけなので、まともな1本のソースコードとして処理で きないのです。 よい情報をお持ちでしたら、どうぞご教授願いますm(__)m。 澤口@大崎 [1999/11/10 Wed 16:03:17] [210.141.243.66] 澤口@大崎です。 to ひろさん: ポート 61H の bit 4 は DRAM リフレッシュレートの 15us で反転するフリップフロップであるとポート表に のってました。 従って、ここを自前のループでポーリングすれば反転す る間隔が 15us になるのでしょう。 反転回数も自分でカウントアップするしかないんじゃな いでしょうか。 ひろ [1999/11/10 Wed 01:33:44] [210.155.193.58] 飯田さん、armさんアドバイスどうもありがとうございます。m(__)m > >http://www.gaztek.co.uk/ > さっそくソースを手に入れてざっと眺めてみました。 やっていることは一定時間に何回ループできるか調べて、WAITを入れる時その値から算出した回数だけループさせているようです。 単純ですけどわかりやすい方法ですね。特定間隔のWAITを入れるならこの方法が使えそうです。 この方法を見ていて少し疑問に思ったのですが、最近のCPUは命令を逐一実行しているわけではなく、 分岐予測とか色々複雑なことをやっていると思うのですが、一つ一つの命令に必要なクロック数は決まっていると思いますが、 それらが組み合わさった場合の処理時間は同じになるのでしょうか?つまり mov cx,10000 @@: loop @b はプログラム中のどんな場所(状況)から呼ばれても処理時間は同じであると考えて良いのでしょうか? > >CPUがPentium以上だったら、RDTSC(0F 31)というカウンタを得る命令があります。 >最初に1秒のカウント値を調べておいて、そこから割り出せると思います。 > RDTSCはDOSでは少し厳しいみたいです。半分特権命令みたいなものですから、 V86モードで動作中(HIMEM with EMM386)にTSDが立っているとGPEが出てOSがクラッシュします(確認済)。(^^;; ネット上で色々時間の計測方法を調べたのですが、わりと有名な方法にI/O Portの60h(61h?)のbit4(何かのrefresh間隔)を 使う方法があるらしいのですが、詳しい方法が書いてあるページを見つけることができませんでした。 この方法だと15us(15000ns)ぐらいの精度で時間が計測可能らしいです。それと経過時間も測定可能らしいです。 もし使用方法をご存知の方がいましたら教えてください。 arm [1999/11/09 Tue 19:56:49] [203.136.251.5] ひろさん: >ハードウェアの制御でどうしても10us(10000ns)単位以下で時間を計測したいのですが方法がわかりません。 CPUがPentium以上だったら、RDTSC(0F 31)というカウンタを得る命令があります。 最初に1秒のカウント値を調べておいて、そこから割り出せると思います。 Pentiumじゃなかったら別の処理にするというのも可能ですし。 かれーらいすさん: >ラベル定義っていうのがいまいち分からないんですが・・・・ >いつもこういう感じで使っているのと同じですか?? >k_data db 0 >u_data db 0 同じです。@がついてるのはコンパイラの内部処理用で、ユーザーがつけたラベル名と重ならないようにするためです。 飯田 [1999/11/09 Tue 19:27:34] [131.112.63.11] こんにちわ、飯田です。 ひろ>ハードウェアの制御でどうしても10us(10000ns)単位以下で時間を計測したいのですが方法がわかりません。 機種はDOS/Vです。 参考になるかどうかはわかりませんが10usをほぼ正確に測る方法を用いているソースコードがある場所を書いておきます。 http://www.gaztek.co.uk/ ここにあるGazOSのソースコードの中にFDDの制御に必要なディレイを得るためのコードがありました。 メモリの読み書きスピードを基準に時間を計っていますが、レジスタを使えばns単位でも 計測できるのではないでしょうか。 arm [1999/11/08 Mon 00:32:30] [163.139.59.38] エンディアン こんちは。 TransTech11月号は「CPU特集」で、なかなか面白いのですが、気になった点が一つ。 エンディアンの説明で、「ビット0を最上位ビットにするのがビッグエンディアン」と あります。 最上位ビット=MSB=Most Significant Bit=もっとも値の大きい位置、 最下位ビット=LSB=Least Significant Bit=もっとも値の小さい位置、 エンディアン=バイトオーダ、だと思っていたのですが、違うのでしょうか? これと似た話では、FAXはMSBから送信するが、モデムはLSBから送信する、 というのがありますが。(FAXとモデムは似てるようで、結構違います) かれーらいす [1999/11/07 Sun 11:29:29] [163.209.183.10] どうもありがとうございました。 ところで・・・ >>以下はみんなラベル定義 >> d@ label byte >> d@w label word >> b@ label byte >> b@w label word ラベル定義っていうのがいまいち分からないんですが・・・・ いつもこういう感じで使っているのと同じですか?? k_data db 0 u_data db 0 ココアラ [1999/11/06 Sat 23:48:52] [210.228.248.44] だいたいの感じですが・・・ 条件分岐 ifndef ??version マクロ定義 ?debug macro endm ここもマクロ定義 $comm macro name,dist,size,count comm dist name:BYTE:count*size endm else ここもマクロ $comm macro name,dist,size,count comm dist name[size]:BYTE:count endm endif これは・・・デバッグ情報? コードかデータのダンプリストかな? ?debug S "dotedit.c" ?debug C E91AB5552709646F74656469742E63 ?debug C E92008251715443A5C54435C494E434C5544455C737464696F2E68 ?debug C E92008251713443A5C54435C494E434C5544455C646F732E68 ?debug C E92008251715443A5C54435C494E434C5544455C636F6E696F2E68 ?debug C E92008251716443A5C54435C494E434C5544455C7374646C69622E+ ?debug C 68 これはセグメント定義 DOTEDIT_DATA segment word public 'DATA' 以下はみんなラベル定義 d@ label byte d@w label word b@ label byte b@w label word 間違いだらけかも知れませんがご参考までに。 かれーらいす [1999/11/06 Sat 14:12:02] [163.209.180.97] 僕のもっているTurboC++(for MS-DOS)で、あるCのファイルを アセンブラ出力させてみたんですが このようなのが最初の部分に出ました。 何を意味してるかわからないのでどなたか教えて下さい。 ifndef ??version ?debug macro endm $comm macro name,dist,size,count comm dist name:BYTE:count*size endm else $comm macro name,dist,size,count comm dist name[size]:BYTE:count endm endif ?debug S "dotedit.c" ?debug C E91AB5552709646F74656469742E63 ?debug C E92008251715443A5C54435C494E434C5544455C737464696F2E68 ?debug C E92008251713443A5C54435C494E434C5544455C646F732E68 ?debug C E92008251715443A5C54435C494E434C5544455C636F6E696F2E68 ?debug C E92008251716443A5C54435C494E434C5544455C7374646C69622E+ ?debug C 68 あと、次のような文が何を意味してるか教えてください。 DOTEDIT_DATA segment word public 'DATA' d@ label byte d@w label word b@ label byte b@w label word coelacanth [1999/11/06 Sat 13:33:48] [210.145.66.219] coelacanthです。 Lattaさんレスありがとうございます。 MASMとNASMの違いは、たいしたことないと聞いたのですが、 実際のところはどうなんでしょうか? MASMがフリーになっても、どうもMS製品はちょっと・・・。 直感的に、NASMの方を使ってしまいそうです。 教えていただいた本を探してみて、よく勉強してみようと思います。 ありがとうございました。 ひろ [1999/11/05 Fri 21:21:22] [210.155.193.226] 皆さんこんにちは ハードウェアの制御でどうしても10us(10000ns)単位以下で時間を計測したいのですが方法がわかりません。 機種はDOS/Vです。 I/O Portの40h〜で8253を直接使用すれば良いのですがこの方法ですと他にこのカウンタを使用しているドライバなどがあると不味いことになります。 PC9800ですとI/O Portの5Chや5Ehを使えば可能なのですがDOS/V機でこのような機能を持ったI/O Portがみつからなかったもので、 もし計測方法をご存知の方がいましたら教えてください。 latta [1999/11/05 Fri 03:02:56] [202.222.128.194] はじめまして。lattaと申します。 最近アセンブラに興味をもち、このHPのおかげで ようやくヨチヨチ歩きをはじめた所です。 >Coelacanthさん 「はじめて読む8086」 「はじめて読むMASM」 ISBN 4-87148-245-6 ISBM 4-87148-313-4 価格 1602+税 価格 1796+税 蒲地 輝尚 著 蒲地 輝尚 著 アスキー 出版 アスキー 出版 と過去ログに紹介されています。1つずつだとダメっぽいん ですが2つで90点以上らしいです。ということで、僕は一気に 2冊買いました(笑 他にも ここからのリンクでいける kiss-me-quick さんの HPにはたくさんのアセンブラに関する書籍が紹介されてます。 NASMはどうも書籍などがでてないみたいなので、僕はMASMで 勉強をすることにしたのですが、この際MASMで勉強してみて はいかがですか? いまはもうフリーのようですし。(無責任 ^^; 役に立てそうな意見じゃなくて申し訳ないです。他の方のレス 待ってます^^; お互い頑張りましょうね♪ int09h [1999/11/03 Wed 21:26:31] [210.249.12.196] http://www.geocities.co.jp/SiliconValley/9979/ PC98x1のWSSの詳細をご存じの方は教えて下さい。お願いします。 Coelacanth [1999/11/03 Wed 17:44:37] [210.145.66.206] はじめまして。Coelacanthといいます。 最近、NASMを落として、アセンブラの勉強を はじめようと思っているのですが、 実際どのように勉強すればよいのか分かりません. 皆さんは、どのようにしてアセンブラの勉強をしたのですか? また、良い本などがあれば教えていただけないでしょうか? やすひろ [1999/11/01 Mon 04:05:22] [202.230.246.244] hufmanさん こんにちは >8086CPUからPen.MMX(およびPen.3)に移行するために両方の8086 >とのレジスタ、命令セットの違いを知りたいのです。 >つまり、「Pen.MMX/Pen.3のレジスタ&命令セットが書かれた資料 >等は入手できないのか?」が私の聞きたかった質問です。 http://www.intel.co.jp/jp/developer/design/pentium/manuals/index.htm じゃダメですか? : |
e-mail: mist@e-net.or.jp | Structured Anchor Tree Return to Menu Return to Parent Menu |
Powered by Unit Missing Link. |