funções de int86 e de int86x
Estas funções são as relações da interrupção do software do general 8086 definidas em registos de dos.h. são ajustadas aos valores desejados e estas funções são chamadas para invocar as interrupções do MS-DOS. A declaração da função int86 é como segue:
int int86(int intno, union REGS *inregs,
union REGS *outregs);
int86x é a variação da função int86. Declara-se como segue:
int int86x(int intno, union REGS *inregs,
union REGS *outregs, struct SREGS *segregs);
As funções int86 e int86x executam uma interrupção do software 8086 especificada pelo intno do argumento ou nós podemos dizer que a interrupção a gerar está especificada pelo intno. Com função de int86x o acesso é possível somente ao ES e ao DS e não ao CS e aos SS assim que você pode invocar uma interrupção do software 8086 que faça exame de um valor do DS diferente do segmento de dados do defeito e/ou faça exame de um argumento no ES.
Estas funções copíam valores do registo dos inregs nos registos antes que execução da interrupção do software. A função int86x copía também os segregs->ds e os valores dos segregs->es nos registos correspondentes antes de executar o software interrompem. Esta característica permite os programas que usam ponteiros distantes ou um modelo grande da memória dos dados especificar que segmento deve ser usado para a interrupção do software.
As funções copíam os valores atuais do registo aos outregs, status da bandeira carregar ao campo de x.cflag nos outregs e o valor das 8086 bandeiras regista ao campo de x.flags nos outregs, depois que a interrupção do software retorna.
A função int86x também restaura o DS e ajusta os segregs->es e os campos dos segregs->ds aos valores do segmento correspondente registam. Em funções os inregs e em outregs podem apontar à mesma estrutura e ambas as funções retornam o valor do MACHADO depois que conclusão da interrupção do software. Se a bandeira carregar for ajustada, indica geralmente que um erro ocorreu.
|