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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2010, 16:23   #1
xWinDx
 
Регистрация: 13.04.2010
Сообщений: 7
По умолчанию Замена прерывания

Всем доброе время суток....
Нужна срочно ваша помощь...может вас не затруднит...
Задача такая, заменить прерывание от клавиатуры... так чтоб при нажатии на клавишу выводилось на 3 символа вперёд...(Например при нажатии 1 выводит 4, на "a" выводит "d") Спасибо всем заранее...
Нужно очень срочно... Спасибо...
xWinDx вне форума Ответить с цитированием
Старый 24.05.2010, 18:24   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Могу сделать за вознаграждение. Контакты ниже.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 24.05.2010, 18:59   #3
xWinDx
 
Регистрация: 13.04.2010
Сообщений: 7
По умолчанию

Нет спасибо))) Может найдутся те кто поможет за спасибо...
xWinDx вне форума Ответить с цитированием
Старый 24.05.2010, 19:40   #4
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

за спасибо, пример обработчика прерывания:
Код:
model tiny
.code
org 100h
main:
;============================================
;яюыучхэшх трсышцы тхътюЁют
        push es
        xor ax,ax
        mov es,ax

;==========================================
;яюыучхэшх тхътюЁр 9 яЁхЁытрэшя
        mov ax,word ptr es:[09h*4]
        mov word ptr old_handler,ax
        mov ax,word ptr es:[09h*4+2]
        mov word ptr old_handler+2,ax

;=========================================
;чрьхэр тхътюЁр
        mov ax,cs
        mov word ptr es:[09h*4+2],ax
        mov ax,offset handler
        mov word ptr es:[09h*4],ax

;=======================================
;юётртшть Ёхчхфхэтэю
        pop es
        mov bx,offset last_byte
        int 27h

;=====================================
;ёюсёттхээыщ юсЁрсютчшъ
handler:
      push es ds si di cx bx dx ax
      xor ax,ax
      mov ah,02h
      int 16h
      test al,00000100b
      jz standart_handler	;если не нажата клавиша ctrl переход на стандартный обработчик
	in al,60h	      
      cmp al,1eh	;если нажата клавиша "a" то выводим на экран hello world в противном случае проверяем "s"
	jne ctrl_s

	mov ax, cs
     mov ds, ax
     mov ax, 0B800h
     mov es, ax
     mov si, offset message
     xor di, di
     mov cx, msg_len
     rep movsb
	
;	push es
;	mov ax,cs
;	mov es,ax
;	
;	mov ah,13h
;	mov cx,11
;	mov dh,3
;	mov dl,3
;	mov bp,offset message
;	int 10h
;	pop es
;	jmp end_handler
ctrl_s:
	cmp al,1fh	;если нажата клавиша "s" то выводим на экран hello world в противном случае переходим на стандартный обработчик
	jne standart_handler
	
;=================================================
;чртхЁшхэшх юсЁрсютъш
end_handler:
        mov al,20h      ;яюёырть ёшуэры "ъюэхц яЁхЁытрэшя"
        out 20h,al  ; ъюэтЁюыыхЁу яЁхЁытрэшщ
        pop ax dx bx cx di si ds es
        iret


;==================================================
;тючтЁрт ётрэфрЁтэюую яЁхЁытрэшя
standart_handler:
        pop ax dx bx cx di si ds es
        jmp dword ptr cs:old_handler
	  iret

        old_handler dd ?
        t db ?
        message db 'H',0Ch,'E',0Ch,'L',0Ch,'L',0Ch,'O',0Ch,' ',0Ch
    		db ' ',0Ch,'W',0Ch,'O',0Ch,'R',0Ch,'L',0Ch,'D',0Ch
        msg_len = $ - message
last_byte:
end main
Будут конкретные вопросы спрашивай, а писать за тебя никто не будет
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 24.05.2010, 20:09   #5
xWinDx
 
Регистрация: 13.04.2010
Сообщений: 7
По умолчанию

Спасибо и на этом) Большое спасибо...Надеюсь мне это поможет..
xWinDx вне форума Ответить с цитированием
Старый 24.05.2010, 20:18   #6
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

весы по середине, будут конкретные вопросы пиши
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прерывания alexdrew Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 16.05.2010 00:38
Замена кода программы с Delhi5 на Delhi7 либо замена базы данных с Acessa на MySQL DorianLeroy Фриланс 8 18.02.2009 18:52
Прерывания на портах ForzaJuve Win Api 3 16.02.2009 18:40
Прерывания Kn793 Общие вопросы Delphi 3 10.01.2009 18:43
прерывания sergei64_89 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 22.04.2008 13:37