
                               ASSEMBLY
                                  Interrupes
                                Aula nr. 9 de 26

    O assunto desta  aula   INTERRUPES.  Como j disse antes, uma
interrupo  uma requisio da ateno da CPU  por  um  dispositivo
(por  exemplo  o  teclado,  quando  apertamos  uma  tecla!).   A CPU
INTERROMPE o processamento normal e  salta para a rotina que "serve"
a interrupo requisitada, retornando ao ponto em que  estava  ANTES
da  interrupo  quando  finalizar  a  rotina de interrupo.  Assim
funciona a nvel de hardware.

    A novidade nos processadores INTEL  da srie 80x86  que existem
instrues assembly que  EMULAM  a  requisio  de  uma  interruo.
Essas  instrues  nada  mais  so  que  um  "CALL", mas ao invs de
usarmos um endereo para  uma  subrotina,  informamos o ndice (ou o
cdigo) da interrupo requisitada e a CPU se comportar como se  um
dispositivo tivesse requisitado a interrupo...

    As  rotinas  do DOS e da BIOS so chamadas por essas instrues.
Na realidade,  este  artificio  da  famlia  INTEL  facilita muito o
trabalho dos programadores  porque  no  precisamos  saber  onde  se
encontram  as  rotinas  da  BIOS  e do DOS na memria...  Precisamos
saber apenas o ndice da  interrupo  de cada uma das rotinas...  o
endereo a CPU calcula para ns!

    Eis a sintaxe da instruo:

 Ŀ
   INT 21h                                                         
   INT 10h                                                         
 

    Onde 21h e 10h so ndices.

    A CPU sabe para onde saltar porque no inicio da memria de  todo
PC   tem   uma   tabela   conhecida  como  "Tabela  dos  vetores  de
interrupo".  A CPU  pega  o  ndice  na  instruo  INT e "pega" o
endereo correspondente a esse ndice nessa tabela e efetua um  CALL
diferente  (porque  o  fim  de  uma  rotina  de  interrupo tem que
terminar em  IRET  e  no  em  RET  -  IRET    o  RET  da rotina de
interrupo - Interrupt RETurn).

    Uma descrio completa sobre as interrupes disponveis nos PCs
compatveis est disponvel no livro "Guia do programador para PC  e
PS/2" de Peter Norton (recomendo  a aquisio deste livro!).  Ou, se
preferir "literatura  eletronica"  recomendo  o  arquivo HELP_PC.ZIP
(v2.0), disponivel em qualquer bom BBS...

    Quanto as interrues de hardware...   assunto meio complexo no
momento e requer um  bom  conhecimento  de eletronica digital...  no
futuro (prximo, espero!) abordarei esse assunto.
                     
