Trabalho em C

483 palavras 2 páginas
Montadores

Criação de programas em Assembly

O que é o NASM?
O Netwide Assembler, NASM, é um 80x86 e x86-64 assembler projetado para portabilidade e modularidade. Ele suporta uma variedade de formatos de arquivo de objeto, incluindo Linux e * BSD a.out , ELF, COFF , Mach-O , Microsoft 16-bit OBJ , Win32 e Win64 . Ele também tem arquivos binários simples de saída. Sua sintaxe é projetado para ser simples e fácil de entender, semelhante ao da Intel, mas menos complexo. Ele suporta todas as extensões de arquitectura x86 atualmente conhecida, e tem um forte apoio para macros.
O NASM é um montador de distribuição gratuita, que permite a montagem de programas em Assembly para diversas arquiteturas e sistemas operacionais.

Para realizar a montagem de um programa em Assembly com o NASM, considerando que o arquivo de origem é chamado de prog.asm:

Montagem: nasm -f elf prog.asm

Após a montagem, é necessário utilizar a linkedição:
Linkedição:
ld -s -o prog.bin prog.o

O programa final (binário) pode ser executado através do arquivo prog.bin.
Para a criação de programas em Assembly com o NASM, é interessante que sejam utilizados algumas palavras reservadas do compilador, que servem para ajudar o NASM a montar o código binário. Abaixo, segue um exemplo de programa em
Assemby, escrito em Assembly para o NASM, que utiliza tais palavras reservadas:

Programa Hello World section .data hello: db 'Hello world!',10 len: equ $-hello

section .text global _start

_start: mov eax,4 ; sys_write mov ebx,1 ; enviar ao video mov ecx,hello ; string mov edx,len ;tamanho da string int 80h ; interrupção

mov eax,1 ; chamada exit mov ebx,0 ; codigo para exit int 80h ; interrupção

Verifique que os números em hexadecimal deve ser escritos utilizando a letra h juntamente ao número, para informar ao NASM em qual base o número encontra-se. A section .data serve para a declaração de variáveis, como é o caso da variável

Relacionados

  • Trabalho de c++
    2314 palavras | 10 páginas
  • Trabalho De C
    2300 palavras | 10 páginas
  • Trabalho de c++
    410 palavras | 2 páginas
  • Trabalho de C + +
    9701 palavras | 39 páginas
  • Trabalho em c
    6064 palavras | 25 páginas
  • Trabalho C
    5449 palavras | 22 páginas
  • Trabalho c
    269 palavras | 2 páginas
  • Trabalho C
    45578 palavras | 183 páginas
  • trabalhos em c++
    267 palavras | 2 páginas
  • Trabalho C++
    301 palavras | 2 páginas