Сейчас на форуме: (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› [ASM] Что выполняется приведенным кодом? |
Посл.ответ | Сообщение |
|
Создано: 03 августа 2010 21:33 · Поправил: requte · Личное сообщение · #1 Привожу дизасм листинг двух функций, которые хотелось бы понять. Прошу помощи в силу слабого знания asm. Можно даже построчно, заранее благодарен. Чтобы меня не закидали камнями и сразу не перекинули в раздел для нубов, уточню, каждая из этих функций является единственной функцией внутри библиотеки (их тоже две), они экспортированы и имеют прототип int funcname(int, int); вызываются неким лаунчером. По идее, они имею какой-то отношение к последующему взаимодействию с неким драйвером [somedriver.sys], который лежит рядом с лаунчером. Больше в библиотеках ничего нет (на всякий случай, взять их можно func1 Code:
func2 Code:
![]() |
|
Создано: 03 августа 2010 21:52 · Личное сообщение · #2 |
|
Создано: 03 августа 2010 22:01 · Личное сообщение · #3 |
|
Создано: 03 августа 2010 22:35 · Поправил: Coderess · Личное сообщение · #4 Подробно 256bit.ru/Assembler/Pr/Index20.htm OUT Вывод в порт Команда out выводит в порт, указываемый первым операндом, байт или слово соответственно из регистра AL или АХ. Адрес порта помещается в регистр DX. Если адрес порта не превышает 255, он может быть указан непосредственным значением. Указание регистра-источника (AL или АХ) обязательно, хотя с другими регистрами команда out не работает, и их указывать нельзя. Команда не воздействует на флаги процессора. Пример 1 mov AL,20h ;Команда конца прерывания (EOI) out 20h,AL ;Вывод команды EOI в порт ;20h контроллера прерываний Пример 2 mov DX,3CEh ; Адрес порта mov AL,5 ;Данное out DX,AL ;Вывод байта из AL в порт 3CEh Допустимо использование в качестве операнда-источника расширенного регистра ЕАХ (если адресуемое устройство позволяет записать в его порт двойное слово). Пример mov ЕАХ,1А008РРЗh;Пересылаемое данное mov DX,345h ;Адрес порта out DX,EAX ;Вывод в порт двойного слова ----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes ![]() |
|
Создано: 03 августа 2010 22:48 · Личное сообщение · #5 Забудем временно про func2, с ней разберусь без проблем, поняв работу func1. Как я понял после небольшого погружения, получается следующее... Code:
![]() |
|
Создано: 03 августа 2010 22:59 · Личное сообщение · #6 |
|
Создано: 04 августа 2010 02:33 · Личное сообщение · #7 |
![]() |
eXeL@B —› Вопросы новичков —› [ASM] Что выполняется приведенным кодом? |
Эта тема закрыта. Ответы больше не принимаются. |