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

 
Tips
 

 やっぱり 2000 年もアセンブラッ!!だねっ


 
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 02/01/0003/31/00
 




SAKURAの季節  [2000/03/30 Thu 23:59:46]  [202.219.216.161]

飯田さんへ

レスが遅くなってすみません。
大変ありがたい情報を本当にありがとうございます。
さっそく探してみようと思います。

アセンブラ初心者という方々へ

尋ねてばかりというのは失礼なので、
MS−DOSの内部構造、アセンブラの本で私が使っているものを
お知らせいたします。

「速習MASM」山海堂 著者 田中 尚
「Cユーザーのための実践アセンブラ」近代科学者 著者 吉川 敏則
「DOS/Vプログラミングガイド」 アスキー出版局 著者 最上 晃
「MS−DOS完全活用法」 CQ出版社 著者 中島 信行
「MS−DOSプログラマーバイブル」 CQ出版社 著者 阿部 英志

ご参考にしてみてください。
なにぬねの  [2000/03/29 Wed 16:33:14]  [202.224.189.53]

はじめまして

アセンブラを勉強をしたいと思ってるんですが、周りに詳しい人がいません。
また本屋さんにいってもどれがいいのか分かりません。
今あるアセンブラのソフトとか、初心者向けに書かれた本を教えてもらえませんか?

能力値としてはC/C++がわかる程度で、
アセンブラは見たことしかなく、触ったことはありません。
基礎知識ゼロです。

澤口@大崎  [2000/03/27 Mon 13:34:54]  [210.141.243.66]

澤口@大崎です。

to Matsu さん:

わたしも AZUCO さんと同意見です。
エラーコードは何が返っているのでしょうか。
よくあるのがパラグラフとバイト数を混同しているとか。
AZUCO  [2000/03/27 Mon 03:01:49]  [63.12.69.13]

メモリ確保ですが、多分困っているのは、メモリを取得しようとしても、全然確保されない・・・というエラーだと思います。
もし、このエラーの場合には、EXEヘッダのメモリ要求量を必要最小限にするか、プログラムの最初で、自分のメモリブロックをリサイズすると良いとおもいます。

Matsu  [2000/03/26 Sun 14:34:22]  [202.238.94.151]

8086でプログラムを作っているのですが、メモリ確保の仕方が良く分かりません。どなたか教えて頂けませんでしょうか?
INT 21h AH=4Ah,48h,49h あたりのファンクションでやっているのですが、いまいち良く分かりません。
カレーライス  [2000/03/24 Fri 13:15:05]  [202.211.153.209]

澤口@大崎さんへ
がんばって追跡して行こうと思います。
どうも、いろいろと教えてくださり
ありがとうございました。
澤口@大崎  [2000/03/24 Fri 11:15:54]  [210.141.243.66]

澤口@大崎です。

to カレーライスさん:

8086 の割り込みベクタは、割り込み番号を4倍したアドレスに
あります。1BH なら、6CH ですね。
ここに、実際の処理先の FAR ADDRESS が セグメント:オフセ
ットの4バイトで格納されていますので、この FAR ADDRESS に
相当するメモリ番地から逆アセンブルをかけます。
すると、その中に AL レジスタが 5 かどうかをコンペアしてど
こかにジャンプしているニーモニックがあるはずですから、さら
にそこから先を逆アセンブルします。
解析ってのはまぁこんな感じで進めていきます。
内部割り込みを使った処理というのは、製品毎に実際の処理アド
レスはまちまちですから、ベクタを取り出してみないとどこの番
地から処理が始まっているのかは誰も分からないんですよ。
「16bit DOS マシンの設計・製作」(CQ 出版)には同じ動作の
FDD コントロール BIOS がソース付きで載っていましたが、こ
の本も多分絶版。

カレーライス  [2000/03/23 Thu 23:10:37]  [202.211.153.209]

澤口@大崎さんへ

まずはCOMファイルから頑張って行こうと
思います。
ところで、BIOSのアドレスがどこからどこまで
なのか教えてください??
例えば、
フロッピーのセクタへの書き込みである
機能コード05H、割り込み1BH
を実行した場合のBIOSのアドレスは
どこからどこまでになるのでしょうか??

澤口@大崎  [2000/03/23 Thu 11:44:44]  [210.141.243.66]

澤口@大崎です。

to DGさん:

DOS ファンクションの Int 25H とInt 26H を使います。

http://www.simtel.iif.hu/pub/simtelnet/msdos/c/wr_prot.c

澤口@大崎  [2000/03/23 Thu 11:37:12]  [210.141.243.66]

澤口@大崎です。

to カレーライスさん:

逆アセンブルには逆アセンブラを使います。わたしは市販の
Sourcer97 というツールを使っていますが、これは主な DOS
コールや BIOS 呼び出しは自動的にコメントをつけてくれる
ので、ときどき重宝することがあります。
また、メモリダンプにはいわゆるデバッガを使います。
BIOS ダンプといっても特別なしかけがあるわけではなく、デ
バッガからみれば BIOS もただのメモリですから、アドレスを
指定してファイルにダンプするだけです。
フリーのものは例えばベクターなどにもいろいろありますし、

http://www.vector.co.jp/vpack/filearea/dos/index.html

ここの過去ログにもたくさん紹介されています。

念のため書き添えておくと、逆アセンブラでファイルを全部解析
しようとすると、すぐ数MB ないし数十MB のファイルになってし
まいます。しかも、逆アセンブラ自体はどこがコードでどこが固
データなのかは解析しません。(多少はするが)
自分でニーモニックを読みながら、プログラムの流れに沿って少
しづつ逆アセンブルするのがコツです。
いきなり MS-DOS 解析などといわず、まずは数KB の COM ファイ
ルなどでトレーニングしましょう。
K.S  [2000/03/23 Thu 10:43:07]  [210.251.6.205]
Assembly language

カレーライスさんへ。

簡単にメモリーダンプ&逆アセンブルするには、MS-DOSに付属の
DEBUG コマンドを使うとよろしいかと思います。
使い方は、

drive:\path>debug [解析したいファイル名]

です。例をあげると、

c:\temp>debug command.com

です。

drive:\path>debug /?

で、ヘルプが見れます。ジャンジャンバリバリ解析してください。
ついでに、私のホームページへ訪問してみてください。
けっこうディープなネタ、用意してます。
DG  [2000/03/22 Wed 13:27:05]  [147.47.111.34]

始めまして。
MS-DOSでフロッピーディスクにセクタ単位で読み書きする方法を知りませんか?
資料、サンプルコードなどがある場所をしっていたら教えてください。
カレーライス  [2000/03/21 Tue 19:08:36]  [202.211.156.33]

澤口@大崎さんへ

>徹底的に追及するのであれば、 MSDOS.SYS,IO.SYS,COMMAND.COM
>を逆アセンブルします。
逆アセンブルするには・・・???
逆アセンブルツールを使うのでしょうか??
>BIOS も、ダンプして逆アセンブルします。
BIOSをダンプするには・・・???

カレーライス  [2000/03/21 Tue 19:08:29]  [202.211.156.33]

澤口@大崎さんへ

>徹底的に追及するのであれば、 MSDOS.SYS,IO.SYS,COMMAND.COM
>を逆アセンブルします。
逆アセンブルするには・・・???
逆アセンブルツールを使うのでしょうか??
>BIOS も、ダンプして逆アセンブルします。
BIOSをダンプするには・・・???

澤口@大崎  [2000/03/21 Tue 16:35:18]  [210.141.243.66]

澤口@大崎です。

to カレーライスさん:

どの程度までの調査をするのかによりますが、普通はPC9801の
解析本を見ます。(でも、最近は入手困難かも)
徹底的に追及するのであれば、 MSDOS.SYS,IO.SYS,COMMAND.COM
を逆アセンブルします。
BIOS も、ダンプして逆アセンブルします。
あとは、デバッガを使って適当なアドレスにブレークをかけてメモ
リをダンプするとかですね。
でも、普通は解析するよりベクタをフックして自作したほうが早い
ような気もしますが。
カレーライス  [2000/03/21 Tue 13:52:03]  [202.211.156.18]

MS−DOSの内部の仕組みについてはどのように
調べればいいでしょうか??
また、BIOSはどのようにすればその中身を
調べることができるんでしょうか??
ちなみにpc−9801です。
AZUCO  [2000/03/20 Mon 02:37:57]  [63.12.69.64]

暇なので、久々に回答に回ります・・・・(笑)

COM - PSP=CS=DS=ES=SS という具合にすべてのセグメントが同じに
なります。
EXE - PSP=ES,CS,DS,SS という順番でセグメントが並べられます
(この並びはどうもDOSの標準セグメント配列らしいです:リンカの
マニュアルによると)
しかし、当然自分で指定すればこの限りではありません。

ちなみに、データにアクセスするには、DSにデータセグメントの値を
入れないとアクセスできない、のではなくて、
基本的に、ラベルの定義位置によって違います。

たとえば、コードセグメント中で(あるいはコードを示すブロック
中で)定義されたデータは、DSを参照せずにCS参照で(CSセグメント
オーバーライドで)アクセスされるわけです。
もちろん、あえてDSプリフィックスで参照も出来ますけど(CS=DSで
ないと正しい位置にアクセスできない)

まぁもっとも、ソースで明記しなくても、セグメントプリフィックス
は勝手に付けられるので、自分ではぴんとこないと思いますが。
一度、DEBUG等で逆アセンブルすると、セグメントプリフィックスが
実は入ってる事が良く分かると思います。

このセグメントプリフィックスはうまく使うと、なかなか面白い使い
方が出来ます。
たとえば、かなり大きな構造体を扱う場合(データベースとか)あえて
わざわざESプリフィックスでアクセスするように書いておけば、ESを
切り替えるだけで、大きな構造体を楽に参照できると思います。

こういう事を考え出すと「EMSのアクセスに使えるよね」とか段々
トリッキーな話になるあたりがアセンブラの魅力かも(笑)
ChoMo  [2000/03/19 Sun 17:56:39]  [202.219.231.169]

澤口@大崎さん
EXEではDOSが勝手にやってくれるのはわかりましたが、
結論として
(1)
COMはセグメントレジスタに自分で適切な値をセットする。
EXEはDOSが勝手に適切な値をセットしてくれる。

(2)
COM、EXEとも自分でセグメントレジスタに適切な値をセットする。

(3)
COMはセグメントレジスタに自分で適切な値をセットする。
EXEはDOSが勝手に適切な値をセットしてくれるが自分でセットしてもよい。

のどれなのでしょうか?
どうもよくわからなくて・・・
澤口@大崎  [2000/03/19 Sun 16:34:13]  [210.141.243.66]

澤口@大崎です。

to ChoMoさん:

ASSUME 命令ってのはディレクティブ、つまり疑似命令ですか
ら、レジスタに何かいれるわけじゃないです。
8086 のアドレスがセグメント:オフセット形式であらわされ
ることはご存じだと思うのですが、アセンブラではこのうちオ
フセット部分しか面倒見ません。
で、オフセットというのは基準になるベースセグメントアドレ
スが決まらないと具体的な数値にすることができませんから、
ASSUME 命令でアセンブラにどこのベースセグメントを基準に
してオフセットを計算するのか教え込んでおく必要があるわけ
です。
*.EXE の場合は DOS がプログラム開始時に適切な値をセグメ
ントレジスタにセットしますから、小さくて、アドレス依存性
のないプログラムはそのまま動いてしまいますが、64K を越え
るデータサイズとかコードサイズのプログラムを作ってみると、
ASSUME の必要性の意味が分かります。

ChoMo  [2000/03/19 Sun 07:08:39]  [202.219.231.176]

始めまして。
アセンブラに興味があるのでやりはじめました。よろしくお願いします。
早速質問です。
dsレジスタにデータセグメントの位置を入れなければならない理由って
mov ax, memory_data

mov ax, ds:memory_data
となるから
データセグメントの位置がわからないとだめってわけですか?
でも、
ASSUME cs:_CODE, ds:_DATA, ss:_STACK

_CODE SEGMENT
start:
mov ah, 07h
int 21h

mov ds:ccx, al

; 20回ループする
mov cx, 20
__loop1:
mov ah, 02h
mov dl, ccx
int 21h
loop __loop1

; プログラムの終了
mov ah, 4Ch
mov al, 00h
int 21h
_CODE ENDS

_DATA SEGMENT
ccx db 0
_DATA ENDS

_STACK SEGMENT STACK
db 100h dup(0)
_STACK ENDS

END start
dsレジスタにデータセグメントの位置を入れてないのに
普通に動きます。(MASM6でEXEモデル?でアセンブルしました。)
ASSUMEでdsレジスタにxxセグメントの位置を入れているのかと思っているのですが、
本には「アセンブルを行う時の情報としてMASMに知らされるだけ」と書いてあるし・・・
どういうことなんですか?
教えてください。
飯田  [2000/03/18 Sat 12:19:00]  [210.253.194.83]

こんにちわ、飯田です。

SAKURAの季節さんへ、IDEの仕様だったら
ftp://fission.dt.wdc.com/pub/standards/x3t13/docs2000.xls
をみてその中からATA/ATAPIの仕様書を探すのがよいかと。
多分、ATA/ATAPI-5 revision 2が1番新しいやつだと思います。
あと、使っているマシンのマザーボードに搭載されているチップセット
メーカーのホームページからチップセットの仕様書を落としてくれば
必要なレジスタの情報が入ります。もちろんPCIデバイスをサーチして
IDEコントローラを探すのも可です。
PCIの情報は残念ですがネットで説明してる場所を僕は知りません。
書籍でしたら
CQ出版 OPEN DESIGN PCIバスの詳細と応用へのステップ
という本である程度わかりました。電気信号や機械的なことはわかり
ませんがソフトで制御することならこれで十分だと思います。
CDROM制御の情報もATA/ATAPIの仕様書に書いてありますが
http://www.gaztek.co.uk/
にある公開されているフリーのOSのソースコードを見るのも参考に
なるかと。LINUXのソースほど大きくないので見やすいです。




HAG  [2000/03/17 Fri 10:04:40]  [133.8.33.194]

>stray_jackalさん
わざわざお答えいただき、どうもありがとうございます。
ちゃんと「OTENKI.EXE」ができました。

初めて実行させたときの「OTENKI」は「KUMORI NOTI HARE」
でした。ここ何日かの間もやもやしていたものが晴れて解決。

よかったです。本当にありがとうございました。
jackal  [2000/03/16 Thu 20:38:44]  [210.248.188.177]

すいません。今の書き込みに半角カナを使ってしまったので文字化けしてしまいました。

訂正
otennki.obj : warning LNK4033: 橘渕洽個の形式を OMF から COFF に変換します
otennki.obj : fatal error LNK1190: 無効な岬・襲・゚(晴餅 0x0001) が見つかりました

otennki.obj : warning LNK4033: オブジェクトの形式を OMF から COFF に変換します
otennki.obj : fatal error LNK1190: 無効なフィックスアップ(タイプ 0x0001) が見つかりました


stray_jackal  [2000/03/16 Thu 20:32:21]  [210.248.188.177]

はじめまして。初めて書き込みします。
HAGさんの質問なんですけど,僕も同じ本を持っているので答えようと思います。(あまり見ていないけどゥ・)


otenki.obj : fatal error LNK1190: invalid fixup found, type 0x0001

上のようなエラーが出たとありますが,僕も実際に試して見ました。
ちなみに僕のバージョンは ml:6.14.8444 link:6.00.8168 です。

まず OMF(Object Module Format) と COFF(Common Object File Format) はオブジェクトファイルのフォーマットの形式です。DDKのリンカはOME形式のオブジェクトファイルをCOFF形式に変換してリンクするので,そのときに警告が出たのだと思います。MSDNライブラリ(持ってます?)によるとEDITBIN.EXEツールでOMF形式からCOFF形式に変換できると記載されていました。また,mlのオプションに/coffを付けるとcoff形式のオブジェクトファイルを出力します。


さて本題のエラーについては,Link.exeが32ビットEXEを出力するということが問題だと思います。(詳しくは知りません)僕はVC++6.0のリンカ(DDKのリンカとほとんど同じ)でやってみたんですが,次のようなエラーが出ました。

otennki.obj : warning LNK4033: 橘渕洽個の形式を OMF から COFF に変換します
otennki.obj : fatal error LNK1190: 無効な岬W襲k゚(晴餅 0x0001) が見つかりました

同じエラーが出ました。次に僕の使っている16ビットEXEを出力するリンカで試すとうまくいきました。ちなみこのリンカはマイクロソフト製開発ツールのアップデート用のものらしくマイクロソフトのFTPサイトftp://ftp.microsoft.com/Softlib/MSLFILES/LNK563.EXEに置いています。ライセンスをよく読んでから使ってください。(僕は読んでないけどゥ・) ちなみにこのリンカの場合はCOFF形式に変換しなくても良いです。

あとこのプログラムはcom形式なのでmlのオプションに/ATを付けた方が良いのかも知れませんが,付けなくてもうまく動きました。

これでお分かりいただけたでしょうか?
僕も人に教えることができるレベルではないのですが,これからもよろしくお願いします。


SAKURAの季節  [2000/03/16 Thu 13:33:39]  [203.141.89.167]

はじめまして。

アセンブラの関連情報を探していて、ここにたどり着きました。
Z80や8086時代にかじる程度ですが、アセンブラを
やっていたのですが、今またアセンブラを研究しようとして
色々情報を集めているのですが、良い情報があつまりません。
CPUに関する情報は集まったのですが、肝心なIOインターフェースに
ついてはほとんど無いのが現状です。
YahooやGooでインターネットを探し、紀伊国屋などの書店のホムペに
アクセスするのですがここでもやはり同じ具合です。
どなたか、良い資料をご存知の方がいらっしゃれば、お教え下さい。

必要としている情報は次の通りです。
IDE(E−IDEが特に)インターフェース
バスマスターの制御
ATAPIの制御
CD−ROMのネイティブ(MSCDEXを介さない)制御
PCIインターフェース

探し物が多くてすみませんが、よろしくお願いいたします。

HAG  [2000/03/15 Wed 09:36:38]  [133.8.33.194]
Chig.Hag

はじめまして。唐突ですが質問です。

「はじめて読むMASM」のOTENKI.ASMっていうプログラムをその
まんま打ち込んで、Windows98DDKの中のML.EXEとLINK.EXEで
「OTENKI.EXE」ができるのかと思いきや、LINK.EXEでつまづき
ました。次のようなメッセージが出ます。

otenki.obj : fatal error LNK1190: invalid fixup found, type 0x0001

で、他に「OMF to COFF」なんとかいうのも出ましたがEDITBIN
でどうにかなりました。とはいえ、単にメッセージが出なくなっ
たというだけなんですが…。

なんでなんでしょう。

それで、バージョンなんですが「ML」が「6.11d」で、「LINK」が「5.12.8181」です。Windows98上でMS-DOSプロンプトからアセ
ンブルとリンクをしようとしてます(もしかしたら、これがダメな
理由とかだったりして…純粋にDOSじゃなければいけないとか…)。

ものすごく初歩的な質問ですが誰かお答えいただければ、これ幸い
です。

それでは。
澤口@大崎  [2000/03/12 Sun 18:48:20]  [210.141.243.66]

澤口@大崎です。

to yyynnn さん:

個人売買の掲示そのものは管理人さんに任せるとして・・・
商用ソフト、特にMS社のものは、購入した個人が使用権を
得るだけですので、他人に譲渡するのは有償・無償を問わず、
明確なライセンス違反です。MS-DOS も同じで、最初の購入
者本人以外には使用権がありません。
強いて譲れるのは、開封も、当然インストールもしていない
場合です。
MS社の人がこの掲示板を見ていたとすると、購入者に10
万円近い請求書が行きかねません。ペナルティー金額だと、
その3倍までありですね。
yyynnn  [2000/03/11 Sat 10:02:58]  [210.134.2.16]
オーバードライブ付パソコン+SCSIカード付HDD(クイックC、BASIC&MASM等)

たまに お世話になっています
投稿に問題があるかもしれませんが
今まで私が使っていた パソコンを売却します
http://auctions.yahoo.co.jp/jp/auction/7366534
です よろしくお願いいたします価格は1000円からです

NEC PC9801DX です
  CPUは 元386ですが I/Oデータ製の486オーバードライブを積んでいますので快適です
元々の5インチFDDを取り外して 3.5インチFDDを取り付けています(完動です)
外付けHDD 100Mバイト付けます
このハードディスクに MS-DOS5.0のほかに
1.C言語のをはじめたての方やこれからの方に最適な MSクイックCが入っています
2,visual-basicの前進 クイックBASIC が入っています
3.INTEL CPUを扱うには 無敵なアセンブラ MASM が入っています
4,その他VZエディター、やユーティリティーも入っています


問題がありましたら 抹消してください 
Yasu  [2000/03/10 Fri 21:06:03]  [210.255.37.82]

ここの ML て現在やってるのでしょうか?
hibiki  [2000/03/07 Tue 11:29:04]  [202.224.34.252]

こんにちは。

だれかTASMの使い方を知っている方はいないでしょうか。
今まで人のソースをみて、見よう見まねで使ってきたのですが、
正式な書き方を知りたくなりまして。

ここでいう使い方とは、「ソースをどのように書くか」です。
例: ".text" とか ".code"
(すいません、言いたいことわかります?)

Dexter  [2000/03/03 Fri 11:56:54]  [202.238.104.5]

chipsetへのアクセス方法が書いてあるサイトを教えてください。

目的はRev番号やIDなどのステータスを読み出したいのですが、どのようにしたらいいのか、よくわかっていません。
世の中には、そのようなツールも多数出回っていますが、ソースまで公開されているところが見つかりません。
何かとっかかりが欲しいのですが。。。

よろしくお願いいたします
NEW  [2000/03/03 Fri 10:20:36]  [210.251.66.227]


NEWです。

>どうもMMXのコードは消化不良な設計の気がしますね。
>痒いところに届きそうで届かないというか…。

僕も、画像関係の仕事なんで色々とMMXを使って最適化するのですが、これだー!と思って設計して実際やってみると、あと一歩のところで命令が使えない(^^; pmaddとか、α合成に最適なんだけど、除算を固定小数点でやろうと思ったら、精度が足りないし(T_T) うまくやれば出来るけど、速くないし...(^^;
まぁ、MMXが発売された時点で現実的なところで妥協したという感じですかね。個人的には浮動小数点より整数の方を多様するので、MMXも拡張されて欲しいですね。PenIIIになって命令増えてるけど、「そうじゃないんだよなぁ」と思います。
歩野零一  [2000/03/02 Thu 22:57:19]  [210.230.134.214]

NEW様、レスありがとうございます。

>「符号付きの16Bitデータ」の乗算です
やはりそうでしょうかねぇ。

RGB->YCrCbおよびDCT2の演算ルーチンをしこしこと作っている
のですが、どうもMMXのコードは消化不良な設計の気がしますね。
痒いところに届きそうで届かないというか…。
NEW  [2000/03/02 Thu 10:13:45]  [210.251.66.227]

MMXの謎について
歩野零一さん:

これは、MMXテクノロジオフィシャルガイドの表記が誤解を生んでいると思うのです。乗算の説明に「ワード」と書いてありますが、実際には「符号付きの16Bitデータ」の乗算です。mulではなくimulと言うと分かり易いかな?

これで納得行きました?
MajinBear  [2000/02/28 Mon 20:55:15]  [210.230.150.146]
BearFactory/熊の家

はじめまして、柏木といいます。

いままではC/C++だけでしたが、アセンブラに興味を持ち
勉強を始めました。

これからも何かとよろしくお願いします(^^;
歩野零一   [2000/02/28 Mon 04:02:49]  [210.251.23.139]

●MMX乗算の謎

さて、私のPCのK6-IIにて次のような条件でpmulhwを行なうと
movq mm0, [aaa1] ; NASM form
movq mm1, [aaa2]
pmulhw mm1, mm0

aaa1: dd 0x000000FF, 0
aaa2: dd 0x00009646, 0

結果:
mm1 = 0x00000000_0000FF96H

となります。本来ならば 00FFH x 9646H = 0095_AFBAHで、この内上位
16bitを取るならば、96(四捨五入??)になるはずですが、なぜかFF96H
になります。
になります。
試しに1111H x 9646H を計算させるとF8F3になります。ソフトバンク
から出ているMMXテクノロジオフィシャルガイドの例(pp.91)の例は、
正しく8D94H x CFCBH = 158BH(158B_F05CH)となります。

Linux上でNASMを使っているのですが、NASMの出力ではgdbも任意の位置
でレジスタの状態を直接出力出来ないようで、何処がおかしいのか皆目
見当が付きません。

キャリーが立っている訳じゃないし、これは一体どういうことなのでしょ
うか??
Toront  [2000/02/27 Sun 23:38:18]  [210.131.1.101]

すいません。
LinuxなどのUnix用の、
gccなどが吐き出す、aout形式のフォーマットに
関しての情報はあるのでしょうか?

Unit Missing Link  [2000/02/23 Wed 22:35:04]  [210.167.181.103]
Unit Missing Link's Web page 'Rhythm'

 皆様、こんばんわ Unit Missing Link の Mist! です。
 お待ちいただいたログページを以下のようにアップしました。

  09/05/99 〜 10/31/99 の書き込みをログページ Message Log 17 に、
  11/01/99 〜 12/31/99 の書き込みをログページ Message Log 18 に、
  01/01/00 〜 01/31/00 の書き込みをログページ Message Log 19 に移動しました。

 とりあえず、場所を作って項目だけでも Assembler FAQs としてアップしよ
うかと思っておる次第です。

 今後おいでいただける皆様に有用で実際に活用していただける Assembler FAQs
とするために、 FAQs アップの際は皆様には内容のチェックをお願いできれば
と思います。

 そろそろメニューのイラストも変えないといけませんなぁ。

 さぁ、 2000 年いってみよう!!
NEW  [2000/02/23 Wed 00:16:03]  [210.251.66.227]

はじめまして。
Webをさまよっていたら、このページに辿り着きました。
アセンブラプログラマって世の中から駆逐されていると思ったら、
ちゃーんと活動されているんですね。嬉しい限りです。
おいらも中学1年でZ80を始めてからかれこれ16年になります。
仕事の大半はC++ですが、速度を要求される面ではインラインアセンブラとV-Tuneを使ってセッセとアセンブラで仕事してます。
社内でまともに書ける人間も一人になってしまい、さびしい限りですが、なんか仲間に会えた様な感じがして良いですね。
MLはいろうかなぁ〜。
houbou  [2000/02/20 Sun 01:16:53]  [203.104.132.85]

> っていうか、FAQ誰かつくらへん?
> あと、よく参照されるurl集とか。(VESAとかNASMとか) 

 作っておきましょうか?
 一応HPは持っているので(というか永久工事中)
 仮ページなら3日〜10日ぐらいで立ち上げられますけど。
 もし立ち上げたらURL書いておきます。

 管理人さんへ
 本ページの別館の件ですが別にムリをして承諾しなくても
 いいですよ。(^^)

Unit Missing Link  [2000/02/19 Sat 23:14:21]  [210.167.181.103]
Unit Missing Link's Web page 'Rhythm'

 こんばんわ、 Unit Missing Link の Mist! です。

APYON さんへ
> Technical の c が抜けてませんか?

 おぉ・・・ APYON さんにご指摘いただけるまで全く気がつきませんでした。
 恐らく掲示板を立ち上げてからずぅ〜っと間違っていたのですね(笑)
 なんともはずかしぃ・・・

 ご報告ありがとうございます、早速修正しまぁす。


AZUCO さんへ
>  あまり無理をせずに更新してくださいね。

 何もできていない管理人ですのに、お気遣いいただきまして本当にありがと
うございます。

 なんとか現状で時間ができるようになりましたので、少しずつでも
Technical Assembler を 2000 年仕様にバージョンアップさせていきたいと
思っています。

  AZUCO さん及びにご利用いただいている皆様方に Technical Assembler を
できるだけ快適にご活用いただけるように更新他していきたいと思っておりま
すので、今後ともよろしくお願いいたします。


 皆様あっての Technical Assembler ですからねっ!!
 ではではっ!!
AZUCO  [2000/02/19 Sat 17:20:03]  [63.12.68.2]

管理人さんへ
あまり無理をせずに更新してくださいね。

もともと管理人になった経緯も割と特殊だと思うので(以前の管理人がwebのノウハウを持っていた現管理人のサイトを間借りして始めたサイトで、そのまま現管理人に引き継がれた:だったと思う:笑)みんなもなるべく自分の出来る事をしてあげてください。

といいつつ自分もなかなか何かを出来ないでいるんですけど。
APYON  [2000/02/19 Sat 03:47:20]  [210.173.233.48]

はじめて書きこませていただきます。
アセンブラネタとまったく関係ないですが…
掲示板のタイトル(ブラウザのタイトルバーにでてるやつ)
「Technial Assembler」
Technical の c が抜けてませんか?

Unit Missing Link  [2000/02/19 Sat 02:25:46]  [210.167.181.103]
Unit Missing Link's Web page 'Rhythm'

 こんばんわ、 Technical Assembler の管理をしております Unit Missing Link
の Mist! です。

 かなりの期間 Technical Assembler の管理ができていなくて、皆様には大
変ご迷惑をおかけしておりますです。

 今回ちょいと掲示板の仕様を変更しました。
 デザインが崩れるので今までしなかったのですが、快適に掲示板をお使いい
ただけるようテーブルタグをはずしました。これで目的部分までの表示時間が
多少改善されたかと思います。

houbou さんへ
>  #管理人さんへ。もうそろそろ過去ログを移動してください。
>  さすがに486な機種だと重いので・・・。

  houbou さん、他皆様、本当に申し訳ありません。ご迷惑おかけしました。
 応急処置として掲示板のログ削りました。
  2, 3日中に過去ログの方もアップしますのでお待ちくださいね。


AZUCO さんへ
> っていうか、FAQ誰かつくらへん?
> あと、よく参照されるurl集とか。(VESAとかNASMとか) 

 構想はあるのですがなかなか手がつけられずに今にいたっています。
 何も情報を提供できない管理人ですので、 FAQs 位はせっせと作りますね。
 リンク集も充実させまぁす。

 ではでは、近日中に Technical Assembler の更新を行いますので、しばら
くお待ちくださいね。
AZUCO  [2000/02/17 Thu 09:26:54]  [202.244.60.101]

>これから質問する方へ。
>できれば過去ログを読んでから答えが無い場合に限って質問をして
っていうか、FAQ誰かつくらへん?
あと、よく参照されるurl集とか。(VESAとかNASMとか) 

え?俺?うーん(滝汗)
Gen  [2000/02/16 Wed 14:25:04]  [210.167.19.5]

はじめましてGenと申します
早速質問ですが、最近NASMを使い始めたのですが
付属している逆アセンブラで逆アセンブラしてだしたソースコードを
textファイルに保存するにはどうすればよいのでしょうか?
ms-dosはあまり使ったことがないのでよろしくお願いします
また、NASMについての日本語のページを教えてくだされば幸いです
ヘラクレス  [2000/02/16 Wed 02:57:35]  [202.226.91.228]
ヘラクレス

はじめまして、ヘラクレスと申します。
今DOSV機のBIOS解析をしてみようと
アセンブラの勉強を始めました。
いきなり壁にぶつかってしまったのですが
BIOSのデータファイルって*.BINで提供されることが
多いと思うのですが、このファイルのフォーマットって特殊
何でしょうか?
拡張子を.lzhに変えると解凍出来、いくつかのファイルが
出てくるのですが、そのファイルを全て圧縮し直しても
元の容量になりません。
後、ROMに書き込まれる際に解凍され書き込まれるのでしょうか?
それとも、.BINファイルが直接書き込まれ、起動する度に
解凍されてメモリにロードされるのでしょうか?
直接アセンブラネタでは無いのですが、教えて下さい。

houbou  [2000/02/15 Tue 03:09:48]  [203.104.132.162]


 どうもhoubouです。

 kaichanさんへ

> ものだったので、「アセンブラを勉強しとくと後が楽だぞ」ということでボクのところにお鉢が回ってきました。

 私も知人にアセンブラやるぞと言ったらそういわれたことがあります。なんでもプログラムの動作がわかりやすくなるそうで。
 (あと解析とかする場合にも便利かな。)

Nvacaさんへ
 i486エミュレータなら既に作っている方はいますよ。
 (記憶が確かならソースコード付きで。)
> http://www.rdos.net/

 あと、i486,Pentiumの資料ならIntelのHP行ってください。
 (ここの過去ログにURLは書いてあります。)

 #管理人さんへ。もうそろそろ過去ログを移動してください。
 さすがに486な機種だと重いので・・・。

 #これから質問する方へ。
 できれば過去ログを読んでから答えが無い場合に限って質問をしてください。
 忙しいのはわかりますが、そういうことを言うと皆忙しい
 ということに成ってしまい世界が成り立たなくなりますので。(^^;

 houbouでした。

  [2000/02/14 Mon 13:56:50]  [38.29.86.228]


News Group見てたら
LINKが沢山あるサイトをみつけたゥ・
> http://www.eg3.com/

日本語のサイトでこんな所があればいいのに(-_-;)
> http://www.nuvisionmiami.com/kip/asm.htm
kaichan  [2000/02/14 Mon 13:02:59]  [210.166.225.52]

houbouさん どうもありがとうございます。早速調べてみます。
ちなみにこのプログラムは、82年2月に完成したプログラムに改良を重ねた年代物で、マニュアルもすでに存在しません。今回の改良は軽いものだったので、「アセンブラを勉強しとくと後が楽だぞ」ということでボクのところにお鉢が回ってきました。
P.S 前回の書き込みの時、名前を書いた後うっかりエンターを押してしまい余計なものを書き込んでしまいました。大変失礼しました。
Nvaca  [2000/02/13 Sun 23:31:34]  [210.131.1.188]
http://www1.webnik.ne.jp/~nishikaw/

はじめまして、Nvacaと言います。

 アセンブラは、5年前から使っているのですが、ほとんどが8086向けのものです。
 ところが、最近、486のエミュレータを作ろうと思い立って、勉強を始めたのですが、何か、マシン語とニモニックの対応が掲載されている書籍はないのでしょうか。8086/286に関しては、そのような本があったのですが、486やPentiumに関してはなかなか見つかりません。なにか資料などをご存じでしたら、お教えください。



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