Back to Basics : l'assembleur

Magazine
Marque
GNU/Linux Magazine
Numéro
201
Mois de parution
février 2017
Domaines


Résumé
Ah, que de bons souvenirs avec l'assembleur ! Je ne sais pas pour vous, mais moi je n'y ai touché qu'une fois, en licence (de nos jours on dit L3), pour parvenir péniblement à réaliser une division. Des années plus tard, je me dis que j'ai peut-être raté quelque chose et qu'à défaut de devenir un pro de l'assembleur, il pourrait être intéressant d'en comprendre quelques rouages.

L'assembleur est le programme qui va traduire des mnémoniques en langage machine (propre à chaque processeur). Les instructions en langage machine ne sont que des codes (opcodes) illisibles pour les êtres humains.

Nous savons tous que l'assembleur est le langage qui sera le plus directement « compris » par la machine et qu'en ce sens tout programme écrit en assembleur (correctement) sera plus rapide que le même programme dans n'importe quel autre langage. Le problème va justement être de produire du code en assembleur...

Dans cet article, je vous propose d'installer un assembleur, nasm, et d'analyser un programme simple, le traditionnel « hello world ».

1. Installation et premier test

nasm est disponible dans les dépôts des distributions basées sur GNU/Debian :

$ sudo apt install nasm

Nous allons immédiatement tester un programme que nous analyserons par la suite, hello.asm :

01: section .text
02: global  _start
03: 
04: _start:
05:     mov ecx, message
06:     mov edx, length

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Neuropsydia : un module Python pour les neuropsychologues

Magazine
Marque
GNU/Linux Magazine
Numéro
248
Mois de parution
mai 2021
Domaines
Résumé

Il existe peu d’outils permettant de créer « simplement » du matériel d’évaluation neuropsychologique. Neuropsydia est un outil qui nécessite un minimum de connaissances en informatique, mais permet un gain de temps considérable, si l’on accepte d’écrire quelques lignes de code Python.

Web scraping avec Node.js

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
114
Mois de parution
mai 2021
Domaines
Résumé

Le web scraping, c’est l’activité qui consiste à gratter (to scrap) du code HTML pour en extraire des données exploitables. Node.js se prête particulièrement bien à l’exercice, aussi je vous propose d’apprendre à gratter de la donnée avec ce formidable outil.

Intégration des alertes de Nagios dans Grafana

Magazine
Marque
GNU/Linux Magazine
Numéro
248
Mois de parution
mai 2021
Domaines
Résumé

Vous avez succombé à l’esthétique soignée des tableaux de bord de Grafana, mais vous ne pouvez pas vous passer de l’écran d’alertes du vénérable Nagios ! Alors, est-il possible de faire cohabiter ces deux produits ? Avec un peu de code Python, cela devrait être possible !

Analyser un système avec SystemTap

Magazine
Marque
GNU/Linux Magazine
Numéro
248
Mois de parution
mai 2021
Domaines
Résumé

SystemTap est un outil d’analyse et de débogage de Linux. En instrumentant des points précis du système d’exploitation, il permet d’afficher des traces, de faire des mesures, ou de modifier le comportement d’un système existant, sans le recompiler, et même sans le redémarrer.