Duvida questão 3 da lista

4 views
Skip to first unread message

Rodrigo Ney

unread,
Dec 7, 2010, 5:18:08 AM12/7/10
to Comp-Prog
Nao entendi como eu acesso um arquivo em linguagem de maquina, só
falta isso pra eu terminar de estudar e estou meio encucado aqui =/
Preciso ler o arquivo e copiar para um outro, como eu faço isso??

Rodrigo Ney

unread,
Dec 7, 2010, 7:01:54 AM12/7/10
to Comp-Prog
Alguem sabe explicar ai?
printchar1:
        pushl   %ebp
        movl    %esp, %ebp
        pushl   %ebx
        movl    8(%ebp), %eax    /* chamada de sistema para escrita em arquivo (%eax=4) */
        movl    12(%ebp), %ebx   /* arquivo para escrita: stdout (%ebx=1) */
        movl    16(%ebp), %ecx   /* buffer com conteudo para escrita (%ecx=endereco do buffer) */
        movl    20(%ebp), %edx   /* tamanho do buffer (%edx=tam) */
        int     $0x80                    /* interrupcao do sistema operacional */
        popl    %ebx
        movl    %ebp, %esp
        popl    %ebp
        ret

sempre que eu chamar essa funcao eu vou gravar uma letra no arquivo quando o int executar?

Rafael Souza

unread,
Dec 7, 2010, 7:33:17 AM12/7/10
to comp...@googlegroups.com
Na verdade essa função imprime uma string na saída padrão(%ebx = 1) por meio da chamada do sistema(int $0x80) ... por isso vc passa o tamanho do buffer, endereço do buffer, etc.
--
Carlos Rafael Baur de Souza

Renan - Genééésio -

unread,
Dec 7, 2010, 8:35:14 AM12/7/10
to comp...@googlegroups.com
Vc tem que primeiro abrir o arquivo usando uma chamada ao SO e depois ler/escrever nele usando outra chamada ao SO... tem um exemplo nos códigos da aula 18!

--
Atenciosamente,
Renan Iglesias - Genésio -
http://www.dcc.ufrj.br/~genesio
Reply all
Reply to author
Forward
0 new messages