Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/walderlansena/studyingassembly
:mortar_board: :computer: Repositório com código de estudo da linguagem de programação Assembly
https://github.com/walderlansena/studyingassembly
0x86 32bits asm assembly baixo-nivel code estudo linguagem-assembly linux nasm nasm-assembly programacao programacion sistema syscalls
Last synced: 8 days ago
JSON representation
:mortar_board: :computer: Repositório com código de estudo da linguagem de programação Assembly
- Host: GitHub
- URL: https://github.com/walderlansena/studyingassembly
- Owner: WalderlanSena
- License: gpl-3.0
- Created: 2017-06-30T17:13:33.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-07-02T00:01:50.000Z (over 7 years ago)
- Last Synced: 2024-12-02T20:08:54.266Z (2 months ago)
- Topics: 0x86, 32bits, asm, assembly, baixo-nivel, code, estudo, linguagem-assembly, linux, nasm, nasm-assembly, programacao, programacion, sistema, syscalls
- Language: Assembly
- Homepage:
- Size: 27.3 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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](https://pt.wikipedia.org/wiki/Assembly)
Compilador![]()
## 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
```assembly
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
```
:page_with_curl: Saiba mais sobre sysCalls### :computer: Utilização
**Compilado um novo software**
```
nasm -f elf32 file.asm
```**Linkando**
```
ld -m elf_i386 -o file file.asm
```**Executando**
```
./file
```## :page_facing_up: 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).## Sobre