70 lines
1.7 KiB
Plaintext
70 lines
1.7 KiB
Plaintext
|
|
||
|
|----------------|
|
||
|
|IMPORTANT: |
|
||
|
|ssh 172.16.3.173|
|
||
|
|----------------|
|
||
|
|
||
|
1) uname -a
|
||
|
système d'exploitation = 64 bits
|
||
|
|
||
|
2)lscpu
|
||
|
architecture = x86_64
|
||
|
|
||
|
3)
|
||
|
as -gstabs -o exe.o test.s
|
||
|
ld -O0 -o exe exe.o
|
||
|
./exe
|
||
|
|
||
|
file exe
|
||
|
|
||
|
l <nb1>-<nb2> = affiche les lignes de code de n1 à n2
|
||
|
i r <registre> = information
|
||
|
X /<type> <adresse> = examine
|
||
|
<type=s> = string
|
||
|
[s / step] = suivant
|
||
|
<type=14cb> = décomposition du string
|
||
|
b <numLigne> = breakpoint
|
||
|
|
||
|
----------------------------------------
|
||
|
|
||
|
adr <addresse>,<variable> = met une variable dans une addresse
|
||
|
ldr <registre>,[<valeur>] = load (charge dans un registre la valeur stocké dans une adresse)
|
||
|
str <registre>,[<valeur>] = store (décharge la valeur stocké dans un registre à une adresse)
|
||
|
|
||
|
sxtw <registreDest> <registreSrc> = Sign eXTend Word (étend le bit de signe dans à la destination dans le registre d'origine)
|
||
|
sxts --> 64 bits
|
||
|
sxtw --> 32 bits
|
||
|
sxth --> 16 bits
|
||
|
sxtb --> 8 bits
|
||
|
|
||
|
uxt? --> Unsigned eXTend *
|
||
|
|
||
|
xzr = 0
|
||
|
|
||
|
add <dest><nb1><nb2> = met le resultat de nb1 et nb2 dans dest
|
||
|
adds .. = parreille sauf que ça met à jour les flags NZCV
|
||
|
|
||
|
flags:
|
||
|
N = négatif
|
||
|
Z = si résultat nul
|
||
|
V = en cas de débordement
|
||
|
C = retenus sortante
|
||
|
|
||
|
nrs x4, nzcv = met dans x4 les flags nzcv
|
||
|
|
||
|
lsl = logical shift left (décale les bit vers la gauche (multiplie))
|
||
|
lsr = logical shift left (décale les bit vers la droite (divise))
|
||
|
asr = (décalage à droite, plus met le bit de signe sur les bits libérer à gauche)
|
||
|
|
||
|
ont peut faire une addition et un décalage en une seul opération.
|
||
|
ex: add x1,x0,x0,lsl #4
|
||
|
=> x0 + x0*2**4
|
||
|
=> x0 + 16*x0
|
||
|
=> 17*x0
|
||
|
|
||
|
ex:sub x1,xzr,x2,lsl #3
|
||
|
=> 0 - x2*2**3
|
||
|
=> -8*x2
|
||
|
|
||
|
Les registre vont de 1 à 12 (et ont une lettre devant w,h,b)
|