Skip to content
Snippets Groups Projects
Commit de7d4c05 authored by BAZIZI Zakaria's avatar BAZIZI Zakaria
Browse files

Merge branch 2024_compilation:main into main

parents 5c49e733 6ef87e16
Branches
No related tags found
No related merge requests found
Showing
with 444 additions and 0 deletions
%include 'io.asm'
section .bss
sinput : resb 255 ;reserve a 255 byte space in memory for the users input string
section .text
global _start
_start:
sub esp, 4 ;allocation mémoire pour la valeur de retour
call main
pop eax ;récupération de la valeur de retour
mov ebx, 0 ; valeur de retour du programme
mov eax, 1 ; code de sortie
int 0x80
main : push ebp ;sauvegarde la valeur de ebp
mov ebp, esp ;nouvelle valeur de ebp
push eax ;sauvegarde de eax
push ebx ;sauvegarde de ebx
push ecx ;sauvegarde de ecx
push edx ;sauvegarde de edx
sub esp, 4 ;allocation des variables locales
mov dword [ebp-4], 4 ;Affect
mov eax, dword [ebp-4]
add eax, 1
mov dword [ebp-4], eax ;Affect
mov eax, dword [ebp-4] ;Write 1
call iprintLF ;Write 2
add esp, 4 ;désallocation des variables locales
pop edx ;restaure edx
pop ecx ;restaure ecx
pop ebx ;restaure ebx
pop eax ;restaure eax
pop ebp ;restaure la valeur de ebp
ret
%include 'io.asm'
section .bss
sinput : resb 255 ;reserve a 255 byte space in memory for the users input string
t : resd 40 ;variable globale
section .text
global _start
_start:
sub esp, 4 ;allocation mémoire pour la valeur de retour
call main
pop eax ;récupération de la valeur de retour
mov ebx, 0 ; valeur de retour du programme
mov eax, 1 ; code de sortie
int 0x80
main : push ebp ;sauvegarde la valeur de ebp
mov ebp, esp ;nouvelle valeur de ebp
push eax ;sauvegarde de eax
push ebx ;sauvegarde de ebx
push ecx ;sauvegarde de ecx
push edx ;sauvegarde de edx
sub esp, 0 ;allocation des variables locales
mov eax, 1
imul eax, 4
mov dword [t+eax], 100 ;Affect
mov eax, 1
imul eax, 4
mov ebx, dword [t+eax]
add ebx, 10
mov eax, 1
imul eax, 4
mov dword [t+eax], ebx ;Affect
mov eax, 1
imul eax, 4
mov eax, dword [t+eax] ;Write 1
call iprintLF ;Write 2
add esp, 0 ;désallocation des variables locales
pop edx ;restaure edx
pop ecx ;restaure ecx
pop ebx ;restaure ebx
pop eax ;restaure eax
pop ebp ;restaure la valeur de ebp
ret
%include 'io.asm'
section .bss
sinput : resb 255 ;reserve a 255 byte space in memory for the users input string
a : resd 4 ;variable globale
section .text
global _start
_start:
sub esp, 4 ;allocation mémoire pour la valeur de retour
call main
pop eax ;récupération de la valeur de retour
mov ebx, 0 ; valeur de retour du programme
mov eax, 1 ; code de sortie
int 0x80
main : push ebp ;sauvegarde la valeur de ebp
mov ebp, esp ;nouvelle valeur de ebp
push eax ;sauvegarde de eax
push ebx ;sauvegarde de ebx
push ecx ;sauvegarde de ecx
push edx ;sauvegarde de edx
sub esp, 0 ;allocation des variables locales
mov dword [a], 4 ;Affect
mov eax, 12
imul eax, 2
mov ebx, dword [a]
add ebx, eax
mov eax, dword [a]
add eax, ebx
mov dword [a], eax ;Affect
mov eax, dword [a] ;Write 1
call iprintLF ;Write 2
add esp, 0 ;désallocation des variables locales
pop edx ;restaure edx
pop ecx ;restaure ecx
pop ebx ;restaure ebx
pop eax ;restaure eax
pop ebp ;restaure la valeur de ebp
ret
%include 'io.asm'
section .bss
sinput : resb 255 ;reserve a 255 byte space in memory for the users input string
t : resd 40 ;variable globale
section .text
global _start
_start:
sub esp, 4 ;allocation mémoire pour la valeur de retour
call main
pop eax ;récupération de la valeur de retour
mov ebx, 0 ; valeur de retour du programme
mov eax, 1 ; code de sortie
int 0x80
main : push ebp ;sauvegarde la valeur de ebp
mov ebp, esp ;nouvelle valeur de ebp
push eax ;sauvegarde de eax
push ebx ;sauvegarde de ebx
push ecx ;sauvegarde de ecx
push edx ;sauvegarde de edx
sub esp, 0 ;allocation des variables locales
mov eax, 1
imul eax, 4
mov dword [t+eax], 2 ;Affect
mov eax, 2
imul eax, 4
mov dword [t+eax], 3 ;Affect
mov eax, 3
imul eax, 4
mov dword [t+eax], 1 ;Affect
mov eax, 1
imul eax, 4
mov ecx, dword [t+eax]
mov eax, 2
imul eax, 4
imul ecx, dword [t+eax]
mov eax, 3
imul eax, 4
mov ebx, dword [t+eax]
add ebx, ecx
mov eax, 3
imul eax, 4
mov dword [t+eax], ebx ;Affect
mov eax, 3
imul eax, 4
mov eax, dword [t+eax] ;Write 1
call iprintLF ;Write 2
add esp, 0 ;désallocation des variables locales
pop edx ;restaure edx
pop ecx ;restaure ecx
pop ebx ;restaure ebx
pop eax ;restaure eax
pop ebp ;restaure la valeur de ebp
ret
%include 'io.asm'
section .bss
sinput : resb 255 ;reserve a 255 byte space in memory for the users input string
section .text
global _start
_start:
sub esp, 4 ;allocation mémoire pour la valeur de retour
call main
pop eax ;récupération de la valeur de retour
mov ebx, 0 ; valeur de retour du programme
mov eax, 1 ; code de sortie
int 0x80
main : push ebp ;sauvegarde la valeur de ebp
mov ebp, esp ;nouvelle valeur de ebp
push eax ;sauvegarde de eax
push ebx ;sauvegarde de ebx
push ecx ;sauvegarde de ecx
push edx ;sauvegarde de edx
sub esp, 0 ;allocation des variables locales
mov edx, 0 ;mise à 0 des bits de poids fort du dividende
mov eax, 5 ;affectation des bits de poids faible du dividende
mov ebx, 3
idiv ebx
mov edx, edx ;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
mov eax, eax
mov ebx, 3
imul ebx, eax
mov eax, 5
sub eax, ebx
mov eax, eax ;Write 1
call iprintLF ;Write 2
add esp, 0 ;désallocation des variables locales
pop edx ;restaure edx
pop ecx ;restaure ecx
pop ebx ;restaure ebx
pop eax ;restaure eax
pop ebp ;restaure la valeur de ebp
ret
%include 'io.asm'
section .bss
sinput : resb 255 ;reserve a 255 byte space in memory for the users input string
section .text
global _start
_start:
sub esp, 4 ;allocation mémoire pour la valeur de retour
call main
pop eax ;récupération de la valeur de retour
mov ebx, 0 ; valeur de retour du programme
mov eax, 1 ; code de sortie
int 0x80
main : push ebp ;sauvegarde la valeur de ebp
mov ebp, esp ;nouvelle valeur de ebp
push eax ;sauvegarde de eax
push ebx ;sauvegarde de ebx
push ecx ;sauvegarde de ecx
push edx ;sauvegarde de edx
sub esp, 0 ;allocation des variables locales
mov edx, 0 ;mise à 0 des bits de poids fort du dividende
mov eax, 12 ;affectation des bits de poids faible du dividende
mov ebx, 7
idiv ebx
mov edx, edx ;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
mov eax, eax
mov ebx, 7
imul ebx, eax
mov eax, 12
sub eax, ebx
mov eax, eax
add eax, 5
mov eax, eax ;Write 1
call iprintLF ;Write 2
add esp, 0 ;désallocation des variables locales
pop edx ;restaure edx
pop ecx ;restaure ecx
pop ebx ;restaure ebx
pop eax ;restaure eax
pop ebp ;restaure la valeur de ebp
ret
%include 'io.asm'
section .bss
sinput : resb 255 ;reserve a 255 byte space in memory for the users input string
section .text
global _start
_start:
sub esp, 4 ;allocation mémoire pour la valeur de retour
call main
pop eax ;récupération de la valeur de retour
mov ebx, 0 ; valeur de retour du programme
mov eax, 1 ; code de sortie
int 0x80
main : push ebp ;sauvegarde la valeur de ebp
mov ebp, esp ;nouvelle valeur de ebp
push eax ;sauvegarde de eax
push ebx ;sauvegarde de ebx
push ecx ;sauvegarde de ecx
push edx ;sauvegarde de edx
sub esp, 0 ;allocation des variables locales
mov ebx, 2
imul ebx, 7
mov edx, 0 ;mise à 0 des bits de poids fort du dividende
mov eax, ebx ;affectation des bits de poids faible du dividende
mov ecx, 5
idiv ecx
mov edx, edx ;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
mov eax, eax
mov ecx, 5
imul ecx, eax
mov eax, ebx
sub eax, ecx
mov eax, eax
add eax, 5
mov eax, eax ;Write 1
call iprintLF ;Write 2
add esp, 0 ;désallocation des variables locales
pop edx ;restaure edx
pop ecx ;restaure ecx
pop ebx ;restaure ebx
pop eax ;restaure eax
pop ebp ;restaure la valeur de ebp
ret
%include 'io.asm'
section .bss
sinput : resb 255 ;reserve a 255 byte space in memory for the users input string
a : resd 4 ;variable globale
b : resd 4 ;variable globale
section .text
global _start
_start:
sub esp, 4 ;allocation mémoire pour la valeur de retour
call main
pop eax ;récupération de la valeur de retour
mov ebx, 0 ; valeur de retour du programme
mov eax, 1 ; code de sortie
int 0x80
main : push ebp ;sauvegarde la valeur de ebp
mov ebp, esp ;nouvelle valeur de ebp
push eax ;sauvegarde de eax
push ebx ;sauvegarde de ebx
push ecx ;sauvegarde de ecx
push edx ;sauvegarde de edx
sub esp, 0 ;allocation des variables locales
mov dword [a], 12 ;Affect
mov dword [b], 5 ;Affect
mov edx, 0 ;mise à 0 des bits de poids fort du dividende
mov eax, dword [a] ;affectation des bits de poids faible du dividende
idiv dword [b]
mov edx, edx ;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
mov eax, eax
mov ebx, dword [b]
imul ebx, eax
mov eax, dword [a]
sub eax, ebx
mov eax, eax ;Write 1
call iprintLF ;Write 2
add esp, 0 ;désallocation des variables locales
pop edx ;restaure edx
pop ecx ;restaure ecx
pop ebx ;restaure ebx
pop eax ;restaure eax
pop ebp ;restaure la valeur de ebp
ret
%include 'io.asm'
section .bss
sinput : resb 255 ;reserve a 255 byte space in memory for the users input string
t : resd 40 ;variable globale
section .text
global _start
_start:
sub esp, 4 ;allocation mémoire pour la valeur de retour
call main
pop eax ;récupération de la valeur de retour
mov ebx, 0 ; valeur de retour du programme
mov eax, 1 ; code de sortie
int 0x80
main : push ebp ;sauvegarde la valeur de ebp
mov ebp, esp ;nouvelle valeur de ebp
push eax ;sauvegarde de eax
push ebx ;sauvegarde de ebx
push ecx ;sauvegarde de ecx
push edx ;sauvegarde de edx
sub esp, 0 ;allocation des variables locales
mov ebx, 0
imul ebx, 4
mov dword [t+ebx], 3164 ;Affect
mov ebx, 1
imul ebx, 4
mov dword [t+ebx], 152 ;Affect
mov ecx, 1
imul ecx, 4
mov edx, 0 ;mise à 0 des bits de poids fort du dividende
mov ebx, 0
imul ebx, 4
mov eax, dword [t+ebx] ;affectation des bits de poids faible du dividende
idiv dword [t+ecx]
mov edx, edx ;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
mov ebx, eax
mov eax, 1
imul eax, 4
mov ecx, dword [t+eax]
imul ecx, ebx
mov eax, 0
imul eax, 4
mov ebx, dword [t+eax]
sub ebx, ecx
mov eax, 2
imul eax, 4
mov dword [t+eax], ebx ;Affect
mov eax, 2
imul eax, 4
mov eax, dword [t+eax] ;Write 1
call iprintLF ;Write 2
add esp, 0 ;désallocation des variables locales
pop edx ;restaure edx
pop ecx ;restaure ecx
pop ebx ;restaure ebx
pop eax ;restaure eax
pop ebp ;restaure la valeur de ebp
ret
5
5
110
32
7
2
10
9
2
124
%include 'io.asm'
section .bss
sinput : resb 255 ;reserve a 255 byte space in memory for the users input string
a : resd 4 ;variable globale
section .text
global _start
_start:
sub esp, 4 ;allocation mémoire pour la valeur de retour
call main
pop @0 ;récupération de la valeur de retour
mov ebx, 0 ; valeur de retour du programme
mov eax, 1 ; code de sortie
int 0x80
main : push ebp ;sauvegarde la valeur de ebp
mov ebp, esp ;nouvelle valeur de ebp
push eax ;sauvegarde de eax
push ebx ;sauvegarde de ebx
push ecx ;sauvegarde de ecx
push edx ;sauvegarde de edx
sub esp, 0 ;allocation des variables locales
mov dword [a], 4 ;Affect
mov @1, dword [a]
add @1, 1
mov dword [a], @1 ;Affect
mov eax, dword [a] ;Write 1
call iprintLF ;Write 2
add esp, 0 ;désallocation des variables locales
pop edx ;restaure edx
pop ecx ;restaure ecx
pop ebx ;restaure ebx
pop eax ;restaure eax
pop ebp ;restaure la valeur de ebp
ret
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment