16 nov. 2010
Assembleur sur Macbook (Macintel)
Les TP se font normalement sur les machines du Petit Valrose (des PC Core 2 Duo sous Fedora), mais comme j'ai un mac et que je suis assez aventurier (ce que je regrette des fois), je me suis dit que normalement ca ne devrait pas trop changer, c'est quand même un Core 2 Duo que j'ai dans le macbook.
9 nov. 2010
Livre de programmation fonctionnelle en Scheme
Le livre est disponible sur le site d'Eyrolles et coûte une trentaine d'euros.
C'est peu donné pour l'ampleur que couvre ce livre. On commence par les bases du fonctionnel, on fait ensuite de l'impératif, et même de l'objet ! Bref que de notions essentielles pour la programmation qui permettront d'avoir un bagage complet, et vous pourrez briller en soirée lorsque vous parlerez de paradigmes, d'analyse syntaxique ou d'induction :D
Je compte personnellement me le commander, car ce livre pourrait me servir de livre de chevet tellement il est complet. Il y a des concepts très pointus qui sont abordés, et la pédagogie employée permet de facilement comprendre ou de réapprendre beaucoup de choses !
Si vous voulez vous mettre a la programmation fonctionnelle en schème, c'est LE livre a posséder, il est simple a lire et surtout il est en français.
Si vous êtes etudiant en Science a Nice Valrose, il est fort a parier que vous tombiez sur Mr Roy lui même comme prof, ce que je vous souhaite pleinement ! Dans ce cas le livre est un excellent support qu'il ne faudra pas négliger.
- Posted using BlogPress from my iPad
Location:Rue Prémeynard,Bordeaux,France
1 nov. 2010
Aide mémoire GDB
Parce qu'en LAJI (Langage d'Assemblage et Jeux d'Instructions) ont est amené à debugger du code, on utilise ald. Manque de pôt ald ne fonctionne que sous linux, et ne fonctionne pas sous Mac OS X.
Mais il existe gdb qui est censé être utilisé pour débugger du C mais il se débrouille quand même assez bien avec de l'assembleur.
Alors je me suis fait une petite Cheatsheet au cas ou ^^:
- usage: gdb hello.asm
- start: lancer le débuggeur
- si: executer l'instruction suivante (pas à pas)
- info reg: afficher l'état de tous les registres
- disassemble: affiche un dump du programme en mémoire
- <Entrée>: re-input la commande précédente
- x/ft addr: affiche ce qui est à mem[addr] au format ft
- set: pour modifier un registre ou un endroit dans la mémoire. (set $eax=123)
- stop: arrêter le debuggage
- help: pour afficher l'aide
J'ai aussi trouvé un équivalent à readelf sous Mac OS X: c'est gobjdump, et il s'installe via Macports.
usage: gobjdump -p hello.o
21 oct. 2010
fichier de configuration d'Emacs pour OSX
Chose pas facile, car pas beaucoup de gens à vrai dire utilisent Emacs sous OSX, ou seulement dans la langue de Shakespeare. J'ai décidé de partager le fruit de recherches intenses (haééé), pour fournir (d'abord à moi) à tout le monde un fichier de configuration qui pourrais vous être utile comme base d'une configuration Emacs.
Voici le fichier .emacs:
; themes(add-to-list 'load-path "~/.emacs.d/plugins/color-theme-6.6.0/")(require 'color-theme)(eval-after-load "color-theme"'(progn(color-theme-initialize)(color-theme-hober)));Activer la coloration syntaxique(global-font-lock-mode t); Mettre un maximum de couleurs(setq font-lock-maximum-size nil); Pour ne pas avoir à taper en entier la réponse yes/no(fset 'yes-or-no-p 'y-or-n-p); Affichage des images et fichiers compressés(setq auto-image-file-mode t)(setq auto-compression-mode t); IMPORTANT - osx related; sinon pas de square brackets ni de curly brackets !!(cond ((eq window-system 'ns)(setq mac-command-modifier 'meta)(setq mac-option-modifier 'none))((and (eq window-system 'mac) (boundp 'aquamacs-version))(setq mac-command-modifier 'meta)(setq mac-option-modifier nil))); pour le mode terminal (au cas ou)(set-terminal-coding-system 'utf-8)(set-keyboard-coding-system 'utf-8)(prefer-coding-system 'utf-8); j'add le dossier de flex-mode(add-to-list 'load-path "/Users/paraita/.emacs.d/plugins/flex-mode/"); j'add le dossier de g-client(add-to-list 'load-path "/Users/paraita/.emacs.d/plugins/g-client/"); je le load(load-library "g"); lazy load xD(autoload 'flex-mode "flex-mode" "Major mode for editing lex files." t)(setq auto-mode-alist(append '(("\\.l$" . flex-mode)("\\.ll$" . flex-mode)("\\.lex$" . flex-mode)) auto-mode-alist))(custom-set-variables;; custom-set-variables was added by Custom.;; If you edit it by hand, you could mess it up, so be careful.;; Your init file should contain only one such instance.;; If there is more than one, they won't work right.'(gblogger-user-email "toto@gmail.com")'(inhibit-startup-screen t))(custom-set-faces;; custom-set-faces was added by Custom.;; If you edit it by hand, you could mess it up, so be careful.;; Your init file should contain only one such instance.;; If there is more than one, they won't work right.)
; fullscreen (patched)
(global-set-key (kbd "M-RET") 'ns-toggle-fullscreen)
19 oct. 2010
rencontre avec l'assembleur MacIntel
Ca commence bien... :/
MacBook-de-Paraita-Wohler% nasm -f macho hello.asm
MacBook-de-Paraita-Wohler% gcc -arch i386 hello.o -o hello
MacBook-de-Paraita-Wohler% ./hello
Hello eure
zsh: segmentation fault ./hello
MacBook-de-Paraita-Wohler%
18 oct. 2010
L'assembleur avec un macbook
Le professeur nous a conseillé d'utiliser une machine de la fac pour programmer mais étant curieux je me suis dis pourquoi pas essayer avec mon macbook ? de toute manière depuis que les mac sont passé sous architecture intel, je pense que ca n'est surement pas si différent que ca !
Pour commencer il faudra utiliser Nasm (Netwide Assembler), qui est disponible sur Mac. Je pense qu'il est possible de le compiler directement à partir des sources, peut être même qu'il y a un binaire disponible ? Mais j'ai opté pour macport, je l'installe donc avec:
sudo port install nasmIl faut donc avoir déjà installé macport. Je suis sur qu'avec Fink c'est aussi possible de l'installer.
Il est recommandé d'utiliser gcc gnu, mais ca fonctionne très bien avec le gcc d'Apple.
J'ai trouvé ici un tutorial pour un Hello World en assembleur.
D'ailleurs il ne faut surtout pas oublier de spécifier l'architecture à nasm lorsque l'on va compiler notre source en fichier objet:
nasm -f macho helloworld.asmPuis l'appel à gcc se fait par:
gcc -arch i386 helloworld.o -o helloworldChez moi j'ai du rajouter le flag -arch i386 car par défaut gcc s'attend à un fichier objet architecturé pour x86_64, or nasm retourne un fichier objet architecturé i386. Comme on fournit déjà le fichier objet à gcc, il ne fait que l'édition de liens, donc je pense qu'on peut passer par ld directement mais j'ai la flemme de chercher.
Par contre j'ai un soucis lors de l'execution du programme, une erreur de segmentation...
liens utiles:
- http://zathras.de/angelweb/blog-learn-nasm-on-os-x.htm
- http://asm.sourceforge.net/intro/hello.html
- http://stackoverflow.com/questions/1912076/whats-the-file-format-used-by-gcc-in-osx
- http://michaux.ca/articles/assembly-hello-world-for-os-x
- http://salahuddin66.blogspot.com/2009/08/nasm-in-mac-os-x.html
13 oct. 2010
21 sept. 2010
Vpn de l'université de Nice
2 avr. 2010
Xcode et Snow Leopard
27 févr. 2010
Guess who's back !
- Python
- C
- Java
- Prolog
- AMD Athlon II X4 630
- 4 Go DDR3 1066
- Carte mère avec 6 ports SATA II et port PCI-E 16x 2.0
- Alimentation 650W modulaire