• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

jtcgomes

[ASM] Duvida Teorica... INT vs CALL FAR

2 mensagens neste tópico

Olá pessoal alquem me explica Qual a diferença entre uma INT  (interrupção) e um call FAR?

Gostava de saber tambem como funcionam e quais os registos envolvidos...

Já agora, o que são vectores de interrupção??

thanka pelo help

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando executas uma INT, o processador usa o nº da INT para indexar a tabela de vectores de interrupção (ponteiros) e salta para o endereço que foi indexado. A INT também funciona como uma chamada de subrotina, no final da execução do código da INT há um "return" (embora seja um return especial, um IRET). Uma das diferenças principais é que quem invoca a instrução INT não precisa de saber qual é o endereço do código que irá ser executado, basta-lhe saber o indice. Desta forma o código pode até mudar de endereço sem que o programa que faz a chamada deixe de funcionar.

Para mais detalhes tens que pegar num livro sobre isso ou procurar info na net. Com falas em "CALL FAR" assumo que estás a falar de processadores Intel x86, e nesses as coisas também têm um funcionamento diferente dependendo do modo em que estão a executar.

Os vectores de interrupção são ponteiros (endereços) para código, que vivem numa tabela. Em alguns processadores essa tabela está num endereço fixo de memória, noutros existe um registo especial do processador que indica o endereço da tabela.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora