【发布时间】:2020-06-15 02:55:24
【问题描述】:
我正在使用GUI Turbo Assembler(Windows 的 Turbo Assembler GUI 环境,生成在 DOSBox 中运行的 DOS 程序)编写汇编代码。当我运行程序时,汇编器给出了这个错误:
x.asm 错误 x.asm(3) 非法指令
第 3 行是option casemap: none。我的代码是:
.586
.model flat,stdcall ;
option casemap:none ; Line that is giving an error
.DATA ;
x db 2 ;
y db 1
z db 1
.data?
a db ? ;
b db ? ; b=2
c db ? ; c=2
d db ? ; d=2
e db ? ; e=23,5
f db ? ; f=4
g db ? ; g=-18,5
.code ;
beg: ;
mov ah,x ; AH:=x
mov bh,z ; BH:=z
imul bh ; AH:=xz:=2
mov b,ah ; b:=2
mov ah,x ; AH:=x
mov ch,y ; CH:=y
idiv ch ; AH:=AH/CH:=x/y:=2
mov ch,ah ; CH:=2
mov c,ch ; c=2
mov ah,y ; AH:=y
mul ah ; AH=1^2=1
mov bh,z ; BH:=z
imul bh ; AH:=yz:=1
mov ch,x ; CH=x
imul ch ; AH=AHCH=1x=2
mov d,ah ; d=2
mov AH,45 ; AH=45
mov BH, d ; BH=2
idiv BH ; AH=45/2=22,5
mov e, AH ; e=22,5
mov ah,b ; AH=b
mov ch,c ; CH=c
add ah,ch; AH=b+c=2+2=4
mov f, ah; AH=f
mov ah,f ; AH=f
mov ch, e ; CH=e
sub ah,ch; AH=4-22,5=-18,5
mov g,ah ; g=-18,5
mov ah,g ; AH=g
mov ch,5 ; CH=5
sub ah,ch; AH=-18,5-5=-23,5
mov a,ah ; a=AH=-23,5
end beg
【问题讨论】:
-
应该是
.在option之前? (只是猜测) -
@Eraklon :不,在 MASM 和 TASM 语法中,
option是一个前面没有:的指令 -
@Michael Petch 我尝试写 (.data) ,但没有帮助,也许你知道另一个问题?)
-
@Michael Petch 我删除它并尝试运行,但也有错误组装文件:x.asm 错误消息:无警告消息:无通过:1 剩余内存:467k 从 - C:\ 构建可执行文件Users\Admin\Desktop\x.obj,使用开关:'/3 /x /v' Turbo Link 版本 7.1.30.1。版权所有 (c) 1987, 1996 Borland International 致命:模块 X.ASM 中的错误对象文件记录靠近模块文件偏移量 0x0000013E
-
@Michael Petch 汇编文件:x.asm 错误消息:无 警告消息:无通过:1 剩余内存:467k 从 - C:\Users\Admin\Desktop\x.obj 构建可执行文件,使用开关:'/3 /x /v' Turbo Link 版本 7.1.30.1。版权所有 (c) 1987, 1996 Borland International 致命:模块 X.ASM 中的错误对象文件记录靠近模块文件偏移量 0x0000013E 类似这样的东西