Прошлые домены больше не функционируют, используйте адрес
ARHIVACH.HK.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна.
Подробности случившегося. Мы призываем всех неравнодушных
помочь нам с восстановлением утраченного контента!
антоха, такая тема, вынужден по определенным обстоятельствам не зная ассемблера переводить прогу на нем с синтаксиса Intel на AT&T (лучше даже не спрашивай, как я до такого докатился). в общем-то со всем разобрался, кроме пары строк.
mov dword [dword GDT_ADDRESS+DESCRIPTOR_ADDRESS+4],
(CS_BASE&0xff000000) | (0x00cf9a00) |
(CS_BASE&0x00ff0000)>>16
во-первых, хуй знает, почему в исходнике это на трех строках. я вообще не слышал о многострочном mov. ладно, черт с ним, переводами строки и табуляцией пренебрежем - получается вроде бы обычный мов, только с одним но.
если просто поменять операнды местами и заменить квадратные скобки на круглые (а именно так нужно поступать с скобками при переводе, разве нет?), получаем too many memory references for 'mov', что вполне оправданно - из памяти в память низя. значит, что-то из операндов - константа.
константы в чертовом AT&T отличаются знаком $ перед числом. я пробовал пихать его везде, где только мог - ошибка не исчезает. ананасы, бля буду, я перешерстил весь гугл, но так и не нашел вообще никакой инфы по mov с использованием логических операторов | и &. еще и >> какой-то, вообще охуеть, по нему вообще ничего (ну не может гугл в поиск символов, увы). поясните за эту хуйню, если сами знаете, ну или ссылку, хотя б на буржуйском. с меня как обычно.