【问题标题】:NASM: operation size not specifiedNASM:未指定操作大小
【发布时间】:2021-03-02 21:14:12
【问题描述】:

我在 emu8086 中编写了这段代码,它在模拟器中运行良好,但是当我尝试使用 NASM 编译它时,它向我抛出了错误:“未指定操作大小”,请帮助某人?

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

【问题讨论】:

  • 肯定 NASM 还告诉您在哪一行代码中发现了错误? mov [bx],0CCh 需要一个大小说明符,例如mov byte [bx],0CCh。另外,add bx,[3565] 看起来很奇怪。为什么要尝试从偏移 3565 处的内存读取?

标签: assembly x86 nasm x86-16


【解决方案1】:

NASM 无法理解您所说的 mov [bx],0CCh 之类的行是什么意思。清楚地, 这会将某些东西设置为 0CCh。但是你想让 bx 指向一个字节吗 , 短长, ...?这将表现为相当不言自明的 error: operation size not specified 在 NASM 中。您可以避免指定类型的错误,如下所示:

SECTION .text
    global start

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

组装好了...当然,不要尝试按原样运行它,它会产生EXCEPTION_ACCESS_VIOLATION。只需用调试器打开它,您就会明白为什么。

【讨论】:

    猜你喜欢
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    • 2016-08-02
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多