不编译Assembly directivies

时间:2013-01-30 15:06:48

标签: assembly x86 fasm

我正在使用Flat Assembler,当我想运行某些东西时,它会写入:汇编指令的每一行的“非法指令”。 例如,在下面的代码中,它会写.MODEL SMALL不合法,如果id删除此行,则会写.STACK 200H不合法,等等。

.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  

1 个答案:

答案 0 :(得分:1)

关于不同汇编程序的指令,没有一个单一的标准。他们中有很多人。

FlatAssembler(FASM)的指令在FASM programmer's manual中详细描述,FlatAssembler message board位于公共和可访问的网页上。

此外,本手册应在下载的软件包中以PDF或TXT文件的形式提供,具体取决于软件包的目标操作系统。

它涵盖了所有汇编程序指令和支持的指令。还有许多例子,如果仍然不清楚,你可以问{{3}}。

对于质疑代码,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可执行文件(适用于代码+数据大于64Kbyte的应用程序),我建议使用更简单的COM文件格式:

    org 100h

    mov ax, 4c00h
    int 21h