Assembly 不';编译汇编指令
我使用的是平面汇编程序,当我想运行一些东西时,它会在每一行汇编指令中写入:“非法指令”。 例如,在下面的代码中,它会写Assembly 不';编译汇编指令,assembly,x86,fasm,Assembly,X86,Fasm,我使用的是平面汇编程序,当我想运行一些东西时,它会在每一行汇编指令中写入:“非法指令”。 例如,在下面的代码中,它会写.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 对于这段代码,它是有效的: sta
.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
关于不同汇编程序的指令,没有一个单一的标准。有很多 中详细介绍了FlatAssembler(FASM)的指令,该指令位于公共和可访问的网页上 此外,本手册应以PDF或TXT文件的形式在下载的软件包中提供给您,具体取决于软件包的目标操作系统 它涵盖了所有汇编指令和支持的指令。还有很多例子,如果还有什么不清楚的地方,你可以继续问 对于被质疑的代码,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可执行文件(适用于代码+数据大于64KB的应用程序),我建议使用更简单的COM文件格式:
org 100h
mov ax, 4c00h
int 21h
有些东西告诉我,你甚至没有考虑阅读汇编程序的文档,并且假设它将支持其他汇编程序所支持的。不,我没有,我正在阅读的书没有指定我应该更改/使用这个汇编程序,所以我只是写了…这是TASM或MASM语法和指令,FASM不支持它们。找一个合适的汇编器或者学习如何使用这个。对于那些不喜欢MS的人,Japheth的JWASM应该处理它。。。