Сборка - несоответствие типа операнда для «толчка» - PullRequest
0 голосов
/ 15 октября 2019

Я пишу некоторый ассемблерный код, используя системный вызов sys_connect для подключения к прослушивающему сокету на другом компьютере. Для этого системного вызова мне нужно поместить IP-адрес в стек в шестнадцатеричном формате. Вот что я сейчас делаю:

connect:
    .......

    push        $0x8088A8C0                # The ip address in reverse order hexadecimal format
    pushw       $0x907e                 # Port in byte reverse order = 32400
    pushw       $2                          # AF_INET

    lea         (%rsp), %r11               # Struct pointer

    movq        $42, %rax
    movq        %r12, %rdi
    movq        %r11, %rsi
    movq        $16, %rdx
    syscall

Компилятор gcc возвращает мне эту ошибку:

Error: operand type mismatch for `push'

Ошибка относится к строке, в которой указано push $0x8088A8C0. Как мне решить проблему? Заранее спасибо!

...