-1

我正在使用平面汇编程序,当我想运行某些东西时,它会在汇编程序指令的每一行中写入:“非法指令”。例如在下面的代码中,它会写出.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  
4

1 回答 1

1

关于不同汇编器的指令没有一个单一的标准。其中有很多。

FlatAssembler (FASM) 的指令在FASM 程序员手册中有详细描述,该手册位于公共和可访问的网页上。

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

    org 100h

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