Home       Pesquisar       Contacto       Guestbook       Links Úteis       Webmaster

 
Aumentar o tamanho do texto   Diminuir o tamanho do texto

∞ Utilização das Interrupções (Interrupts) ∞    | Int 21H |

Nota: Para indicar que um determinado número está escrito em hexadecimal (base 16) uso 'H', nunca devendo ser escrito no código.

Acesso e controlo de dispositivos e directorias.

 

Função 19H

Get current drive

Devolve a drive actual

 

Argumentos:

    AH = 19H

Devolução:

    AL = Drive

 

Função 1AH

Set disk transfer area (DTA)

Atualiza a área de transferência do disco.

 

Argumentos:

    AH = 1AH

Devolução:

    DS:DX - Aponta para nova DTA (geralmente 80H)

 

Função 1BH

Get current drive information

Devolve informação da drive actual.

 

Argumentos:

    AH = 1BH

Devolução:

    AL = Setores por unidade de alocação

    CX = Bytes por setor

    DX = Número da unidade de alocação

    DS:DX = Aponta para FAT ID byte

 

Função 1CH

Get drive information

Devolve informação da drive.

 

Argumentos:

    AH = 1CH

    DL = Número da drive

Devolução:

    AL = Setores por unidade de alocação

    CX = Bytes por setor

    DX = Número da unidade de alocação

    DS:DX = Aponta para FAT ID byte

 

Função 39H

Create subdirectory

Cria um subdirectório.

 

Argumentos:

    AH = 39H

    DS:DX = Aponta para FAT ID byte

Devolução:

    Nada

 

Função 3AH

Delete subdirectory

Apaga um subdirectório.

 

Argumentos:

    AH = 3AH

    DS:DX = Aponta para FAT ID byte

Devolução:

    Nada

 

Nota: O directório deve estar vazia

 

Função 3BH

Set current directory

Actualiza o directório actual.

 

Argumentos:

    AH = 3BH

    DS:DX = Aponta para uma ASCIIZ string, indicando o caminho

Devolução:

    Nada

 

Função 3CH

Create file

Cria um novo ficheiro.

 

Argumentos:

    AH = 3CH

    CX = Atributos do ficheiro

         00H - Normal
         01H - Somente leitura
         02H - Oculto
         03H - Sistema

    DX = Endereço Offset do caminho do ficheiro (nome usado no segmento .DATA especifica o nome do ficheiro)

    DS = Endereço do segmento do caminho do ficheiro (endereço de .DATA)

Devolução:

    AX = Código de erro

         00H - Successful
         01H - Invalid function number
         02H - File not found
         03H - Path not found
         04H - No more handles available
         05H - Access denied
         06H - Invalid handle
         07H - Bad memory control blocks
         08H - Insufficient memory
         09H - Invalid memory block address
         0AH - Invalid environment
         0BH - Invalid format
         0CH - Invalid access code
         ...
         1FH - General failure

 

Nota: Esta função da interrupção destruirá o ficheiro existente. Para evitar esta situação, pode usar a função 5Bh. 5B (disponível só após do DOS 3.0) é idêntico a 3C, mas retorna um código de erro se o ficheiro já existir.

Ambas as interrupções (3C e 5B) deixam o ficheiro aberto (índices parcialmente na RAM). Deve-se fechar o ficheiro antes de terminar o programa (INT 21/3E).

 

Função 3DH

Open file

Abre um ficheiro existente.

 

Argumentos:

    AH = 3DH

    AL = Atributos do ficheiro

         00H - Normal
         01H - Somente leitura
         02H - Oculto
         03H - Sistema

    DX = Endereço Offset do caminho do ficheiro

    DS = Endereço do segmento do caminho do ficheiro (endereço de .DATA)

Devolução:

    Caso bem sucedida:

    AX = File handle (dígito simples)

    Caso mal sucedida:

    AX = Código de erro    (INT 21 AH = 3C)

 

Nota: DS:DX ponto para a etiqueta usada no segmento de .DATA especifica o nome do ficheiro como cadeia de caracteres ASCII. Os ficheiros abertos devem ser fechados antes de terminar o programa (INT 21/3E).

 

Função 3EH

Close file

Fecha um ficheiro existente.

 

Argumentos:

    AH = 3EH

    BX = File handle (dígito simples produzido em AX pelo comando Open file)

Devolução:

    CF = 0 - Successo

    CF = 1 - Falha

         AX = Código de erro    (INT 21 AH = 3C)

 

Nota: Uma falha no fecho do ficheiro pode resultar na sua destruição completa! Colocar sempre o comando Close File o mais perto possível da última operação com o ficheiro (leitura ou escrita), no caso de o programa falhar enquanto o ficheiro esta aberto.

 

Função 3FH

Read file

Lê um ficheiro existente.

 

Argumentos:

    AH = 3FH

    BX = File handle

    CX = Número de byte a ler

    DX = Endereço Offset do buffer

    DS = Endereço do segmento do buffer

Devolução:

    CF = 0 - Successo

         AX = Número de byte lidos
         Se (AX < CX) ou (AX = 0), chegou ao fim do ficheiro

    CF = 1 - Falha

         AX = Código de erro    (INT 21 AH = 3C)

 

Nota: .Data lê do inicio do ficheiro até à localização apontada por DS:DX.

Por esta razão, deve-se ter a certeza que o número de bytes lidos não excede a memória alocada indicada no segmento de dados.

 

Função 40H

Write File

Escreve um ficheiro.

 

Argumentos:

    AH = 40H

    BX = File handle

    CX = Número de byte a escrever

    DX = Endereço Offset do buffer

    DS = Endereço do segmento do buffer

Devolução:

    CF = 0 - Successo

         AX = CX = Número de byte escritos

    CF = 1 - Falha

         AX = Código de erro    (INT 21 AH = 3C)
         Se AX != CX ocorreu um erro (p.e. disco cheio), mesmo que CF = 0

 

Nota: .Data lê do inicio do ficheiro até à localização apontada por DS:DX.

Por esta razão, deve-se ter a certeza que o número de bytes lidos não excede a memória alocada indicada no segmento de dados.

 

Função 41H

Delete File

Apaga um ficheiro.

 

Argumentos:

    AH = 41H

    DX = Endereço Offset do buffer

    DS = Endereço do segmento do buffer

Devolução:

    Nada

 

Função 42H

Position file pointer

Posiciona ponteiro do ficheiro.

 

Argumentos:

    AH = 42H

    AL = Código do método

    BX = File handle

    DX = Endereço Offset do buffer

    DS = Endereço do segmento do buffer

Devolução:

    DX:AX = Ponteiro para o arquivo

         00H - offset absoluto do byte desde o início do arquivo

         01H - relativo do byte desde a posição atual

         02H - offset absoluto do byte desde o fim do arquivo

 

Função 43H

Get or Set attributes

Devolve ou Actualiza os atributos do ficheiro.

 

Argumentos:

    AH = 43H

    AL = 0 - Get

    AL = 1 - Set

         CX = Novo valor do atributo

    DS:DX = Aponta para um ASCIIZ

Devolução:

    Em caso de Get:

    Nada

    Em caso de Set:

    CX = Antigo valor do atributo

 

Função 47H

Get current directory

Devolve o directório actual.

 

Argumentos:

    AH = 47H

    DL = Número da drive

    DS:SI = Aponta para a área de dados

Devolução:

    CF = 0 - Successo

    CF = 1 - Falha

         AX = Código de erro    (INT 21 AH = 3C)

 

Função 4EH

Find file

Procura o ficheiro.

 

Argumentos:

    AH = 4EH

    DL = Número da drive

    DS:DX = Aponta para o ASCIIZ da string do arquivo que vai ser procurado

Devolução:

    CF = 0 - Successo

         AX = 0

    CF = 1 - Falha

         AX = Código de erro    (INT 21 AH = 3C)

 

Função 56H

Rename file

Renomeia o ficheiro.

 

Argumentos:

    AH = 56H

    DS:DX aponta para ASCIIZ atual

    ES:DI aponta para nova ASCIIZ

Devolução:

    Nada

 

Função 57H

Get or Set file date and time

Devolve ou Actualiza a data e hora do ficheiro.

 

Argumentos:

    AH = 57H

    AL = 0 - Get

    AL = 1 - Set

         CX = Hora
         DX = Data

Devolução:

    Em caso de Get:

    CX = Hora

    DX = Data

    Em caso de Set:

    Nada

 


Warning: mysqli_connect() [function.mysqli-connect]: (28000/1045): Access denied for user 'miguelm_database'@'10.136.224.33' (using password: YES) in /srv/disk1/miguelm/www/miguelmoreira.awardspace.info/webmaster/connect.php on line 46
 
 


© 2007 - 2010 - Miguel Moreira | Todos os direitos reservados