CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Le ToPiC De L'ASM 2004 et des poussières

DasHuhn
DasHuhn
Niveau 10
20 décembre 2004 à 11:35:35

C´est normal, le service DOS que tu appelles veut un $ pour terminer les chaînes rien d´autre.

lag-it
lag-it
Niveau 10
20 décembre 2004 à 11:55:34

Oui, mais en utilisant un ´$´ j´obtiens le problème que j´évoquais précédement.

DasHuhn
DasHuhn
Niveau 10
20 décembre 2004 à 12:41:37

Sparce que tu quittes pas proprement. Quand j´essayais la même chose sans mettre le code pour quitter, il buguait.

DasHuhn
DasHuhn
Niveau 10
20 décembre 2004 à 14:16:30

Tiens voilà :

[BITS 16]
[ORG 0100h]

[SECTION . text]

START:

mov dx, msg
mov ah, 9
int 21h
mov ax, 04C00h
int 21h

[SECTION . data]
msg db " Hello ! ", 13, 10, " $"

; ;;

Celui là fonctionne. Tu vois aussi la partie où le programme appelle DOS pour lui dire de quitter le programme. Sans cette partie, y´a une segmentation fault ( comment traduire en Français Windozien ? ). Et si je remplace le " $" par un 0, comme le service de DOS attend un $ pour finir la chaîne, il continue et affiche une grosse zone de mémoire à l´écran.

Tu sais tout :)

lord_kalipsy
lord_kalipsy
Niveau 10
20 décembre 2004 à 14:51:30

Arf je pouvais pas savoir, j´code ( on va dire) en ASM sur win32. ^^

DasHuhn
DasHuhn
Niveau 10
20 décembre 2004 à 15:07:59

T´as un exemple de helloworld ?

lord_kalipsy
lord_kalipsy
Niveau 10
20 décembre 2004 à 15:18:09

; ****************************
. 386
. model flat,stdcall
option casemap:none
; ****************************

include windows.inc
include user32.inc
include kernel32.inc
includelib user32.lib
includelib kernel32.lib

; ****************************Include
. data

text BYTE "Oué Hello weurld ! ",0
caption BYTE "Le caption ! !!!",0

; ****************************Data
. data?

; ****************************Data?

. code
code:

invoke MessageBox,NULL, addr text , addr caption , MB_OK

xor eax,eax

invoke ExitProcess,eax

; ****************************Code
end code

lord_kalipsy
lord_kalipsy
Niveau 10
20 décembre 2004 à 15:19:27

J´vais pas te créer un fenetre avec CreateClassMachin sinon on est pas sorti du bois . .. :sarcastic:

DasHuhn
DasHuhn
Niveau 10
20 décembre 2004 à 15:24:34

Lol okay :)

lord_kalipsy
lord_kalipsy
Niveau 10
20 décembre 2004 à 15:27:59

( Surtout que je connais pas toute les foutues lignes parcoeur . .. créer une fenetre c´est un 20aine de ligne :ouch: )

lag-it
lag-it
Niveau 10
20 décembre 2004 à 17:14:47

Merci à tous, je teesterais ca dès que je serais chez moi :ok:

Mouuh
Mouuh
Niveau 6
10 janvier 2005 à 18:46:02

Bonjour à tous.

Je me suis récemment mis à l´assembleur. Mes connaissances approchent donc le zéro absolu.

J´aimerais, pour l´instant, n´avoir que quelque précision.

On dit que l´assembleur est directement compréhensible par le processeur.
Que cela veut-il dire ? Qu´il suffit de tapper son code dans un . txt et de le renommer en . exe ?
En fait je sais déjà que non... Mais alors de quelle façon est-il directement compris par le processeur ?

Un compilateur C/C++ transforme bien le code de haut niveau en assembleur, non ?

Le compilateur optimise le code. Mais qu´entends-on par optimisation ? Optimisation de place, de rapidité ou un bon compromis entre les deux ?

J´ai souvent vu des types se battre pendant des semaines entières sur des forums pour savoir quelle opértation est la plus rapide.

( i * 2) ou i < < 2

S´il y a deux opération possible, cela veut-il dire que le compilateur utilisera deux instructions différentes ? ( genre ou MUL ou SHL)

Et pour finir connaissez-vous un programme gratuit qui puisse calculer le nombre de cycle effectué par un programme en assembleur ? ( Je sais que cela n´est pas très utile puisque je débute mais je suis perfectionniste ( en tout cas pour ça))

Merci.

dnob700
dnob700
Niveau 10
10 janvier 2005 à 19:10:31

un assembleur ( i.e. masm ou autre) convertit directement les mnémonique ( genre push mov ou jmp) en code hexa qui eur correspond. c´est ces codes héxa que le processeur comprend directement.

mais contrairement à un compilateur c++ qui fait un gros travail de fond, l´assembleur ne fait que s´occuper des label, des nom de variables et quelques petit autres trucs qui simplifie la tache du programmeur.

Mais quand tu tape un programme en asm tu peut savoir exactement quel tête il aura une fois assemblé ( ce qui n´est pas le cas du C par exemple).

quand on optimise on choisit ce qu´on veut optimiser justement, si on se concentre sur la vitesse ( dans ce cas là, on peut ( mais ce n´est pas toujours le mieux) inliner toute les fonction) ou alors sur la place ( dans ce cas là c´est el cotnraire) etc...

pour le i*2 ou i<<2 en c++ ça revient au même car un bon compilo mettra automatiquement ce qui prendra le moisn de cycle surle processeur que tu utilise ( et selon le contexte) le seul truc c´est qu´avec i<<2 tu risque de l´étonner.

mais effectivemtn les 2 instructions ont un équivalent en asm qui est équivalent.
Mais bon, il y a souvent plusieurs manière de faire les chose.

par exemple pour mettre ta variables à zéro, pourquoi ne pas faire
mov eax,o ?
ben, parce que
xor eax,eax est moins gourmand en mémoire et en temps ( à vérifier dans la doc intel pour le temps).

pour ta dernière question, je n´en connait pas, même si un débogueur fait un peu ça.
mais bon, il vaut mieux utiliser un traceur, enfin comme tu dit, concentre toi sur le langage, tu optimisera à mort après...

jejej
jejej
Niveau 9
10 janvier 2005 à 21:29:22

si j´ai bien compris mes trois lectures sur le sujet , l´asm depend du processeur , mais en gros tout le monde utilise l´asm d´intel puisqu´amd l´utilise aussi pour ses processeurs . .. ?

mais tout ca , pour les 32 bits .

Par contre , je crois qu´amd a lance y a pas longtemps un processeur à 64 bits , l´asm est-il different pour ce processeur ?

si oui , vaut-il encore le coup de ce lancer dans l´asm 32 bits , sachant que les processeurs 64 bits arrivent ? ou bien les 64 bits ne serrvent à rien , et ne perceront jamais le marché ? ou bien on n´en sais strictement rien , personne ne peut voir le futur :p)

lord_kalipsy
lord_kalipsy
Niveau 10
10 janvier 2005 à 21:44:49

Bah je suis pas un pro, mais je crois que les base 32bits -> 64bits sont les mêmes. C´est pas ocmme le passage de 16bits à 32bits. ( Mode Réel -> Protégé )

Moi quand j´ai commencé ( bein je commence en fais ) je faisais du 16bits ( le AoA parle seulement du 16bits avec MS-DOS ) .

dnob700
dnob700
Niveau 10
10 janvier 2005 à 22:26:29

apprend le 32bit i86 ( intel normal quoi) sinon tu ne pourra même pas essayer tes programme.

les pentium compatible on encore de beau jours devant eux.

pour ce qui est de l´AMD, ils utilisent juste les même jeux d´instruction qu´Intel, donc ce sont à quelques toute petite différence les même code pour les i86 et les proco AMD.

Mais il y a plein d´autre sorte de proco ( motorola 68k, PIC en tout genre entre autre, mais intel lui même et AMD font toutes sorte de proco différent en 32 et 64bit) avec d´autre asm.

pour le 16bit, le problème c´est qu´avec XP ya pas mal de chose qui sont pas complétement possible même en mode virtuel ( un émulateur de mode réel en mode protégé).

jejej
jejej
Niveau 9
11 janvier 2005 à 19:20:15

ok merci , de toute facon l´asm c´est pas pour tout de suite , je perfectionne mon c++ d´abord ^^
en fait , c t pour craquer des programmes , je crois qu´on peut ouvrir un programme compile dans un desassembleur et voir ainsi le code asm pour le modifier . ..
Attention , tout cela dans un but louable hein ^^ je fais les challenges d´un site de hacking - crak etc . .. vous le connaissez deja en fait.

deja 16 points ? !

lord_kalipsy
lord_kalipsy
Niveau 10
11 janvier 2005 à 19:25:16

Bah il faut un bon niveau en ASM avant de s´attaqué au RE . ..

le_duche
le_duche
Niveau 10
04 mars 2005 à 15:27:44

J´ai pas lu tout le topic pcq je ne m´interesse pas à l´asm mais prograammant en turbo pascal j´en ai parfois besoin alors je viens voir les connaisseurs...
J´aauraiis juste besoin de savoir comment éteindre le pc. Soit en entrant la commande dos shutdown -l soit en tappant directement votre " charabia" incompréhensible :-p

MrGoTo
MrGoTo
Niveau 8
04 mars 2005 à 18:34:36

Ouais ouais on aide pas les fabricant de virus.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment