Skip to content

felop/MiniCpu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Émulateur (pseudo-)Assembleur x86

Simulateur d'un CPU simplifié avec parsing et exécution d'instructions assembleur. Projet réalisé en L2 dans le cadre du cours de structures de données.

Fonctionnalités

  • Parsing d'assembleur : sections .DATA et .CODE, labels, résolution de constantes
  • Gestion mémoire par segments : allocation dynamique avec free list et fusion de blocs
  • CPU simulé : registres, pool de constantes, modes d'adressage (immédiat, registre, mémoire directe/indirecte)
  • Table de hachage : implémentation from scratch avec gestion des collisions
  • Exécution : cycle fetch-decode-execute avec instructions arithmétiques et de contrôle

Exemple

Calcul de Fibonacci avec stockage en mémoire :

.DATA
    fib_a DW 0
    fib_b DW 1
    counter DW 0
    max_iter DW 10
.CODE
start: MOV AX, [fib_a]
    MOV BX [fib_b]     ; BX = 1
    MOV DX [counter]   ; DX = 0
loop: MOV CX, [max_iter]
    CMP DX CX          ; counter == max_iter ?
    JZ end             p; si oui, termine
    
    MOV CX AX          ; calcul de fib(n)
    ADD CX BX
    MOV [fib_a] BX     ; stocke fib(n-1)
    MOV [fib_b] CX     ; stocke fib(n)
    
    MOV AX BX          ; avance les registres
    MOV BX CX
    
    ADD DX 1           ; counter++
    MOV [counter] DX
    JMP loop
end: HALT

Build & Run

make
./run fibo.asm

About

Simulateur d'un CPU simplifié avec parsing et exécution d'instructions pseudo-assembleur.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors