NASM大会16bit"操作码和操作数的无效组合"

时间:2015-10-14 21:59:40

标签: assembly nasm 16-bit

所以我试图编写一个程序来创建一个文件和我的名字。 但我得到了操作码和操作数的无效组合"上 mov handle, ax,我不知道为什么。 我看到here你可以做到这一点,为什么我不能这样做。 提前感谢您的帮助。

org 100h

mov ah, 3ch     ;create a file
mov dx, name    ;file name
mov cx, 0       
int 21h

mov handle, ax ; save handle

mov ah, 40h     ;write to file
mov bx, handle
mov cx, 1000    
mov dx, text    ; what to write
int 21h

mov ah, 3eh     ;close the file
mov bx, handle
int 21h


mov ax, 4C00h ; end 
int 21h

section .data
name db "name.txt", 0
text db "Michal",0ah,0dh,"$"

section .bss
handle resb 2

1 个答案:

答案 0 :(得分:3)

NASM Requires Square Brackets For Memory References。正确的语法是mov [handle], axfoo正在使用地址,[foo]是内容。你也可能在其他地方混淆了。