首页 > 解决方案 > 我的汇编 x86-64 代码做错了什么?

问题描述

我今天编写了我的第一个汇编程序之一 - 但我不断收到错误消息。

我正在使用 win64 操作系统和 nasm 汇编程序。

这是我的代码:

section .data

section .bss

rcxOfFirst resq 1d
rdxOfFirst resq 1d


section .text
    global _main
_main:


mov ah,2ch  ; display system time
int 21h

mov rcxOfFirst,RCX
mov rdxOfFirst,RDX

time2.asm:18: 错误:操作码和操作数的组合无效;我的错误信息

time2.asm:19:错误:操作码和操作数的组合无效

标签: assemblyx86-64nasm

解决方案


在 intel 语法中,目标寄存器/地址在操作数列表中排在第一位,源在第二位。

    mov rcx, rcxofFirst ; loads rcx with rcxofFirst.

您混淆了操作数的顺序。此外,您似乎正在使用 DOS 中使用的“int 21h”编写 16 位程序集。


推荐阅读