Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly NASM:未指定操作大小_Assembly_X86_Nasm_X86 16 - Fatal编程技术网

Assembly NASM:未指定操作大小

Assembly NASM:未指定操作大小,assembly,x86,nasm,x86-16,Assembly,X86,Nasm,X86 16,我用emu8086编写了这段代码,它在模拟器中运行得很好,但当我试图用NASM编译它时,它抛出了一个错误:“未指定操作大小”,是否帮助其他人 add bx,[3565] sub bx,0xcc mov [bx],0CCh NASM无法理解像mov[bx],0CCh这样的行是什么意思。清晰地 这会将某些内容设置为0CCh。但是你想让bx指向一个字节吗 ,短的,长的。。。?这将表现为相当不言自明的事实 错误:在NASM中未指定操作大小。您可以避免指定类型的错误,如下所示: SECTION .tex

我用emu8086编写了这段代码,它在模拟器中运行得很好,但当我试图用NASM编译它时,它抛出了一个错误:“未指定操作大小”,是否帮助其他人

add bx,[3565]
sub bx,0xcc
mov [bx],0CCh

NASM无法理解像
mov[bx],0CCh
这样的行是什么意思。清晰地 这会将某些内容设置为0CCh。但是你想让bx指向一个字节吗 ,短的,长的。。。?这将表现为相当不言自明的事实
错误:在NASM中未指定操作大小。您可以避免指定类型的错误,如下所示:

SECTION .text
    global start

start:
    add bx,[3565]
    sub bx,0xcc
    mov byte [bx],0CCh

那会把它组装好的。。。当然,不要试图按原样运行它,它会产生
异常\u访问\u冲突
。只要用调试器打开它,你就会明白为什么。

NASM肯定也告诉过你在哪行代码上发现了错误
mov[bx],0CCh
需要一个大小说明符,例如
mov byte[bx],0CCh
。而且,
添加bx,[3565]
看起来很奇怪。为什么要尝试从偏移量为3565的内存中读取?