|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.06.2010, 10:25 | #1 |
Новичок
Джуниор
Регистрация: 02.06.2010
Сообщений: 0
|
Заплачу за 2 работы. Assembler(masm)
ищу программиста, срочно до 5.06.10 нужно сделать 2 работы. в masm
Задание: Лабораторная работа 5. Разработка собственного прерывания. Программа обработки прерывания - это отдельная процедура, имеющая структуру: SUBR_INT PROC FAR PUSH AX ; сохранение изменяемых регистров ... <действия по обработке прерывания> POP AX ; восстановление регистров ... MOV AL, 20H OUT 20H,AL IRET SUBR_INT ENDP Две последние строки необходимы для разрешения обработки прерываний с более низкими уровнями, чем только что обработанное. Замечание: в лабораторной работе действиями по обработке прерывания может быть вывод на экран некоторого текста или включение/выключение звукового сигнала. Программа, использующая новые программы обработки прерываний при своем завершении должна восстанавливать оригинальные векторы прерываний. Функция 35 прерывания 21H возвращает текущее значение вектора прерывания, помещая значение сегмента в ES, а смещение в BX. В этом случае программа должна содержать следующие инструкции: ; -- в сегменте данных KEEP_CS DW 0 ; для хранения сегмента KEEP_IP DW 0 ; и смещения прерывания ; -- в начале программы MOV AH, 35H ; функция получения вектора MOV AL, 1CH ; номер вектора INT 21H MOV KEEP_IP, BX ; запоминание смещения MOV KEEP_CS, ES ; и сегмента Для установки написанного прерывания в поле векторов прерываний используется функция 25H прерывания 21H, которая устанавливает вектор прерывания на указанный адрес. PUSH DS MOV DX, OFFSET ROUT ; смещение для процедуры в DX MOV AX, SEG ROUT ; сегмент процедуры MOV DS, AX ; помещаем в DS MOV AH, 25H ; функция установки вектора MOV AL, 60H ; номер вектора INT 21H ; меняем прерывание POP DS В конце программы программы восстанавливается старый вектор прерывания CLI PUSH DS MOV DX, KEEP_IP MOV AX, KEEP_CS MOV DS, AX MOV AH, 25H MOV AL, 1CH INT 21H ; восстанавливаем вектор POP DS STI Номер и назначение заменяемого вектора прерывания: 05h - прерывание, генерируемое при нажатии клавиш Shift+PrintScr; Буква определяет действия, реализуемые программой обработки прерываний: В - Выдача звукового сигнала(печать символа с кодом 07h); Замечание: для исключения возможного взаимного влияния системных и пользовательских прерываний рекомендуется отвести в программе под стек не менее 1К байт. Лабораторная работа 7. Использование арифметических операций и процедур в Ассемблере. 1. Разработать на языке Ассемблер IBM PC две процедуры: • одна – выполняет прямое преобразование целого числа, заданного в регистре АХ ( или в паре регистров DХ:АX) в строку, представляющую его символьное изображение в заданной системе счисления (с учетом или без учета знака в зависимости от варианта задания); • другая - обратное преобразование строки, представляющей символьное изображение числа в заданной системе счисления в целое число, помещаемое в регистр АХ ( или в пару регистров DХ:АX) Строка должна храниться в памяти, а также выводиться на экран для индикации. Отрицательные числа при представлении с учетом знака должны в памяти храниться в дополнительном коде, а на экране изображаться в прямом коде с явным указанием знака или в символьном виде со знаком. Пример для однобайтовых чисел: Десятичное число в символ.виде Двоично-десят. упаков.число + 35 00110101 - 35 11001011 1-я цифра задает длину целого числа: 16 бит, вид представления числа: с учетом знака; система счисления для символьного изображения числа: шестнадцатеричная. 2. Написать простейшую головную программу для иллюстрации корректности выполнения заданных преобразований. При этом вызываемые процедуры могут быть одного из следующих типов: А) far(в данном сегменте), Связь по данным между основной программой и подпрограммами должна осуществляться через кадр стека. Б) near, Связь по данным между основной программой и подпрограммами должна осуществляться только через РОНы; |
02.06.2010, 11:42 | #2 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
Обращайтесь. Координаты ниже.
|
02.06.2010, 19:36 | #3 |
Заблокирован
Регистрация: 12.05.2010
Сообщений: 0
|
Готов взяться за проект
номер ICQ: 565460353 или 480964456 mikefreelance@rambler.ru |
03.06.2010, 08:34 | #4 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Пишите black.fregat@gmail.com
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вычисление функции (assembler, masm) | Alex Eagle | Помощь студентам | 0 | 26.04.2009 15:16 |
заплачу за лабу! | Андрей-Ymka | Фриланс | 3 | 17.12.2008 10:29 |
хорошо заплачу | danwu09 | Фриланс | 3 | 05.12.2008 11:28 |