Что я делаю не так с моим сборочным кодом x86-64? - PullRequest
0 голосов
/ 08 марта 2019

Сегодня я написал одну из самых первых программ на ассемблере, но получаю сообщение об ошибке.

Я использую ОС 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: ошибка: недопустимая комбинация кода операции и операндов

1 Ответ

1 голос
/ 13 марта 2019

В синтаксисе intel регистр / адрес получателя идет первым в списке операндов, а источник - вторым.

    mov rcx, rcxofFirst ; loads rcx with rcxofFirst.

Вы перепутали порядок своих операндов.Также вы, кажется, пишете 16-битную сборку с int 21h, которая используется в DOS.

...