![]() |
Turbo Assembler
|
![]() |
Turbo Assembler 4.0J の 3.5 との違いは? |
![]() |
Turbo Assembler 4.0J と 3.5 との違いは以下のとおりです。
DOS や Windows 3.1 の 16 ビットアプリケーションに限定すれば,TASM 4.0J と3.5 はほとんど同じものです。 また,Turbo Assembler 4.0J と Turbo Assembler 4.0J/Release2 との違いは以下のとおりです。
|
![]() |
TASM3.5 は BC4.x, TC4.0 で使用できますか? |
![]() |
公式には,Borland C++ 4.0J で動作確認の対象としているのはTurbo Assembler 4.0J です。しかし,BC&AFX 3.1 に付属しているTASM 3.5 は,ほとんど TASM 4.0J と同じものなので,Borland C++ 4.0J でも利用できるでしょう。 CD-ROM に含まれるランタイムライブラリソースコードを再構築する場合にもアセンブラが必要ですが,16ビット版のライブラリに限ればTASM 3.5 でも使えるでしょう。ただし,32 ビットターゲットをアセンブルする場合は,TASM 4.0J に含まれる 32 ビットアセンブラが必要になります。 新しいバージョンのコンパイラでフルイオブジェクトをリンクする事は基本的に問題無いでしょう。ただし,デバッグ情報がアップデートされているので,リンクする際には新しいバージョンのリンカを使用しなければなりません。これは TASM4 を BC5 で使用する場合にも当てはまることです。 |
![]() |
Turbo Assembler 4.0J, 4.0J/Relese2, 5.0J は,どんなときに必要になりますか? |
![]() |
製品には 16 ビットと 32 ビットに対応したアセンブラが用意されています。 アセンブリ言語のみで作られたプログラムや,C や C++ のプロジェクトにアセンブリソース(.ASM)を含む場合に必要になります。 BC4.x, TC4.0 や Delphi には,組み込みアセンブラ(インラインアセンブラ)機能がありますので,C/C++ , ObjectPascal のプログラム中にアセンブリコードを使う程度であれば,Turbo Assembler は必要ありません。 CD-ROM に含まれているランタイムライブラリソースコードや別売のTurbo Vision for BC++ 4.0J を完全に再構築するためには,Turbo Assembler が必要です。 また,Turbo Assembler 4.0J /Release 2 には,Delphi で作成した .EXE ファイルをデバッグするためのデバッガが付属しています。 Delphi 2.0J で作成されたプログラムをアセンブラレベルでデバッグする場合には Turbo Assembler 5.0J に含まれる Turbo Debugger が必要になります。 |
![]() |
Turbo Assembler は,Borland C++ がなくても使えますか? |
![]() |
Turbo Assembler は,Borland C++ 以外の言語製品と組み合わせて使うことができます。Turbo Assembler は,アセンブラのみでもアプリケーション開発ができるよう,Turbo Debugger 4.0 やリソースコンパイラが付属しています。しかし,ヘルプコンパイラやResource Workshop は付属していません。また,デバッグ情報の形式が Borland C++ 3.1 以前のものと異なるため,Borland C++ 3.1 以前の処理系でコンパイル/リンクされた実行ファイルをTurbo Debugger 4.0 でデバッグすることはできません。この場合は,Turbo Assembler 4.0 に入っている新しい Turbo Linker を使って,リンクし直さなければなりません。 |
![]() |
Turbo Assembler 4.0J, Turbo Assembler 4.0J/Relese2 は,製品単体で使用できますか? |
![]() |
できます。 Turbo Assembler 4.0J, Turbo Assembler4.0J/Relese2 は,アセンブラのみでもアプリケーション開発ができるよう,Turbo Debugger 4.0 やリソースコンパイラが付属しています。 もちろん,BC4.x, TC4.0 や Delphi などの言語製品と組み合わせて使うこともできます。 しかし,ヘルプコンパイラや Resource Workshop は付属していません。 また,デバッグ情報の形式が Borland C++ 3.1 以前のものと異なるため,Borland C++ 3.1 以前の処理系でコンパイル/リンクされた実行ファイルを Turbo Debugger 4.0 でデバッグすることはできません。 この場合は,Turbo Assembler 4.0 に入っている新しい Turbo Linker を使って,リンクし直さなければなりません。 |
![]() |
既存のアセンブラプログラムに対して,TASM のアセンブルモードをどのように使い分ければよいでしょうか? | ||||||||||
![]() |
--------------------------------------------------- TSM_HELP.TXT ----- |
![]() |
MASM 5.1 用に書かれたアセンブラプログラムには,必ず MASM51 を指定しないといけないのでしょうか? |
![]() |
たいていのプログラムは MASM51 疑似命令を使わなくてもアセンブルできますが,MASM 5.1 特有の機能を利用している場合には MASM51 モードを使う必要があります。次の項では,MASM51 および QUIRKS モードの組み合わせで MASM 5.1 のどの機能がエミュレートされるかを示しています。 --------------------------------------------------------- TSM_HELP.TXT ----- |
![]() |
QUIRKS モードと MASM51 モードで制御できるのはどんな事項でしょうか? | ||||||||||
![]() |
次の表は,QUIRKS および MASM51 モードのいろいろな組み合わせでどんなことが行われるかの一覧になっています。
---------------------------------------------- TSM_HELP.TXT ------- |
![]() |
DOSSEG または .STACK 疑似命令は,どんな場合につかうのでしょうか? |
![]() |
Borland C++ や Turbo Pascal などの高級言語とリンクする Turbo Assember モジュールを開発する場合は,これらの言語のコンパイラがセグメント順序とスタックのセットアップを行うので,DOSSEG または .STACK 疑似命令を使う必要はありません。 この2つの疑似命令で定義されるセグメント名は,高級言語が使用するセグメント名と重複してしまうことがあります。 ただし,単独のアセンブラプログラムを開発する場合は,そのうちのモジュールの1つでセグメント名を定義する必要があります。 DOSSEG は,Microsoft 形式のセグメント順序を使う場合にのみ必要になります。 目的のセグメント順序で TLINK がセグメントを処理できるように設定すれば,プログラマ独自のセグメント順序を定義できます。 TLINK がセグメントをどのように処理するかについては,ドキュメントファイル TLINK.TXT を参照してください。 --------------------------------------------------------- TSM_HELP.TXT ----- |
![]() |
Microsoft C のパッケージに含まれているファイルを Turbo Assembler でアセンブルする場合,どんなオプションを指定すればよいでしょうか? |
![]() |
そのようなアセンブラモジュールの場合は,たとえば次のように MASM51 と QUIRKS を使うようにします。 tasm /jmasm51 /jquirks filename |
![]() |
.COM ファイルはどのようにして作成するのでしょうか? |
![]() |
ソースファイルをタイニーモデル (.MODEL TINY) でアセンブルし,次に示すようにコードセグメントの開始直後に ORG 100h を記述します。 .MODEL TINY .CODE ORG 100h start: .... ; プログラムの本体 END start ; start のエントリポイントを定義 .COM にするプログラムには .STACK を入れてはいけません。 TLINK では,次のように /t オプションを指定すると .EXE ではなく .COM ファイルが作成されます。 次のコマンドラインでは, tlink /t SHOW87 SHOW87.EXE ではなく SHOW87.COM が作成されます。 .EXE ファイルを .COM に変換するには,一定の制約条件があります。この制約条件については,MS-DOS のマニュアルの EXE2BIN に関する説明を参照してください。 |
![]() |
Turbo Assembler で複数のソースファイルをアセンブルする方法は? |
![]() |
ワイルドカード (*, ?) を使うか,ソースファイル名をプラス記号で区切って指定します。 たとえば次のコマンドラインでは,
tasm filt + o* FILT.ASM と,'o' で始まるすべての .ASM がアセンブルされます。 |
![]() |
複数のソースファイルを別々のコマンドラインオプションでアセンブルする にはどうすればよいでしょうか? |
![]() |
Turbo Assembler では,セミコロン (;) を区切り記号として使うと,1 つの DOS コマンドラインで複数のアセンブラコマンドラインを指定できます。 たとえば次のようにすると,
tasm /zi filt; o* FILT.ASM はデバッグ情報付きでアセンブルされ,'o' で始まる .ASM ファイルはデバッグ情報なしでアセンブルされます。 |
![]() |
マイクロソフトの Macro Assembler では,環境変数を定義しておけば,同じコマンドラインを毎回入力する手間を省けますが,Turbo Assembler でも同様でしょうか? |
![]() |
環境変数は使えませんが,より柔軟な方法でそうした手間が省けるようにしています。 Turbo Assembler は,起動時に必ず TASM.CFG というコンフィグレーションファイルを,最初にカレントディレクトリ,次に起動された TASM.EXE が入っているディレクトリから探します。 Turbo Assembler は先に TASM.CFG を処理してから,コマンドラインを処理します。 したがって,TASM.CFG 内に指定されているコマンドラインオプションより,コマンドラインに指定されたものが優先されることになります。 たとえば,常に次のコマンドラインを使っているとすると,
/t /ml /zi /jJUMPS /jLOCALS TASM.CFG ファイルに次のように書いておけばよいわけです。 /t こうしておくと,Turbo Assembler を起動したときに上記のオプションがデフォルト として使われます。 TASM.CFG はカレントディレクトリから (そこにプロジェクトご とに TASM.CFG を作っておくことができます。1 つのディレクトリに複数のプロジェ クトのファイルが入っている場合は,間接コマンドファイルという形で,TASM.CFG と同様なコンフィグレーションファイルを別々に用意することができます。 |
![]() |
間接コマンドファイルとはどんなものですか? |
![]() |
間接コマンドファイルは,Turbo Assembler のコマンドラインの一部または全部が書かれたファイルで,Turbo Assembler を起動するコマンドラインでは,そのファイル名の前に単価記号 (@) を付けて読み込みます。 たとえば,以下のような内容のFILE.CMD という間接コマンドファイルがあると,
/t 次のコマンドラインを実行すれば, tasm @FILE.CMD 次と同じ指定をしたことになります。 tasm /t /ml /zi /jJUMPS /jLOCALS file1+file2+file3+file4 単価記号 (@) 自体は間接コマンドファイルの名前の一部ではないので注意してください。 また,ファイル名の先頭に単価記号が付いたファイルがあると,(実際にはソースコードファイルであっても) 間接コマンドファイルとして扱われてしまいます。 |
![]() |
コマンドラインオプションの指定に,スラッシュではなく円記号 (\) を使うことができますか? |
![]() |
できません。 円記号を使うと,Turbo Assembler (および MASM) では,それがデフォルトドライブのルートディレクトリにあるファイルとして認識されます。 Turbo Assembler (および MASM) は,どちらもスペース文字 ( ) をカンマとして扱うので,円記号を使うことによってファイルが失われることもあります。 たとえば次のようなコマンドラインを実行してしまうと,
tasm \zi prid&joy.asm Turbo Assembler (および MASM) はこれを,ルートディレクトリの ZI.ASM をアセンブルし,その結果をカレントディレクトリのファイル PRID&JOY.ASM に出力する指示であると認識します (オブジェクトファイルのデフォルト拡張子は .OBJ ですが,.ASM が明示的に指定されているので,アセンブラは .ASM を使うことになります)。 |
Trademarks & Copyright (C) 1998 INPRISE Corporation. Last modified on 8-June-1998.