Size: a a a

Ассемблер

2021 August 13

P

ProMiNick in Ассемблер
фасм воистину инструмент дьявола ибо может все. если кусок кода переносимый то взять можно хоть из статичной либы, хоть с динамичной, хоть с либы собраной для другой ос - указал смещение в файле с которого брать, размер, вокруг этого всего оформил тело процедуры в нужном соглашении с нужным числом параметров. - Ну это самый ленивый способ - аля статическая линковка откуда угодно. (ОГОВОРЮСЬ ПЕРЕНОСИМЫЙ КОД), - непереносимый - придется дизассмовый листинг немножко править.
источник

s

s54816 in Ассемблер
Да пожалуйста.
myxxx_obj.asm: format ms coff  ... include 'code.asm'
myxxx_dll.asm: format pe gui dll ... include 'code.asm'.
источник

A

Aleksandr in Ассемблер
RAX:RDX = (RAX << 64) | RDX;
источник

И

Игорь in Ассемблер
Привет всем, сегодня тут тема была про потоки. Так вот интересно как это работает на винде, если мы делаем скажем 2 потока в программе, есть ли уверенность что они попадут на разные ядра физически или это будут псевдо потоку, так как смотрю в винде в диспечере задач пока винда работает уже 1к+ потоков, как то многовато для равномерного распределения на 2 ядра например
источник

A

Aleksandr in Ассемблер
Файл под каждый выхлоп? Проще иметь один файл с правилами сборки
источник

ВВ

Вячеслав Васютин... in Ассемблер
Я же новичок, ☝️ не понятно.
источник

A

Aleksandr in Ассемблер
Думаю, тебе нужно переходить на dd. С его помощью еще более гибко выйдет
источник

A

Aleksandr in Ассемблер
Тогда как сказали выше, представь что RAX:RDX превращаются в единый большой регистр
источник

s

s54816 in Ассемблер
Фасм изначально и был dd, ассемблер там появился позже, чем манипуляции над данными. Но как-то так получилось, что ассемблер хороший, а данные обрабатывать не очень удобно на том обрубке интерпретатора перемешанном с препроцессором, который у нас сейчас в фасме есть. Было бы нормально, можно было бы include 'coff_parser.inc' и полноценно линковаться с чем угодно. А сейчас это где-то посередине между «невозможно» и «невероятный набор костылей» (я пробовал 🙂).
источник

A

Aleksandr in Ассемблер
Спасибо что можно создать наружу обьектники для внешнего линкера
источник

ВВ

Вячеслав Васютин... in Ассемблер
xor rdx, rdx
... еще кокой-то код
mov word[snakeposx], dx


Копирует значение из rdx в [snakeposx], но 2-х байтовый тип данных?
источник

s

s54816 in Ассемблер
Да, копирует только младшие два байта (16-бит).
источник

ВВ

Вячеслав Васютин... in Ассемблер
А я правильно понял?
xor rdx, rdx ; заносит 1 в rdx?
источник

A

Aleksandr in Ассемблер
0
источник

ВВ

Вячеслав Васютин... in Ассемблер
А, ноль...
источник

ВВ

Вячеслав Васютин... in Ассемблер
Ок. Спасибо всем
источник

P

ProMiNick in Ассемблер
нет, 0, но это длинный метод, быстрее xor edx,edx, а старшие разряды занулятся из за того что приемник операции 32 разрядный регистр. Но видать недокомпилятор компилил.
источник

d

disba1ancer in Ассемблер
Так там много чего порезали из x86, та же дос машина не работает под ia-32e
источник

DF

Dollar Føølish in Ассемблер
это 32-битный "лонгмод"?
источник

d

disba1ancer in Ассемблер
По такой логике можно считать всю архитектуру x86 16ти битной
источник