cl, [mem]?
И это тоже вопрос
Да.
movzx ecx, word[mem] Есть в x86_64 вообще-то. Как и byte[mem]
А лучше назначением rcx или ecx?
Я потому и удивился, че это там не так
В fastcall у фасма mov cl, param
И ты хочешь это переделать в movzx ecx, param ?
Агась. Я знаю, что сломается передача константы типа byte 25
Ну, переделывай. Никаких проблем не будет.
А call автоматически выбирает вызов? Или это сам по себе отдельный вызов
Только rcx не используй.
call это инструкция
Ну тип первый аргумент по соглашению о вызовах
А, ну это да
param может быть регистром?
А как там тогда работало mov cl, param? По логике, ты не мог тогда передать регистры больше, чем 1-а байтный. И числа не больше 255.
Он там по размеру операнда определяет, какую инструкцию использовать
А, ну, тогда так: Для 1 байта: mov cl, param Для 2 байт: movzx ecx, param Для 4 байт: mov ecx, param Для 8 байт: mov rcx, param
А почему для 1 байта не movzx?
Ой, тьфу. Сам себе противоречу. Да, movzx.
Обсуждают сегодня