Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 561
от 02.10.2006, 01:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 344, Экспертов: 30
В номере:Вопросов: 3, Ответов: 4


Вопрос № 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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.36 от 06.09.2006
Яндекс Rambler's Top100

В избранное