Size: a a a

Ассемблер

2021 May 21

GG

Gaef Gaef in Ассемблер
Сейчас
источник

A

Aleksandr in Ассемблер
А ты делай dq
источник

GG

Gaef Gaef in Ассемблер
Ну вот допустим есть функция которая возвращает в rax, строку введн с клавиатуры


message db ?


_start:

...<перенимаемые аргументы функции ввода И так далее>
call input_string
mov [message], al ; так вот разрешает
mov message, rax/eax/ax ; так нет
mov [message], rax/eax/ax ;так тоже нет
источник

MA

Max Azatian in Ассемблер
потому что у тебя message - byte, поэтому оно и не дает использовать что-то более чем 8битный регистр
источник

АШ

Алексей Шведов... in Ассемблер
message dq ?

mov [message], rax
источник

GG

Gaef Gaef in Ассемблер
Сейчас проверю
источник

GG

Gaef Gaef in Ассемблер
Все равно почему то ошибка 🤔
источник

АШ

Алексей Шведов... in Ассемблер
Текст ошибки
источник

АШ

Алексей Шведов... in Ассемблер
Та же самая?
источник

GG

Gaef Gaef in Ассемблер
operand size do not match
источник

GG

Gaef Gaef in Ассемблер
Dt тоже ошибку выдаёт
источник

楽園松本 in Ассемблер
В ассемблере нет переменных. То, что имеет название из символов, на самом деле является числом. Это адрес.

Поэтому, когда ты используешь название "переменной", в это место подставляется конкретное число-адрес. В квадратных скобках адрес означает "то, что лежит по этому адресу"
источник

MA

Max Azatian in Ассемблер
мб movq?
источник

GG

Gaef Gaef in Ассемблер
А в чем разница между просто ее названием и ее названием в квадратных скобках
источник

GG

Gaef Gaef in Ассемблер
Это ведь тот же указатель на адрес
источник

GG

Gaef Gaef in Ассемблер
Если без смещения всм
источник

MA

Max Azatian in Ассемблер
название = указатель
[название] = значение
источник

MA

Max Azatian in Ассемблер
ты ж значение меняешь
источник

GG

Gaef Gaef in Ассемблер
А, все
источник

GG

Gaef Gaef in Ассемблер
Понял
источник