DIASSITES
online
hits.
DIASSITES
GHA
MÉDIC
DIASMATH
MATH
SCIENCE
TECHNO
INTERNET
PROGRAMMATION
VERSORECTO
BIZ
CALEND
ANNUAIRES
MEDIT
POLITICS
PHILO
MYSTERES
RELIG
PARTAGE
NEWS-météo de Kinshasa au 4.févr.2011 :
Journée pas comme les autres à Kinshasa.
  1. On se réveille le matin avec comme d'habitude une température à l'ombre de 32°C (hum, ¿ rechauffement climatique quand tu nous tient ?).
  2. À ~10:10 du matin tout le ciel s'obscurcit d'épais nuages, et la luminosité devient presque infra-mésopique (je n'ai pas de luxmètre), quasi obscure comme lors d'une éclipse solaire quasi totale, on est obligé comme à la nuit d'allumer toutes les lampes...
  3. Il commence alors à pleuvoir [paradoxalement contre toute attente, pourtant pas une pluie d'averse mais empêchant de sortir] et le ciel s'éclaircit progressivement, et au final la pluie s'est avérée délugienne, il y a eu des innondations, écroulement de maisons.
  4. La pluie s'est complètement terminée à 13:00.
  5. Température durant la pluie à 11:56 = 28.5°C,
  6. Humidité atmosphérique = 64% au début de la pluie (10:30), 78% à 13:52.
  7. Dans le passé, quand la température ambiante très exceptionnellement attaignait 27°C, on se sentait dans une fournaise ardente, avec l'autre corrolaire que quand on serrait la main de quelqu'un on sentait vraiment la chaleur corporelle (l'homme étant un animal à sang chaud) ; aujoud'hui en se saluant on a l'impression subjective que l'hommme est devenu un animal à sang froid.
  8. le mardi 9-mars-2011 15h00 : température à l'ombre = 36.00°C
    presque celle du corps humain.
Année bissextile ? En langage C ou ici en JavaScript :
  1. < script>
  2. function estbissex(annee){
  3. return (!(annee & 3) && ((annee % 100) || !(annee % 400)))
  4. }
  5. an=(new Date()).getFullYear()
  6. while(true)
  7. {
  8. annee=prompt("Défaut = entre 1900 et "+an+", Nég = Quit",Math.round(Math.random()*(an-1900))+1900)
  9. if(annee<0) break
  10. if(estbissex(annee)) document.write(annee + " = bissextile< br>")
  11. else document.write(annee + " = NON bissextile< br>")
  12. }
  13. < /script>
Connaissez-vous la date du BIOS de votre ordinateur ?
  1. Passez par le menu « Démarrer de Windows »,
  2. Appelez « Exécuter », puis tapez « Debug < Retour > ».
  3. Dans le fenêtre du Debug, tapez « D FFFF : 5 C < Retour > »,
  4. puis lisez dans la colonne de l'extrême droite (celle du milieu = code machine).
  5. Chez moi ça donne :
    -d ffff:5 c
    FFFF:0000   30 38 2F-31 30 2F 30 36   08/10/06
    -
    Dommage, mon BIOS au lundi 21-mars-2011 0:05 est très vieux
    (08/10/[20]06) de 5 ans.
  6. Vous voila devenu expert en langage assembleur et langage machine,
    un véritable crac ingénieur système - Approfondissez pour le mériter.
AUTRES NON ENCORE RÉFÉRENCÉS ICI
DIASSITES
dispnb nbdemot
notiondecimale pgcd rappelnbs represnbfmtieee
texponent vuemetre

Vous avez des problèmes de connectivité Internet ?
Rien de plus simple, Faites :
« Démmarrer » « Exécuter » « %windir%\network diagnostic\xpnetdiag.exe »


Si vous êtes programmeur (routinier à écrire =“écrivain”= “scribe” de programmes) dans n'importe quel langage de programmation, il est impératif d'écrire les routines cruciaux en assembeur.

Beaucoup de langages autorisent des codes assembleur « inline », d'autres (les compilateurs) peuvent lier des modules objet assembleur externes avec le code du programme (programmation modulaire multilingue).

Les codes assembleurs sont ultra rapides (les plus rapides), les plus concits, les moins gourmands en ressources et les plus puissants et performants.

Nous ne vous apprendrons pas ici les notions de développement en assambleur, mais nous allons juste vous amuser avec le MS-Debug en parlant de multiples possibilités pour placer le nombre 0 (zéro) dans un régistre :

Entrons donc dans le MS-Debug.

Tapons « R » pour lire le contenu des registres (, mais aussi l'instruction présentement pointée par le couple CS:IP = Code Segment et Instruction Pointer, et qui attend l'exécution, ainsi que la valeur pointée par l'adressage indirect).

-r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0CCA ES=0CCA SS=0CCA CS=0CCA IP=0100 NV UP EI PL NZ NA PO NC 0CCA:0100 0821 OR [BX+DI],AH DS:0000=CD

Les registres courants (que nous pouvons librement manipuler sans bousiller le système ou l'exécution de programmes : Ax, BX, CX, DX) contiennent déjà 0.

Pour placer un nombre dans un registre par exemple le AX à partir du débogueur MS-Debug, on utilise la commande « R AX » qui vous affiche le nombre présentement dans le registre en question. Plaçons-y donc le nombre 2011

-r ax AX 0000 :2011

Relisons donc le contenu de tous les registres, et nous voyons qu'effectivement seul le registre AX a pris la valeur 2011.

-r AX=2011 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0CCA ES=0CCA SS=0CCA CS=0CCA IP=0100 NV UP EI PL NZ NA PO NC 0CCA:0100 0821 OR [BX+DI],AH DS:0000=CD

Assemblons à l'adresse (offset) 100, l'instruction « MOV AX, 0 » qui place le nombre 0 dans AX :

-a 100 0CCA:0100 mov ax,0 0CCA:0103

Lisons la valeur de AX après cet assemblage. Vous voyez qu'aucun registre n'a pas encore été affecté par cet assemblage

-r AX=2011 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0CCA ES=0CCA SS=0CCA CS=0CCA IP=0100 NV UP EI PL NZ NA PO NC 0CCA:0100 B80000 MOV AX,0000

Exécutons seule l'instruction de l'offset 100 (avec trace = t ; Rappel : pour l'exécution des INTerruptions utilisez la commande Procced = P pour ne pas avoir à tracer chacune des instructions de l'INT qui peut être interminablement trop long).

Après exécution de l'instruction à l'adresse spécifiée, debug affiche automatiquement le nouvel état des registres : AX a bien pris la valeur 0.

-t=100 AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0CCA ES=0CCA SS=0CCA CS=0CCA IP=0103 NV UP EI PL NZ NA PO NC 0CCA:0103 A30823 MOV [2308],AX DS:2308=6420 -

Voyons donc cette instruction que nous avons placée à l'offset 100 (de IP = Instruction Pointer) du segment de code (nous vous laissons aussi voir l'instruction qui vient après, affichée aussi ci-dessus dans MS-Debug) :

-u 100 0CCA:0100 B80000 MOV AX,0000 0CCA:0103 A30823 MOV [2308],AX ... -

Quelques instructions pour placer zéro dans un registre sont :

MOV AX,0 , SUB AX,AX , XOR AX,AX , SHR AX,16 , AND AX,0 , MOVSX , MOVZX , MUL 0 , IMUL 0.

Assemblons-les

-a 100 0CDD:0100 mov ax,0 0CDD:0103 sub ax,ax 0CDD:0105 xor ax,ax 0CDD:0107 and ax,0 0CDD:010A mov bx,0 0CDD:010D mul bx 0CDD:010F mov bx,0 0CDD:0112 imul bx 0CDD:0114 mov cl,10 ; 16 hexadécimal 0CDD:0116 shr ax,cl 0CDD:0118 -

Rappel :

  1. Tous les chiffres dans le MS-Debug sont en Hexadécimal, ainsi 10 dans le débogueur = 16 décimal.
  2. Chaque digit est un octet, les registres (et le bus) ici sont des double-words c'est-à-dire 4 bytes ou 32 bits (taille des processeurs 32bits). Actuellement (7-janv-2011 15:17) les registres (et bus) sont à 64 bits.

Voyons maintenant, avec la commande « UnAssemble = U, les codes machines des instructions saisies ci-dessus »

-u 100 0CDD:0100 B80000 MOV AX,0000 0CDD:0103 29C0 SUB AX,AX 0CDD:0105 31C0 XOR AX,AX 0CDD:0107 250000 AND AX,0000 0CDD:010A BB0000 MOV BX,0000 0CDD:010D F7E3 MUL BX 0CDD:010F BB0000 MOV BX,0000 0CDD:0112 F7EB IMUL BX 0CDD:0114 B110 MOV CL,10 0CDD:0116 D3E8 SHR AX,CL ...

Nous voyons ques les instructions les plus courtes en terme de codes machine sont

tandis que le « MOV CL,10 » suivi de « SHR AX,CL » est la plus longue.
« MOV CX,10 » suivie de « SHR AX,CL » aurait été encore plus longue (à cause des 00 au High-Byte du CX = CH). D'où l'importance de ne faire intervenir que la plus petite taille du registre qui est strict nécessaire, cela aussi pour ne pas altérer inutilement l'autre partie du registre, cette valeur pouvant éventuellement être nécessaire plus tard.

0CDD:0114 B110 MOV CL,10 0CDD:0116 D3E8 SHR AX,CL

Remarque :
On ne peut en principe pas modifier directement au sein d'un programme le contenu d'un registre de segment, il faut passer par l'intermédiaire de AX :

-r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0CCE ES=0CCE SS=0CCE CS=0CCE IP=0100 NV UP EI PL NZ NA PO NC 0CCE:0100 0833 OR [BP+DI],DH SS:0000=CD -a 100 0CCE:0100 mov ds,0cce ; erreur 0CCE:0100 mov es,0cce ; erreur 0CCE:0100 mov ss,0cce ; erreur 0CCE:0100 mov cs,0cce ; erreur 0CCE:0100 mov ax,ds ; OK 0CCE:0102 mov ds,ax ; OK 0CCE:0104 -

Mais le débogueur, pour justement des raisons de débogage, le permet :

-r ds DS 0CCE :0cee -

Remarque : Pour ne rien perturber, nous avons restituer les mêmes valeurs déjà contenues dans les registres.

Appendice : Les commandes du MS-Debug sont (tapez « ? < RET > ») :

-? assemble (assembler) A [adresse] compare (comparer) C plage adresse dump (lister) D [plage] enter (entrer) E adresse [liste] fill (remplir) F Plage liste go (exécuter) G [=adresse] [adresses] hex (hexadécimal) H valeur1 valeur2 input (entrer depuis port) I port load (charger) L [adresse] [lecteur] [secteur] [nbre] move (déplacer) M plage adresse name (désigner) N [nchemin] [listearg] output (envoyer sur port) O port val proceed (avancer) P [=adresse] [nbre] quit (quitter) Q register (registre) R [registre] search (rechercher) S plage liste trace (tracer) T [=adresse] [valeur] unassemble (désassembler) U [plage] write (écrire) W [adresse] [lecteur] [secteur] [nbre] allocate expanded memory (allouer EMS) XA [#pages] deallocate expanded memory (désallouer EMS) XD [desc] map expanded memory pages (affecter) XM [pageL] [pageP] [desc] display expanded memory status (état EMS) XS -

Dans la foulée, rappelons qu'il ne faut pas confondre

  1. CODE BINAIRE (ou code machine) et
  2. OPCODE (utilisé dans le byte ou octet Mod/RM [ce byte qui peut éventuellement être suivi d'un byte SIB]) et
  3. MICROCODE ou FIRMWARE


Bonne nouvelle :
Si vous ne pouvez pas autrement vous procurer un assembleur, vous pouvez télécharger gratuitement l'un des assembleurs d'INSTRUCTIONS suivants auprès de leurs auteurs respectifs : NGASM (assembleur en ligne de commande) et emu8086 (assembleur en IDE qui possède aussi un debug incorporé dans lequel les bytes d'une même instruction ne sont pas regroupés / délimités vs dans MS-Debug = chaque byte d'instruction est sur sa propre ligne, les codes machines sont heureusement appariés au code source par la couleur), de très bons outils pour apprendre mais aussi pour créer d'utiles exécutables en assembleur au format fichier de commande .COM, mais seulement pour les processeurs 16 bits 8088/8086, ces mêmes applications peuvent être plus tard ré-assembler avec un assembleur pour 64bit, et beaucoup plus tard pour les processeurs 128 bits.


To your success.
Home Page : http://diassites.0pi.com
Please be kind enough to also vote for my site http://diassites.00server.com Merci, ===== Jean-Dadet Baptiste DIASOLUKA Luyalu Nzoyifuanga, Docteur en Médecine, Chirurgie & Accouchements (1977), CNOM: 0866 - Rép. Dém. Congo, Spécialiste en Ophtalmologie (1980), Mathématicien-Physicien (1977), Informaticien Amateur (1980) - Programmeur en Assembleur, POO, Visual C++, Java, HTML, etc (19xx), WebMaster de tous les sites Dias (2002).

http://membres.multimania.fr/diasoluyalu

 : Pour nous atteindre :
: e-mail :
diassites@fastmail.fm, diasoluyalu@club-internet.fr

: Téléphone (+243 / 00243) :
[0]852427749


: Nos mots-clés pour moteurs de recherche :
(google, yahoo, AltaVista, AOL, Bing, Amfibi, killerinfo, lycos, kanoodle, 50megs, mamma, exactseek, stpt, windseek, msn, webcrawler, overture, redzip, qksearch, rolist, info, ignitesearch, munky, sweetwishes, searchgalore, searchit, searchwho, windseek, zapmeta, suchmaschine, teoma, nomade, tiscali, upspiral, usseek, websearch, zworks, gigablast, alltheweb, hotbot, looksmart, northernlight, dmoz.org, wisenut, webfinder, go.mail.ru, ...):

diasoluka OR diasoluyalu OR cerinformyo OR cestremyoco
ou
diasoluka | diasoluyalu | cerinformyo | cestremyoco

Dernière mise à jour :

Littératures curieuses :
  1. http://www.websters-dictionary-online.com/definition/suspended%20animation
  2. http://www.tititudorancea.com/z/suspended_animation.htm
  3. http://www.npr.org/templates/story/story.php?storyId=4612396
  4. http://wiki.answers.com/Q/Does_the_Church_oppose_Suspended_Animation_as_a_life-support_technique
  5. http://www.popsci.com/science/article/2010-03/video-mark-roths-ted-talk-says-suspended-animation-not-just-ted-williams-anymore
  6. http://www.astahost.com/info.php/Suspended-Animation-Reality_t6214-10.html
  7. http://en.wikipedia.org/wiki/Suspended_animation
  8. http://www.telegraph.co.uk/health/healthnews/8024991/Patients-to-be-frozen-into-state-of-suspended-animation-for-surgery.html
  9. http://binnallofamerica.com/gf6.29.5.html
  10. http://www.wellsphere.com/aging-senior-health-article/hydrogen-sulfide-suspended-animation-video/1054192
  11. http://www.google.cd/search?hl=fr&site=webhp&q=suspended+animation+technic
Votez pour ce site au Weborama
|