HDIVIDEND DW 1234H
LDIVIDEND DW 5678H
DIVISOR DW 1234H
MOV AX,LDIVIDEND
MOV DX,HDIVIDEND
DIV DIVISOR
我正在接受非法指导"在指令
上运行masm代码 DIV DIVISOR
其中HDIVIDEND是16位的高阶红利。除数是16位。
答案 0 :(得分:1)
是的,您编写的程序应该已正确组装。也许你在文件的另一部分犯了一个错误,这将是你“非法指令”的原因。或许您应该下载更新版本的MASM,因为它可能暂时出现故障。无论如何,这是工作代码,与MASM64 for Windows组装和链接(仍应使用MASM32):
dseg segment para 'DATA'
hdividend dw 1234h
ldividend dw 5678h
divisor dw 1234h
dseg ends
cseg segment para 'CODE'
start proc
mov ax, ldividend
mov dx, hdividend
div divisor
start endp
cseg ends
end
输出:
C:\Masm64>bin\ml64.exe /c division.asm
Microsoft (R) Macro Assembler (x64) Version 8.00.50727.215
Copyright (C) Microsoft Corporation. All rights reserved.
Assembling: division.asm
C:\Masm64>bin\link.exe /subsystem:windows /entry:start division.obj
Microsoft (R) Incremental Linker Version 8.00.50727.215
Copyright (C) Microsoft Corporation. All rights reserved.
希望这有帮助。