; Este programa abre um arquivo, le alguns bytes dele, os escreve no ; standard output e sai. global _start section .data ; secao de declaracao de variaveis RDONLY: equ 0 WRONLY: equ 1 RDWR: equ 2 arquivo: db "MAC211.txt" ; nome do arquivo a ser lido section .bss buffer: resb 256 ; um buffer com 256 bytes section .text ; secao com o corpo do programa _start: ;int open (const char *pathname, int flags, mode_t mode); mov ebx,arquivo ; primeiro parametro: caminho + nome do arquivo mov ecx,RDONLY ; segundo paramentro: modo de leitura mov edx,0 ; terceiro parametro: determina as permissoes de acesso, ; so e' relevante na criacao de arquivos mov eax,5 ; numero da chamada ao sistema (open) int 80h ; chamada ao nucleo do SO ;int read(int fd, void *buf, size_t count); mov ebx,eax ; primeiro parametro: descritor do arquivo mov ecx,buffer ; segundo parametro: ponteiro para o buffer mov edx,256 ; terceiro argumento: qtde de bytes a ser lida mov eax,3 ; numero da chamada ao sistema (read) int 80h ; chamada ao nucleo do SO ;int write(int fd, const void *buf, size_t count); mov edx,eax ; terceiro parametro: tamanho da mensagem mov ebx,1 ; primeiro parametro: stdout mov ecx,buffer ; segundo parametro: ponteiro para a msg a ser escrita mov eax,4 ; numero da chamada ao sistema (write) int 80h ; chamada ao nucleo do SO ;void exit(int status); mov eax,1 ; numero da chamada ao sistema (exit) mov ebx,0 ; primeiro argumento: codigo de saida (sucesso) int 80h ; chamada ao nucleo do SO