Вопрос № 56721: Здравствуйте, эксперты!
У меня возникли сложности с созданием резидентной программы. Я скомпилил исходник 12-го выпуска рассылки О. Калашникова - но резидент не работает.. Подскажите пожалуйста, в чём может быть дело? На всякий случай исходный те...Вопрос № 56791: Здравствуйте ! Как можно ввести число с клавиатуры и переслать его в переменную ?...Вопрос № 56801: Здраствуйте, товарищи эксперты! Помогите мне на ассме такую задачу решить, очень срочно:
Нужно посчитать сумму элементов массива(тип word). Причем, нулевой элемент массива – это его длина (количество элементов массива - 1), и элементы массива начинаю...
Вопрос № 56.721
Здравствуйте, эксперты!
У меня возникли сложности с созданием резидентной программы. Я скомпилил исходник 12-го выпуска рассылки О. Калашникова - но резидент не работает.. Подскажите пожалуйста, в чём может быть дело? На всякий случай исходный текст ложу в приложение.
Спасибо.
Приложение:
Отправлен: 26.09.2006, 06:48
Вопрос задал: Const (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: ENS
Здравствуйте, Const!Если ты всё правильно списал из приложения Калашникова.
У тебя всё хорошо скомпилировалось.То ты наверное просто не так запускаешь всё это дело.Два COM файла resid12.com и test12.com.
У тебя должна получиться желтая надпись. Если нет то сделай так.
Приложение:
--------- Учение - свет!
Ответ отправил: ENS (статус: 3-ий класс)
Ответ отправлен: 26.09.2006, 20:02 Оценка за ответ: 5 Комментарий оценки: Спасибо
Отвечает: Луковкин Николай Иванович
Здравствуйте, Const!
Не понял вопроса. У Вас что при компиляции Вашей программы не получаются obj, com, exe файлы или что?
Я переписал Ваше приложение в свой MASM у меня все файлы получились, ошибок в процессе компиляции не возникает!
--------- Главным критерием эффективности того или иного пути может служить лишь то, достиг или нет крекер конечного результата!!!
Ответ отправил: Луковкин Николай Иванович (статус: 1-ый класс)
Ответ отправлен: 26.09.2006, 21:38 Оценка за ответ: 3 Комментарий оценки: Если я написал, что скомпилил, то это уже значит, что с компиляцией проблем нет :). Просто при запуске test12.com я не видел результата работы этого резидента. Оказалось, что нужно было запускать оба исполняемых файла resid12.com и test12.com в пределах одной виртуальной машины.
Вопрос № 56.791
Здравствуйте ! Как можно ввести число с клавиатуры и переслать его в переменную ?
Отправлен: 26.09.2006, 17:10
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: ENS
Здравствуйте, Whiteman!
Вобщем смотри приложение.Функция 10h от INT 16h задержка до нажатия клавиши.
Клавиша помещается в AL.Если ENTER(0Dh) на выход. Нет то прибавляем NUMBER(0)
к это числу, результат в NUMBER т.е. переменная как и хотел.Зачем вычитаем 30h?
C клавиатуры мы получаем символ цифры(смотри таблицу символов будет понятно) и преобразум его что бы можно было производить операции с ним.Но переменная
типа слово т.е. 2 байта не более 65535. Посмотри разберись.Желаю удачи
Приложение:
--------- Учение - свет!
Ответ отправил: ENS (статус: 3-ий класс)
Ответ отправлен: 26.09.2006, 20:34
Вопрос № 56.801
Здраствуйте, товарищи эксперты! Помогите мне на ассме такую задачу решить, очень срочно: Нужно посчитать сумму элементов массива(тип word). Причем, нулевой элемент массива – это его длина (количество элементов массива - 1), и элементы массива начинаются с первого элемента. В любом случае эти крайние элементы (нулевой или последний) не должны участвовать в вычислениях. Заполнить его нужно случайным образом, т.е функцией Random(организовать на ассме). Результат записать в переменную.
Заранее благодарю за ответ!!! :)
Приложение:
Отправлен: 26.09.2006, 18:20
Вопрос задал: Leito (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Pinkbyte
Приведу решение под Windows(может попрет и под DOS, но с 32-битными регистрами). Процессор нужен 586+(кароче пень первый - минимум). Писать буду не все, а вкратце - только интересующие вас моменты
1. Получение случайного числа
rdtsc
результатом выполнения данной команды будет случайное число записанное в eax размером 4 байта. Его вы уже можете преобразовывать как хотите(например брать нижнее слово числа и записывать его в массив)
2. Теперь массив: в ecx-число эл-тов массива(получим по ходу дела), в eax - наше случайное число
mov ecx,word ptr [massiv] ; в ecx - число эл-тов массива за исключением первого
lea esi,massiv+2 ; esi=первый элемент массива
zapoln:
rdtsc ; eax=случ. число
mov [esi],eax ; заполняем тек. элемент массива
add esi,2 ; esi=указатель на след. элемент
loop zapoln ; заполняем массив
xor ebx,ebx ; обнуляем ebx - там будем хранить сумму
mov ecx,word ptr [massiv] ; ecx=число элементов массива за исключением первого
lea esi,massiv+2 ; esi=первый элемент массива
summ:
add ebx,[esi]
add esi,2
loop summ ; на выходе в ebx - сумма элементов массива
Дальше вывод и прочее я думаю реализовать будет не сложно...
--------- Нейтральность - высшее достижение сознания
Ответ отправил: Pinkbyte (статус: 1-ый класс)
Ответ отправлен: 26.09.2006, 23:43