Skip to content

🎓 💻 Repositório com código de estudo da linguagem de programação Assembly

License

Notifications You must be signed in to change notification settings

WalderlanSena/StudyingAssembly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Estudando Assembly

Repositório com código de estudo da linguagem de programação Assembly

O que é a linguagem Assembly?

Assembly ou linguagem de montagem é uma notação legível por humanos para o código de máquina que uma arquitetura de computador específica usa, utilizada para programar códigos entendidos por dispositivos computacionais, como microprocessadores e microcontroladores. Fonte: wikipedia

Compilador

Visite nasm.us »

System Calls

"As system calls (ou chamadas do sistema) são APIs para criar uma interface entre o user space (espaço onde o utilizador tem permissão para correr os seus programas) e o kernel space (espaço onde o sistema operativo correr os seus programas que necessitam de um nível de permissão superior). Nos já usamos algumas system calls tais como o sys_write e o sys_exit, para escrever no ecrã e terminar o programa, respetivamente."

"Todas as system calls estão listadas em /usr/include/asm/unistd.h, juntamente com os seus números (o valor a colocarem EAX antes de chamar a interrupção 80h)."

eax Nome ebx ecx edx esx edi
1 sys_exit int - - - -
2 sys_fork struct pt_regs - - -
3 sys_read unsigned int char * size_t - -
4 sys_write unsigned int const char * size_t - -
5 sys_open const char * int int - -
6 sys_close unsigned int - - - -

Exemplo de ultilização da SysCall exit

section .text
  global _start ; informa o linker (ld) qual é o ponto de entrada

_start:     ; ponto de entrada

mov ebx, 0  ; valor de retorno para o SO(Sistema Operacional)
mov eax, 1  ; valor da syscall exit()
int 0x80    ; chamando o kernel

📃 Saiba mais sobre sysCalls

💻 Utilização

Compilado um novo software

nasm -f elf32 file.asm

Linkando

ld -m elf_i386 -o file file.asm

Executando

./file

📄 License

GNU General Public License (Licença Pública Geral), GNU GPL ou simplesmente GPL, é a designação da licença para software livre idealizada por Richard Matthew Stallman em 1989, no âmbito do projeto GNU da Free Software Foundation (FSF). https://www.gnu.org/licenses/gpl-3.0.en.html

Sobre