в стек? если брать x64 то push rdx это 8 байт, push eax это 4 байта?
По размеру операнда, конечно
задал этот вопрос гпт тот говорит что всегда 8 байт...гугл вообще дичь выдал
получается по размеру операнда, а не по размеру значения? к примеру mov rax,123 push rax все равно будет 8 байт? Так можно делать, но это плохо так как нужно оптимизированно работать с значениями либо включить в компиляторе оптимизатора который сам это все сделает. Так?
Пишешь руками push ax и в стек пойдет только младшие два байта🤷♂️
Определение по значению было бы крайне не оптимально и неудобно. Во-первых, потребовало бы каждый раз проверять размер значения. Во-вторых, функции получают аргументы через стек, и если в зависимости от значения будет меняться положение аргументов в стеке - это будет крайне неудобно
упихать то можно по размеоу танных только как ты потом pop делать будешь, он по минимуму будет кратен dword в 32 битном режиме
Обсуждают сегодня