Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2010, 10:25   #1
ilisss
Новичок
Джуниор
 
Регистрация: 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, Связь по данным между основной программой и подпрограммами должна осуществляться только через РОНы;
ilisss вне форума Ответить с цитированием
Старый 02.06.2010, 11:42   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Обращайтесь. Координаты ниже.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 02.06.2010, 19:36   #3
mikefreel
Заблокирован
 
Регистрация: 12.05.2010
Сообщений: 0
По умолчанию

Готов взяться за проект
номер ICQ: 565460353 или 480964456
mikefreelance@rambler.ru
mikefreel вне форума Ответить с цитированием
Старый 03.06.2010, 08:34   #4
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Пишите black.fregat@gmail.com
Black Fregat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление функции (assembler, masm) Alex Eagle Помощь студентам 0 26.04.2009 15:16
заплачу за лабу! Андрей-Ymka Фриланс 3 17.12.2008 10:29
хорошо заплачу danwu09 Фриланс 3 05.12.2008 11:28