Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1525 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  demande de code assembler en C (_asm) pour emulation via usb

 

Sujet(s) à lire :
    - Python : UrlLib et les méta
 

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

demande de code assembler en C (_asm) pour emulation via usb

n°825997
Ledjlale
Posté le 18-08-2004 à 18:02:32  profilanswer
 

bonjour
j'ai le bloc:
_asm{  
mov dx, LPTDataPort  
mov al, DataVal  
out dx, al  
}  
 
d'apres moi: mettre la valeur LPTDataPort dans dx, pareil pour DataVal dans al, et faire un truc entre dx et al.  
Exacte? ou pas? Que renvoi il? dans quoi? que fait exactement out? (qu'est ce que c'est que out?) je pense qu'il sert a renvoyer al sur un port dx mais.........
dx est un registre general, mais al?
 
merci


Message édité par Ledjlale le 20-08-2004 à 10:58:00
mood
Publicité
Posté le 18-08-2004 à 18:02:32  profilanswer
 

n°825998
chrisbk
-
Posté le 18-08-2004 à 18:05:10  profilanswer
 

al est aussi un GPR, c'est les 8 bits du bas de EAX

n°826004
Ledjlale
Posté le 18-08-2004 à 18:08:02  profilanswer
 

quant à "out"?

n°826007
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 18-08-2004 à 18:16:11  profilanswer
 

out sert à envoyer une donnée dans un registre matériel


---------------
J'ai un string dans l'array (Paris Hilton)
n°826018
Ledjlale
Posté le 18-08-2004 à 18:26:39  profilanswer
 

mmmmhh. merci
je suppose que pour avoir une liste exhaustive des registres materielles, il faut faire un REGEDIT.EXE.
Ou alors ils correspondraient à la plage d'E/S (pour mon cas) dans le gestionnaire de périph.
Si le deuxième cas est correct, alors comment se fait il que mon programme plante avec ces valeurs?
 
Mon but, c'est d'envoyer des données sur un port USB


Message édité par Ledjlale le 18-08-2004 à 18:54:41
n°826025
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 18-08-2004 à 18:55:10  profilanswer
 

ledjlale a écrit :

mmmmhh. merci


De rien
 

ledjlale a écrit :


je suppose que pour avoir une liste exhaustive des registres materielles, il faut faire un REGEDIT.EXE.


pas du tout, ça n'a strictement rien à voir !
tu peux trouver la liste des registres et de leurs ports associés ici :
http://members.tripod.com/~oldboard/assembly/
 

ledjlale a écrit :


Si le deuxième cas est correct, alors comment se fait il que mon programme plante avec ces valeurs?


ton programme plante car tu écris surement une valeur fausse sur le port du registre. ce sont des trucs très sensibles, et si tu fais une connerie, dans le meilleur des cas tu plantes le programme, dans le pire des cas tu flingues ton matériel (véridique ! une écriture bidon dans un registre de la carte VGA par exemple, et tu dis adieu à ton moniteur)
regarde à quel port de registre correspond ta variable LPTDataPort, et rectifie ton programme en conséquence
vu le nom, ça doit être le registre du port parallèle


Message édité par Harkonnen le 18-08-2004 à 18:56:11

---------------
J'ai un string dans l'array (Paris Hilton)
n°826026
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 18-08-2004 à 18:58:32  profilanswer
 

j'oubliais : selon ton OS, il est possible que l'accés direct au matériel te soit refusé (tous les OS à noyau NT et Linux)


Message édité par Harkonnen le 18-08-2004 à 18:58:44

---------------
J'ai un string dans l'array (Paris Hilton)
n°826027
Ledjlale
Posté le 18-08-2004 à 19:00:12  profilanswer
 

ouffffff  :o j'espere pas avoir flingué quoi que ce soit
 
Au debut, c'est un programme pour envoyer sur port parallele, mais je voudrais envoyer sur un port usb.
 
os NT? je suis sur 2000 et XP. Comment faire pour forcer le passage?


Message édité par Ledjlale le 18-08-2004 à 19:01:48
n°826030
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 18-08-2004 à 19:02:03  profilanswer
 

ledjlale a écrit :

ouffffff  :o j'espere pas avoir flingué quoi que ce soit
 
Au debut, c'est un programme pour envoyer sur port parallele, mais je voudrais envoyer sur un port usb.


ben faut pas t'étonner si ça marche pas hein, c'est pas du tout la même chose [:heink]
faut que tu regardes si tu peux accéder aux ports USB directement par un registre, le site que je t'ai donné ne le mentionne pas


---------------
J'ai un string dans l'array (Paris Hilton)
n°826031
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 18-08-2004 à 19:03:11  profilanswer
 

ledjlale a écrit :


os NT? je suis sur 2000 et XP. Comment faire pour forcer le passage?

je sais pas si c'est possible... essaie éventuellement de passer en RING 0, sans garantie


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le 18-08-2004 à 19:03:11  profilanswer
 

n°826033
Ledjlale
Posté le 18-08-2004 à 19:04:59  profilanswer
 

Sorry mais que veut dire : "passer en RING 0"?
En fait, depuis deux jours que je cherchent les ports USB: ils passent par un controlleur et c'est tout...


Message édité par Ledjlale le 18-08-2004 à 19:09:11
n°826149
beel1
Posté le 18-08-2004 à 22:21:41  profilanswer
 

[:abnocte invictus]
 
accéder directement à l'USB comme on le fait pour le port // me paraît pas gagné
Va falloir jeter un œil du côté des drivers linux :jap:
+ rassembler un max d'infos sur ton contrôleur USB (regarder dans la datasheet)
 
(edit : et ptêt renommer le topic :D )


Message édité par beel1 le 18-08-2004 à 22:23:53
n°826165
printf
Baston !
Posté le 18-08-2004 à 22:41:57  profilanswer
 

USB est un bus, c'est un poil plus complexe à interfacer qu'un LPT :D (sauf si on utilise un circuit FTDI).

n°826461
Ledjlale
Posté le 19-08-2004 à 09:17:15  profilanswer
 

linux? c'est le meme type de gestion d'usb qu'un wiwi?
Que me conseillez vous pour que je puisse simuler une souris sur un bus usb par ordinateur?(deux ordis qui se connectent par usb et dont l'un se fait passer pour une souris).
J'aimerais le coder en C (ce qui me permettrait d'avoir quelques blocs en asm, puisque qu'on peut tout faire en asm :))
 
(et puis si on parle plus d'asm, je bougerais de forum:))

n°826475
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 19-08-2004 à 09:35:16  profilanswer
 

regarde ici, tu trouveras les infos qu'il te faut :
http://www.usb.org/developers/


---------------
J'ai un string dans l'array (Paris Hilton)
n°826479
Ledjlale
Posté le 19-08-2004 à 09:39:33  profilanswer
 

merci, mais je connais deja, c'est meme la que j'ai recuperé le code qui contient le truc du haut ;).  
Il y a peut etre un rapport entre le fait d'envoyer sur un port LPT, et celui d'envoyer sur le port serie usb..... Faut que je cherche :heink:
 
pour choper un word à l'adresse 40:08, je fais:  
_asm
{
    movw ax, Donnees  
    movw dx, 0x4008  
    in ax,dx  
}
//??  


Message édité par Ledjlale le 19-08-2004 à 09:47:59
n°826490
WhatDe
Posté le 19-08-2004 à 09:51:52  profilanswer
 

Si ca peut t'aider: http://www.lvr.com/hidpage.htm

n°826496
Ledjlale
Posté le 19-08-2004 à 09:56:06  profilanswer
 

arf, encore un site que je connais. merci quand meme.
Mais tu pourrais peut-etre m'aider: pour pouvoir faire ce qu'ils disent, il me faut le DDK pour windaube2K. Ils medisent que c'est gratuit et tout, me donnent des liens, mais quand je vais chez microchit, ils me demandent de payer..?? et pour un winserver2003.
Enfin bref, j'ai pas trouvé de DDK pour moi. J'ai bien le SDK, mais c'est pas celuila. Suaris tu ou je peux l'avoir? merci!
 
[edit]je vai demander dans le forum de soft


Message édité par Ledjlale le 19-08-2004 à 10:11:10
n°826527
WhatDe
Posté le 19-08-2004 à 10:20:59  profilanswer
 

Apparement le dernier ddk fonctionne aussi avec win2k d'après ce que j'ai compris à la faq. Pour l'avoir... tu peux essayer des moyens détournés, si tu vois ce que je veux dire.

n°826540
Ledjlale
Posté le 19-08-2004 à 10:29:03  profilanswer
 

mouais, et il y a pas moyen d'avoir les anciens comptatible avec 2K?
[edit] me dites pas que c'est trop dur :lol: :  
 
pour choper un word à l'adresse 40:08, je fais:  (visual SC++6)
int Donnees;  
_asm  
{  
    movw ax, Donnees    
    movw dx, 0x4008    
    in ax,dx   ;ou bien : movw Donnees, 0x4008
}  
 :??:
 


Message édité par Ledjlale le 19-08-2004 à 16:09:08
n°826549
WhatDe
Posté le 19-08-2004 à 10:38:19  profilanswer
 

[:airforceone]

n°826552
beel1
Posté le 19-08-2004 à 10:43:28  profilanswer
 

ledjlale a écrit :

linux? c'est le meme type de gestion d'usb qu'un wiwi?
Que me conseillez vous pour que je puisse simuler une souris sur un bus usb par ordinateur?(deux ordis qui se connectent par usb et dont l'un se fait passer pour une souris).
J'aimerais le coder en C (ce qui me permettrait d'avoir quelques blocs en asm, puisque qu'on peut tout faire en asm :))
 
(et puis si on parle plus d'asm, je bougerais de forum:))


Bah intuitivement, si t'y vas à coup d'asm, nux ou win t'auras les mêmes grands principes.
Attention aussi, pour simuler une souris (device USB) par un PC (host USB) pour brancher sur un PC (host USB), renseigne toi bien : la norme USB interdit de relier 2 hosts entres eux (ouiiiiii... je sais... y'a des câbles USB qui existent pour faire des transferts entre 2 PCs... mais pour savoir comment c'est foutu... :/ intuitivement je me dis que c'est un device qui fait le pont entre les 2 hosts, et non directement 1 host qui parle à l'autre, mais bon...)

n°826651
WhatDe
Posté le 19-08-2004 à 12:55:54  profilanswer
 

Tu as de la chance, je suis tombé complètement par hasard sur ce site:  
http://www.alanmacek.com/usb/deviceAPI.html
http://www.alanmacek.com/usb/hostcode.html
 
:hello:

n°826831
Ledjlale
Posté le 19-08-2004 à 15:31:38  profilanswer
 

gniark gniark.........   connais aussi!   :sol:  
merci quand meme, je suis en train de demander le ddk pour pouvoir tout faire fonctionner. Pour l'instant, j'essay de faire du reverse engenneering (scusez pour les fautes :) ) et je suis en train de remarquer qu'il pas si difficile que ca à dialoguer sur un port usb...pour l'instant :)
Donc, pour ce qui est de l'assembleur, il n'y a pas de ligne de code dans le code (c que du c!), alors si j'ai d'autres soucis, je passerais un petit bjr! :D  
 
Je tiens à remarquer que le code source fournit par lvr.com est très bien commenté (il manque juste un petit déscriptif des variables lors de leur déclaration, mais pour ce qui est de leur utilisation... c'est tres facile à comprendre)
 
En attendant, je voudrais bien avoir une petite reponse pour mon ptit bout du haut :sarcastic:


Message édité par Ledjlale le 19-08-2004 à 15:47:49
n°826894
HelloWorld
Salut tout le monde!
Posté le 19-08-2004 à 16:32:57  profilanswer
 

Pas besoin de driver pour dialoguer avec un periph USB, voir les fonctions SetupDi* (1° lien de WhatDe).
http://groups.google.fr/groups?hl= [...] 26rnum%3D6
http://www.delcom-eng.com/downloads/USBPRGMNL.pdf


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°826935
Ledjlale
Posté le 19-08-2004 à 17:09:33  profilanswer
 

Pour la suite de l'usb; j'ai posté dans le forum de hradware et périph... num 8166 a moins que ce soit: 82002?


Message édité par Ledjlale le 19-08-2004 à 17:11:25
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  demande de code assembler en C (_asm) pour emulation via usb

 

Sujets relatifs
ligne de code pour un lien...[ASP-Office Web Components] Graphes, code en VBScript ou pas?
[ASP] Graphes avec Office Web Components : Code en VBScript?[vba]Optimisation du code pour la rapidité (résolu)
que pensez vous de ce code ?[C/C++] compiler un code C avec un compilo C++
[Base64] Mettre une image dans un code HTML[Access]cacher le code
Récupérer un code SQLIntégrer du code (x)html à un autre xml
Plus de sujets relatifs à : demande de code assembler en C (_asm) pour emulation via usb


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR