Bun venit pe SkullBox!

Bine ai venit, Vizitator. Trebuie să te autentifici sau să îţi creezi un cont.
Ai pierdut sau nu ai primit emailul care conţine codul de activare al contului?

Autentifică-te cu numele de utilizator, parola şi precizează durata sesiunii.
  Pagini: [1] 2
  Imprimă  
Problema in assembler  (Vizualizari 1127)
acidcromaticle
*

Deconectat Deconectat

Mesaje: 49

Problema in assembler, Oct 31, 2008, 11:13

Buna sunt in primul an la info si am primit un programel in asm la un curs cu care ar trebui sa iese pe portul paralel un 1 adica un impuls ... codul suna cam asa


Cod:
.model tiny
.stack
.data
.code
start:
  mov dx, 378h
  mov al, 00000001b
  out dx, al
  mov ax, 4c00h
  int 21h
end


Profesorul sau ce o fi el (inca nu sunt obisnuit cu denumirile:D) a spus ca putem aprinde si inchide un led pe iesirile portului paralel, am ajuns acasa am facut programelul l-am compilat am legat ledul la iesirea a doua (reg de date) si am pus pe nul celalalt fir si surpriza inainte de a rula programul ledul mergea  ... ma gandeam ca poate este de la semnalul 0 care este mai slab si poate semnalul de 1 ar fi trebuit sa il aprinda mai tare, am rulat programelul si nimic deosebit... poate ca nu am scris ceva sau poate programul ruleaza prea repede pt ca eu sa vad...
Intrebarea mea este : Este posibil sa aprind acel led si daca da cum pot sa il aprind si sa il sting?
Va multumesc mult de ajutor daca nu cer prea multe as dori sa stiu adresele pt usb si daca se poate face acelasi lucru si pe el sau daca nu, macar de acar de unde as putea lua documentatia necesara .
Va multumesc inca o data!!
« Ultima modificare: Oct 31, 2008, 11:23 de către Agkelos » Memorat
Agkelos
*

Deconectat Deconectat

Mesaje: 5229

WWW
Răspuns: Problema in assembler, Oct 31, 2008, 11:23

Ar trebui sa il porneasca... schimba programul si inlocuieste 00000001b cu 00000000b sa se opreasca toate porturile. Conecteaza LED-ul si vezi daca se opreste Tongue
Memorat



Problemele se rezolva pe forum. Nu trimiteti PM ca nu va ajut.
Pentru urgente, skullbox at skullbox . info.
Smash
*****

Deconectat Deconectat

Mesaje: 675

WWW
Răspuns: Problema in assembler, Oct 31, 2008, 14:10

M-am jucat si eu o data cu portul paralel.

Si din cate am aflat eu :
1. pe xp nu poti accesa direct portul paralel
2. prin portul paralel trece curent chiar daca setezi 0 sau 1. Singura diferenta atunci cand setezi  0 este ca scade voltajul. Ce este sub 2.5 V este considerat 0 si peste este considerat 1.

Sper ca am inteles bine atunci cand mi-a explicat cineva Laughing.
Memorat


astan
*

Deconectat Deconectat

Mesaje: 357

Răspuns: Problema in assembler, Oct 31, 2008, 14:31

Trebuie folosita o rezistenta (recomandabil de minimum 480 ohm) pentru a conecta ledul
Exact cum arata aici: http://www.arunet.co.uk/tkboyd/ele1pp2.htm

Incepand cu WinNT nu poti accesa portul paralel (sau orice alt port IO) direct din user space. Nu e ca in MSDOS, care ruleaza in mod real
Memorat
acidcromaticle
*

Deconectat Deconectat

Mesaje: 49

Răspuns: Problema in assembler, Oct 31, 2008, 15:41

Multumesc mult de raspunsuri nu ma asteptam sa fiti asa rapizi Big grin daca nu va supar, imi puteti spune prin ce as putea ajunge la paralel daca prin xp nu si daca merge tot cu acel programel Big grin

Ps am schimbat si in 0 si dupa aceea in 1 dar nu merge Smile

Va multumesc mult inca o data este cel mai tare forum de programare pana acum Smile
Memorat
3Nigma
*

Deconectat Deconectat

Mesaje: 981

WWW
Răspuns: Problema in assembler, Oct 31, 2008, 15:51

ia-ti o discheta de dos [daca mai are calculatorul tau asa ceva] si porneste-l sub acea discheta , apoi executa programul Winking
nu este indicat sa folosesti o consola virtuala pentru ca os'ul ce ruleaza pe consola e tot sub domeniu windows si are deci aceleasi restrictii ...

Dar cu discheta de bootare ar trebui sa ai acces la port ...

ia de aici discheta : http://www.vetusware.com/category/OS/?cat=1 , alege unul care ti se potriveste sau de care ai habar Winking
Memorat



Search for knowledge in the darkest places and in the blackest hours! You might get lucky and find more than you are looking for...

"Ambition is a lame excuse for the ones that are not brave enough to be lazy..."
astan
*

Deconectat Deconectat

Mesaje: 357

Răspuns: Problema in assembler, Oct 31, 2008, 15:57

Nu trebuie chiar sa folosim DOS doar ca vrem sa accesam porturile de IO   Laughing

Folosesti PortTalk daca esti pe windows: http://www.beyondlogic.org/porttalk/porttalk.htm

Sau alt produs similar

Sau scrii propriul driver, e trivial
« Ultima modificare: Oct 31, 2008, 15:59 de către astan » Memorat
3Nigma
*

Deconectat Deconectat

Mesaje: 981

WWW
Răspuns: Problema in assembler, Oct 31, 2008, 16:05

Daca asa a progresat discutia , mi se parea normal sa se includa o solutie similara cu ceea ce se stie deja Winking [facand referire la DOS]

Da ... sunt si alte metode de a ocoli restrictia . emi a abordat-o corect Smile
Memorat



Search for knowledge in the darkest places and in the blackest hours! You might get lucky and find more than you are looking for...

"Ambition is a lame excuse for the ones that are not brave enough to be lazy..."
astan
*

Deconectat Deconectat

Mesaje: 357

Răspuns: Problema in assembler, Oct 31, 2008, 16:32

Sunt 2 metode:
- un driver folosit pentru a justa permisiunile din IO permission bitmap si sa acorde drepturi unei aplicatii ruland in user mode sa acceseze porturile IO
- faci un driver care acceseaza portul paralel si folosesti ioctl sa transferi informatie intre programul user space si driver

Preferabil varianta 2.

Alte metode nu cunosc. Nu iau in considerare boot-area MSODS-ului, folosirea NTVDM (non-existent pe Vista), etc.
Ce alte metode mai stii in afara de cele 2, pentru a face asa ceva folosind windows ? Ce metoda a abordat emi ?
« Ultima modificare: Oct 31, 2008, 16:43 de către astan » Memorat
3Nigma
*

Deconectat Deconectat

Mesaje: 981

WWW
Răspuns: Problema in assembler, Oct 31, 2008, 17:54

te rog sa ma scuzi , ma durea / doare capu si nu am vazut corect cine era autorul precedentului mesaj.
De tine era vorba astan.
Memorat



Search for knowledge in the darkest places and in the blackest hours! You might get lucky and find more than you are looking for...

"Ambition is a lame excuse for the ones that are not brave enough to be lazy..."
acidcromaticle
*

Deconectat Deconectat

Mesaje: 49

Răspuns: Problema in assembler, Oct 31, 2008, 18:44

Multumesc baieti o sa incerc metoda cu dosul si cealalt deoarece drivere inca habar nu am cu se se creeaza Big grin

O sa postez rezultatele! Smile
Memorat
3Nigma
*

Deconectat Deconectat

Mesaje: 981

WWW
Răspuns: Problema in assembler, Oct 31, 2008, 20:16

Acum am vazut si ultima parte a mesajului tau initial acidcromaticle
Citat din mesajul lui: acidcromaticle
a multumesc mult de ajutor daca nu cer prea multe as dori sa stiu adresele pt usb si daca se poate face acelasi lucru si pe el sau daca nu

Raspunsul este scurt : nu. In mare , motivul pentru care nu poti sa pui led pe USB este natura portului . USB-ul este de tip serial ceea ce inseamna ca datele sunt trimise pe iesiri in sir secvential,una dupa alta,practic tu nu mai dictezi stari simple de 1 si 0 pe iesire,ci trimiti o serie de 1 si o serie de 0[intr-un set de intervale numite clock-ul portului sau frecventa lui]. Portul paralel este cu totul altceva. De pe iesirile portului paralel poti lua o stare la un moment dat de pe mai multe porturi , practic diferenta este ca in loc sa trimita in sir datele pe port,acum datele se trimit in randuri,ca sa-ti faci o idee generala Winking
Alt impediment in realizarea acestei aplicatii pe port USB este suportul informatic! Daca pentru a trimite datele catre portul paralel folosesti macroinstructiunea out,pentru a trimite date spre usb nu exista comanda de procesor,acest lucru realizandu-se prin intermediul software-ului care au la baza drivere.

Chiar daca ai controla starea USB-ului,te-ai lovi de o problema mai tehnica. Daca astan spunea ca singura componenta externa in cazul folosirii portului paralel era o rezistenta limitatoare, in cazul usb-ului iti trebuie un circuit electronic mult mai complex. Gandeste-te ca tu nu comanzi o stare generala,ci tu trimit date catre acel port,date ce trebuiesc decodate si interpretate.

O abordare mai "tampita" as zice eu, e sa legi direct la usb led-ul si sa trimiti secvente continue de '1' la iesire,din program. In cazul asta ai avea o tensiune constanta de 3.3V pe iesire,iar cu o resitenta limitatoare ca cea descrisa de astan vei putea reduce tensiunea in limite acceptate de led. Dar aceasta metoda este 'tampita' din lipsa de practicalitate: Foloseste portul paralel,el e folosit de hobbisti. Daca vrei in continuare documentatie de USB te rog anunta-ma,dar consider ca e prea devreme sa-ti bati capul cu asta.

Mai invata despre : clock-uri , circuite ttl,memorii,circuite flip-flop,circuite oscilante ... si apoi ai putea aborda asa problema,la asa nivel [daca vei mai dori asta, desigur Tongue]
Memorat



Search for knowledge in the darkest places and in the blackest hours! You might get lucky and find more than you are looking for...

"Ambition is a lame excuse for the ones that are not brave enough to be lazy..."
acidcromaticle
*

Deconectat Deconectat

Mesaje: 49

Răspuns: Problema in assembler, Noi 01, 2008, 11:44

Aaa mai am o intrebare aseara am tot incercat sa fac rost de acel dos si nu prea am reusit deoarece pe acea pagina aveam voie la doar 1 download pe zi si binenteles ca nu m-am uitat pana jos si am luat o prostie de sus Smile intrebarea mea este: se poate boota dosul si sa si vada partitie NTFS si daca da atunci nu ar trebui sa mearga cu un CD de win98 bootabil si sa intru in cmd-ul ala inainte de instalare eu din cate imi amintesc nu suporta Ntfs Sad scuze ca va bat atat la cap si va inteleg daca nu imi mai raspundeti... Va multumesc mult oricum!
Memorat
3Nigma
*

Deconectat Deconectat

Mesaje: 981

WWW
Răspuns: Problema in assembler, Noi 01, 2008, 13:34

In primul rand tu nu ne bati la cap Tongue intelege notiunea de comunitate ... un grup de oameni care discuta probleme spre beneficiul individual sau al societatii fara a cere nimic in schimb . SkullBox e o comunitate ... e de datoria noastra sa onoram acest principiu + ca sa nu mai zic de faptul ca ne place si, avem si noi beneficiile noastre cand ajutam  Big hug

Poftim : http://files.filefront.com/MSDOS+710/;12219504;/fileinfo.html . Il scoti,il scrii pe un cd, si bootezi de pe el Winking
Ti-am dat imagine completa deoarece am considerat ca, student fiind, vei avea nevoie de ea si mai departe, asa ca fa-ti un cd !

Sa auzim de progrese Winking Si de intrebari/nedumeriri, desigur Tongue
Memorat



Search for knowledge in the darkest places and in the blackest hours! You might get lucky and find more than you are looking for...

"Ambition is a lame excuse for the ones that are not brave enough to be lazy..."
acidcromaticle
*

Deconectat Deconectat

Mesaje: 49

Răspuns: Problema in assembler, Noi 01, 2008, 16:31

Multumesc mult si in legatura cu comunitatea asa credeam si eu inainte dar am avut o gramada de probleme si cand intrebam cate ceva pe forumuri majuoritatea ma luau cu "ai auzit de google" si altele Big grin eu inteleg ca sunt multi care intreaba tot felul de chestii dar eu cred dupa cum ai spus si tu ca de aceea sunt comunitatile/forumurile sa se ajute Big grin
Memorat
SkullAds
Ecspert
ReclAmator
* * * * *
Google AdSense

Gen: Bărbat
Mesaje: Multe

Reclama AdSense,
 

 
   


Pagini: [1] 2
  Imprimă  
 
Schimbă forumul:  

Ethical hacking and programming community
Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC
Traducerea în limba română © 2006-2007 www.smf.ro