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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2011, 17:50   #1
Mantikor123
Новичок
Джуниор
 
Регистрация: 07.03.2010
Сообщений: 2
По умолчанию Прерывание клавиатуры

нужна помощь.
есть задание:
Поставить в соответствие десятичным цифрам (0 - 9) азбуку, подобную азбуке Морзе (см. таблицу ниже). Преобразовать введенную с клавиатуры десятичную цифру в соответствующую последовательность точек, тире.

0 − − − − − 5 • • • • •
1 • − − − − 6 − • • • •
2 • • − − − 7 − − • • •
3 • • • − − 8 − − − • •
4 • • • • − 9 − − − − •

все что смог сделать(а если честно найти и разобраться), это только считывать какие клавиши нажаты и вывод их обозначение на экран.
Mantikor123 вне форума Ответить с цитированием
Старый 15.12.2011, 17:59   #2
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

Может поможет, при нажатии ctrl-a выводит hello, у Вас принцип тот же
Код:
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 вне форума Ответить с цитированием
Старый 15.12.2011, 18:10   #3
Mantikor123
Новичок
Джуниор
 
Регистрация: 07.03.2010
Сообщений: 2
По умолчанию

похоже, но не то(( там нужна робота с матрицой...
да и мое знание асса на уровне +\- (((
Mantikor123 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прерывание Ирида Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 27.10.2011 04:36
Прерывание VKorablev Паскаль, Turbo Pascal, PascalABC.NET 5 15.04.2011 21:12
принадлежит ли число, введённое с клавиатуры отрезку (а;в). Границы отрезка вводятся с клавиатуры Maria, Russia Помощь студентам 3 17.02.2009 22:01
6 прерывание ленусик Помощь студентам 5 30.05.2008 16:57