Вопрос № 73852: Здравствуйте. Скажите пожалуйста, как можно заказать по почте книгу "Ассемблер - это просто!". Я живу в Казахстане. Оплатить вэб-деньгами не могу. Спасибо...Вопрос № 73887: Уважаемые эксперты.
Помогите написать программу на АСМ (prog.exe) что бы винда XP при ее выполнении вываливалась в синий экран.
спасибо...Вопрос № 73896: Здравствуйте.
Помогите ответить на следующие вопросы.
1)Напишите программу которая умножает содержимое пары регистров DX:AX на 2. Измените программу для:
А) умножения на 4
Б) деления на 4
В) умножения 48 бит в регистрах DX:AX...
Вопрос № 73.852
Здравствуйте. Скажите пожалуйста, как можно заказать по почте книгу "Ассемблер - это просто!". Я живу в Казахстане. Оплатить вэб-деньгами не могу. Спасибо
Отправлен: 03.02.2007, 05:51
Вопрос задал: Forster (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: P@lach
Здравствуйте, Forster!
Вы можете заказать наложенным платежом можно по адресу:
http://books.e-goods.ru/product_info.php?item=679&pid=41390
Во всяком случае я ее видел там сегодня!
Извеняюсь если несколько раз отправил Вам это письмо.
Ответ отправил: P@lach (статус: 1-ый класс)
Ответ отправлен: 03.02.2007, 08:28
Вопрос № 73.887
Уважаемые эксперты.
Помогите написать программу на АСМ (prog.exe) что бы винда XP при ее выполнении вываливалась в синий экран.
спасибо
Отправлен: 03.02.2007, 12:32
Вопрос задал: Olmel (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: ASMодей
Здравствуйте, Olmel!
А вы в курсе, что написание подобных программ - это уголовное преступление?(ст.273 УК РФ)
Ответ отправил: ASMодей (статус: Профессионал) Россия, Магнитогорск ---- Ответ отправлен: 03.02.2007, 19:07 Оценка за ответ: 1 Комментарий оценки: тогда надо пересажать половину программистов которые пишут кривые драйвера,а вы если не имеете возможности или знаний не хватает, то цитируйте УК в прокуратуре
Отвечает: ramok
Здравствуйте, Olmel!
поиск в google.com.ua по запросу "bsod xp asm пример"
вот например
http://www.wasm.ru/forum/viewtopic.php?pid=155285
ps
вызов BSOD это обычно первый учебный пример для начинающих драйверо-писателей под винду
Ответ отправил: ramok (статус: Студент)
Ответ отправлен: 04.02.2007, 07:21 Оценка за ответ: 4 Комментарий оценки: Спасибо. Посмотрим.
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Olmel!
почитай статью по ссылке:
и еще почитай:
Крис Касперски-Техника отладки программ без исходных кодов.
в 5-ой главе росписано, что такое плохо и как с ним боротся
Удачи!
Ответ отправил: Зенченко Константин Николаевич (статус: 2-ой класс)
Ответ отправлен: 05.02.2007, 16:33 Оценка за ответ: 4 Комментарий оценки: Если б ссылочку на Криса, 5 бы поставил.
Вопрос № 73.896
Здравствуйте.
Помогите ответить на следующие вопросы.
1)Напишите программу которая умножает содержимое пары регистров DX:AX на 2. Измените программу для:
А) умножения на 4
Б) деления на 4
В) умножения 48 бит в регистрах DX:AX:BX на 2
2) Закодируйте два макроопределения для умножения:
А) MULTBY должна генерировать код для умножения байта на байт
Б)) MULTDW должна генерировать код для умножения слова на слово.
3) Предположим что программа MAINPRO должна вызывать подпрограмму SUBPRO:
а) какая директива в программе MAINPRO указывает ассемблеру что имя SUBPRO определено вне её собственного кода
б) какая директива в программе SUBPRO необходима для того чтобы имя точки входа было доступно в основной программе MAINPRO
4) Предположим что в программе MAINPRO определены переменные QTY как DB VALUE как DW и PRICE DW. Программа SUBPRO должна разделить VALUE на QTY и записать частное в PRICE.
А) каким образом программа MAINPRO указывает ассемблеру что три переменные должны быть доступны другим программам.
Б) каким образом программа SUBPRO указывает ассемблеру что три переменные определены в другом модуле.
5) Измените программу из предыдущего вопроса так чтобы программа MAINPRO передавала все три переменные как параметры. Подпрограмма SUBPRO должна возвращать результат через параметр.
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Алексей Береев!
1)
последовательность в таблице:8087,80186,80286/87,80386/87,80486,p5,p6
mul r8=70..77,26..28,13,9..14,13..18,11np,1m
mul r16=118..133,35..37,21,9..22,13..26,11np,3m
div r8=80..90,29,14,14,16,17np,3m
div r16=144..162,38,22,22,24,25np,4m
shl r,1=2,2,2,3,3,1pu,1m
rcl r,1=2,2,2,9,3,1pu,1m
где:
числа в таблице обозначают, сколько тактов процессор поратит на выполнение команд.
значения указанные для команды SHL справедливы и для команд:ROL,ROR,SAL,SAR,SHR.
значения указанные для команды RCL справедливы и для команды:RCR.
для Р5 np-невозвожность одновременного выполнения в процессоре
pu-возможность выполнения в U-ковейере процессорa
для Р6 m -колличество микроопераций на которое декодируется команда.
из таблицы видно, что команды сдвига работают намного быстрее чем умножения и деления
сдвиг регистра в влево равносильно умножению на 2, и наоброт вправо равносильно делению на 2.
посмотри вопрос 72117
2)
multby macro one,two
mov al,one
mul two
endm
multdw macro one,two
mov ax,one
mul two
вызов:
multdw cx,bx
multdw datax,datay
multdw cx,datay
multdw datax,bx
хотя можно использовать только один макрос multdw.
разница между ними только в том какой размер(8/16) будет в момент компиляции в парметре two, такая команда и будет подставлена в исполняемый файл.
3-4)
Директива: public язык метка
можно обьявлять имена процедур, переменные и константы, которые будут доступны другим модулям
где язык необязательный параметр мoжет принимать значения(C,FORTRAN,PASCAL,BASIC,SYSCALL,STDCALL)
public subpro; в модуле subpro
Директива: extrn язык метка:тип
описывает метку(имена процедур, переменные и константы) которые определены в других модулях с помощью public.
язык значение такое как и у public.
тип должен соответствовать типу метки в том модуле где она определена(BYTE, WORD, DWORD, FWORD, QWORD, TBYTE, ИМЯ СТРУКТУРЫ, FAR, NEAR,ABS)
ABS используется для констант определенных дерективой EQU.
extrn subpro:near; в модуле mainpro
Директива: global язык метка:тип
эта директива действует как extrn и public одновременно
в модуле mainpro как extrn
в модуле subpro как public
Есть еще одна директива: comm рсстояние язык метка:тип
эта директива описывает общие переменные которые будут доступны из всех модулей метка:тип обязательные параметры, необязательный параметр расстояние (NEAR, FAR) ближний, дальний для ближнего используется только смещение для дальнего еще и сегмент. некоторые компиляторы ее не знают.
5)
парметры в процедуру можно передавать используя переменные в памяти, регистры или стек,
из процедуры можно передавать используя переменные в памяти или регистры.