Size: a a a

Ассемблер

2020 December 21

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
Можно начать с прерываний 21h, 16h, 10h.
источник

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
источник

楽園松本 in Ассемблер
Алексей Маринченко
И ещё такой вопрос. Прерывания часто сравнивают с функциями, но в них ничего не передают. Но предварительно заполняют регистры. Правильно ли я понимаю что прерывания берут данные из регистров?
Прерывание это операция процессора. Фактически, это вызов подпрограммы по косвенному адресу, то есть, переход на адрес, значение которого хранится в памяти по другому адресу. В том другом месте находится участок кода, называемый обработчиком прерывания. Поскольку заранее далеко не всегда известно, где в памяти находится что, то программисты договорились передавать значения обработчику прерывания не через конкретный адрес в памяти, а через регистры процессора.
источник

D

Dim in Ассемблер
флаги прерываний
источник

A

Aleksandr in Ассемблер
Господа, а какой самый простой способ проверить что определенное значение - валидный адрес, при условии что все это дело под x86 виндой?
источник

D

Dim in Ассемблер
вычесть нужный адрес и проверить на нуль
источник

A

Aleksandr in Ассемблер
В голову приходит только напрямую туда постучаться и проверить прилетит ли исключение
источник

A

Aleksandr in Ассемблер
Dim
вычесть нужный адрес и проверить на нуль
из чего вычесть и какой нужный?
источник

D

Dim in Ассемблер
из искомого - нужный
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Алексей Маринченко
Или метка как в шарпе и бейсике - для goto?
представь что твой кол это жд дорога со станциями. есть большие станции МОСКВА -это глобальные метки, есть маленькие станции Химки- это локальные метки относительно глобальной, и полное название будет МОСКВА.Химки
источник

A

Aleksandr in Ассемблер
Dim
из искомого - нужный
а у меня нет искомого и нужного. есть просто адрес и надо проверить валидный ли он
источник

D

Dim in Ассемблер
Aleksandr
а у меня нет искомого и нужного. есть просто адрес и надо проверить валидный ли он
а диапазон адресов есть?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
楽園松本
Но это поведение NASM. Другие ассемблеры будут вести себя иначе.
точно также (фасм)
источник

A

Aleksandr in Ассемблер
В теории, можно выковырять его из информации о процессе, но это сложнее чем просто проверять наличие исключения
источник

A

Aleksandr in Ассемблер
Aleksandr
Господа, а какой самый простой способ проверить что определенное значение - валидный адрес, при условии что все это дело под x86 виндой?
о, нашел решение, IsBadReadPtr
источник

АМ

Алексей Маринченко... in Ассемблер
Спасибо, посмотрю
источник

АМ

Алексей Маринченко... in Ассемблер
楽園松本
Прерывание это операция процессора. Фактически, это вызов подпрограммы по косвенному адресу, то есть, переход на адрес, значение которого хранится в памяти по другому адресу. В том другом месте находится участок кода, называемый обработчиком прерывания. Поскольку заранее далеко не всегда известно, где в памяти находится что, то программисты договорились передавать значения обработчику прерывания не через конкретный адрес в памяти, а через регистры процессора.
Понял, спасибо
источник

АМ

Алексей Маринченко... in Ассемблер
Это типа шпаргалка прерываний?
источник

АМ

Алексей Маринченко... in Ассемблер
Кстати, исходя из разрядности есть ограничения на размер чисел / строк? То есть для 32-битного ассемблера 32-битное число - это потолок? Или нет, иди изучай и не задавай тупых вопросов? 😂😂😂
источник

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
Алексей Маринченко
Это типа шпаргалка прерываний?
Не просто шпаргалка, а подробная дока.
источник