Size: a a a

Ассемблер

2021 April 01

КП

Котеечко Пухнастиньк... in Ассемблер
есть следующий кейс:

ядерный поток, ядерный контекст, ядерный вызов функции Х.

задача: добавить валидацию входных параметров функции Х, в случае, если параметры проходят условие - передать их в функцию Х, иначе - вернуть код ошибки.

Условия: известен прототип функции Х. Тело функции Х доступно для перезаписи.

Особенности: входные парамерты находятся в пользовательском контексте, то есть, вероятнее всего придется менять контекст для их валидации, либо работать с сегментными регистрами.

Суть вопроса: как по максимуму сохранить исходнодное состояние всех, как можно больше всех, регистров в точке входа в пролог функции Х таким образом, что бы потом их можно было восстановить? в лонг-моде ведь нету мнемоники pushall ? а кроме того, есть еще сегментные регистры и прочие.
источник

КП

Котеечко Пухнастиньк... in Ассемблер
и еще такой момент, что тело функции, которая занимается валидацией аргументов хотелось бы написать на С.
источник

КП

Котеечко Пухнастиньк... in Ассемблер
спс
источник

КП

Котеечко Пухнастиньк... in Ассемблер
то есть
источник

КП

Котеечко Пухнастиньк... in Ассемблер
он будет отличаться на разных ядрах
источник

КП

Котеечко Пухнастиньк... in Ассемблер
вот у меня плорог
источник

КП

Котеечко Пухнастиньк... in Ассемблер
и мне надо сюда влепить аля jmp
источник

КП

Котеечко Пухнастиньк... in Ассемблер
сколько я оригинальных снтрукций перетру на каком ядре - я не знаю
источник

КП

Котеечко Пухнастиньк... in Ассемблер
источник

КП

Котеечко Пухнастиньк... in Ассемблер
и перетру ли я 1 инструкцию или пол инструкции - тоже
источник

КП

Котеечко Пухнастиньк... in Ассемблер
и шо делать?
источник

КП

Котеечко Пухнастиньк... in Ассемблер
scpus.c:30: Ошибка: слишком много ссылок на память для «mov»
источник

КП

Котеечко Пухнастиньк... in Ассемблер
"mov creg.rax, rax; "
источник

КП

Котеечко Пухнастиньк... in Ассемблер
ну патимуууууу
источник

КП

Котеечко Пухнастиньк... in Ассемблер
плааааааааак
источник

D

DarkPerl in Ассемблер
😂
источник

НЛ

Ника Левицкая... in Ассемблер
Есть
mas dw dup(0), 0x08
Как его обойти полностью?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Ника Левицкая
Есть
mas dw dup(0), 0x08
Как его обойти полностью?
никак, ты до этого места не дойдешь. у тя ошибка объявления, будет error при компиляции
источник

НЛ

Ника Левицкая... in Ассемблер
Значит
mas dw 8 dup(0)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Ника Левицкая
Есть
mas dw dup(0), 0x08
Как его обойти полностью?
в цикле

mov si,8-1
mov bx, mas
next:
mov ax,word[bx+si*2]
dec si
test si,si
jns next
источник