-1

Flat Assembler を使用していますが、何かを実行しようとすると、アセンブラー ディレクティブのすべての行に「不正な命令」と書き込まれます。たとえば、以下のコードでは、 that .MODEL SMALLis not legal と記述し、id がこの行を削除すると、 that .STACK 200His not legal と記述します。

.MODEL SMALL
.STACK 200H
.DATA

.CODE
start:
    mov ax, @DATA
    mov ds, ax

    mov ax, 4c00h
    int 21h

END start

このコードでは、次のように機能します。

start:
    mov ds, ax

    mov ax, 4c00h
    int 21h  
4

1 に答える 1

1

さまざまなアセンブラのディレクティブに関する単一の標準はありません。それらの多くがあります。

FlatAssembler (FASM) のディレクティブについては、パブリックでアクセス可能な Web ページにあるFASM プログラマーズ マニュアルで詳細に説明されています。

また、このマニュアルは、パッケージのターゲット OS に応じて、ダウンロードしたパッケージで PDF または TXT ファイルとして提供されます。

すべてのアセンブラ ディレクティブとサポートされている命令をカバーしています。また、多くの例があります。それでも不明な点がある場合は、FlatAssembler メッセージ ボードで質問できます。

問題のコードの場合、FASM コードは次のようになります。

format MZ
entry _CODE:start
stack 200H

segment _DATA

segment _CODE

start:
    mov ax, _DATA
    mov ds, ax

    mov ax, 4c00h
    int 21h

しかし、このプログラムは単純すぎて MZ 実行可能ファイル (コードとデータが 64K バイトを超えるアプリケーションに適しています) にコンパイルするには単純すぎるため、より単純な COM ファイル形式を使用することをお勧めします。

    org 100h

    mov ax, 4c00h
    int 21h
于 2013-02-07T23:12:01.667 に答える