Заменить стандартный обработчик клавиатуры(вывод скан кодов) - Assembler

Узнай цену своей работы

Формулировка задачи:

Есть программа которая выводит скан код нажатия \ отпускания клавиши, но она использует прерывание 16h, преподу это не понравилось и он сказал что надо заменить своей процедурой обработки прерывания от клавиатуры. Нужно что бы программа делала все тоже, только не используя 16h. Помогите, пожалуйста, разобраться с этим, так как сам в ассемблере разбираюсь слабо.
;TASM, EXE
.model small                      
.386      
 
.data 
mess0   db   13,10,10,' Symbol: $'
mess1   db   13,10,' ---------------'
        db   13,10,' Press..: $'
mess2   db   13,10,' UnPress: $'

.stack                      
    db  256 dup(?)      

.code  
start: mov ax,@data        
       mov ds,ax
       lea   dx,mess0        
       call  message         
       xor   ax,ax           
       int   16h             
       cmp   al,13          
       je    exit            
       int   29h            
       xchg  ah,al          
       xor   ah,ah          
       push  ax ax ax       
       lea   dx,mess1        
       call  message         
       pop   ax              
       call  outHex         
       lea   dx,mess2        
       call  message         
       mov   ax,'F0'        
       int   29h             
       shr   ax,8            
       int   29h             
       mov   al,','          
       int   29h             
       pop   ax              
       call  outHex         
       jmp   start           
 
exit: mov  ax,4c00h
      int  21h      
;------------------------------------------------
 
message:                     
       mov   ah,9            
       int   21h             
       ret                   
 
outHex:                      
       shl   ax,8          
       xchg  dx,ax           
       mov   cx,2            
@1:    shld  ax,dx,4         
       rol   dx,4            
       and   al,0Fh          
       cmp   al,0Ah          
       sbb   al,69h          
       das                   
       int   29h             
       loop  @1              
       ret                   
       end start

Решение задачи: «Заменить стандартный обработчик клавиатуры(вывод скан кодов)»

textual
Листинг программы
new01:  and ax,7Fh

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5