| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  08-01-2005, 00:29 | #1 | 
| Member Iscritto dal: Dec 2004 
					Messaggi: 55
				 | 
				
				asm
			 
		Ciao a tutti! C'è qualcuno che potrebbe darmi una mano con asm??
		 | 
|   |   | 
|  08-01-2005, 12:01 | #2 | 
| Member Iscritto dal: Dec 2004 
					Messaggi: 55
				 | 
		non sapete se c'è qualcuno sul forum che conosce bene assembler?
		 | 
|   |   | 
|  08-01-2005, 12:25 | #3 | 
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | 
		Dipende da cosa ti serve....
		 | 
|   |   | 
|  08-01-2005, 13:24 | #4 | 
| Member Iscritto dal: Dec 2004 
					Messaggi: 55
				 | 
		sto studiando da una guida, ho provato a contattare l'autore per email ma non risponde. Ci so delle istruzioni che usa che non capisco, ho solo alcune domande, niente di che! Posso chiedere a te?
		 | 
|   |   | 
|  08-01-2005, 13:42 | #5 | 
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | 
		Chiedi    | 
|   |   | 
|  08-01-2005, 14:43 | #6 | 
| Member Iscritto dal: Dec 2004 
					Messaggi: 55
				 | 
		senti va bene se uso la posta? ti mando un email con un pezzo di codice e ti chiedo un paio di cose
		 | 
|   |   | 
|  08-01-2005, 15:53 | #7 | 
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | 
		Posta qui il codice...non sono ferratissimo sull'asm...anche se conosco abbastanza bene l'istruction set...
		 | 
|   |   | 
|  08-01-2005, 16:44 | #8 | 
| Member Iscritto dal: Dec 2004 
					Messaggi: 55
				 | 
		è la gestione della tastiera direttamente da hardware.  InitKbrd: ; Come al solito salviamo i registri che verranno modificati PUSH AX ; Memorizza AX nello stack PUSH BX ; Memorizza BX nello stack PUSH ES ; Memorizza ES nello stack ; Carica indirizzo nuovo handler XOR AX,AX ; Azzera AX MOV ES,AX ; Imposta segment = 0 MOV BX,CS ; Carica Segment nuova handler MOV AX,OFFSET NewKbrd ; Carica offset nuova handler ; Memorizza nuovo indirizzo e preleva quello vecchio CLI ; Disattiva gli interrupts mascherabili XCHG AX,ES:[9*4] ; Scambia Offset XCHG BX,ES:[9*4+2] ; Scambia Segment STI ; Attiva gli interrupts mascherabili ; Memorizza vecchio indirizzo (ci servirà per ripristire il vecchio handler) MOV TempKbrd,AX ; Memorizza Offset vecchio handler MOV TempKbrd+2,BX ; Memorizza Segment vecchio handler ; Ripristina i registri salvati nello stack ed esce dalla procedura POP ES ; Ripristina ES dallo stack POP BX ; Ripristina BX dallo stack POP AX ; Ripristina AX dallo stack RET ; Fine procedura Ciao! C'è un istruzione che non riesco a capire: XCHG BX, ES:[9*4+2] ; SCAMBIA SEGMENT Il segment non sarebbe semplicemente ES=0? E comunque perchè [9*4+2]? | 
|   |   | 
|  08-01-2005, 20:44 | #9 | 
| Bannato Iscritto dal: Feb 2003 
					Messaggi: 947
				 | Ultima modifica di repne scasb : 03-02-2005 alle 13:34. | 
|   |   | 
|  08-01-2005, 23:16 | #10 | 
| Senior Member Iscritto dal: May 2003 Città: Trieste, Pordenone 
					Messaggi: 920
				 | 
		(OT)   Nel 2005 c'è ancora gente che programma software per dos in modalità reale?   | 
|   |   | 
|  09-01-2005, 09:14 | #11 | 
| Bannato Iscritto dal: Feb 2003 
					Messaggi: 947
				 | Ultima modifica di repne scasb : 03-02-2005 alle 13:34. | 
|   |   | 
|  09-01-2005, 11:43 | #12 | 
| Member Iscritto dal: Dec 2004 
					Messaggi: 55
				 | 
		grazie millem repne scasb. M'hai chiarito parecchie cose. Potrei contattarti per qualche altra cosetta? Cmq grazie ancora
		 | 
|   |   | 
|  09-01-2005, 13:58 | #13 | |
| Senior Member Iscritto dal: May 2003 Città: Trieste, Pordenone 
					Messaggi: 920
				 | Quote: 
   | |
|   |   | 
|  09-01-2005, 16:37 | #14 | 
| Senior Member Iscritto dal: Jul 2002 Città: Reggio Calabria -> London 
					Messaggi: 12112
				 | 
		ma i plc non vengono programmati in ladder?   
				__________________   | 
|   |   | 
|  09-01-2005, 20:02 | #15 | |
| Senior Member Iscritto dal: Jun 2002 Città: 
Provincia De VaRéSe   ~ § ~ Lat.: 45° 51' 7" N  Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~  Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~  ~ § ~ You Must Go Out ~ § ~ 
					Messaggi: 8895
				 | Quote: 
  ~§~ Sempre E Solo Lei ~§~ 
				__________________  Meglio essere protagonisti della propria tragedia che spettatori della propria vita  Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso | |
|   |   | 
|  09-01-2005, 23:50 | #16 | 
| Bannato Iscritto dal: Feb 2003 
					Messaggi: 947
				 | Ultima modifica di repne scasb : 03-02-2005 alle 13:33. | 
|   |   | 
|  10-01-2005, 14:36 | #17 | 
| Senior Member Iscritto dal: Jul 2002 Città: Reggio Calabria -> London 
					Messaggi: 12112
				 | 
		si anke x il ladder infatti usavo il simulatore sul pc e poi si trasferiva il tutto al plc. L'sfc se non sbaglio era un linguaggio + ad alto livello però ke doveva essere convertito in ladder x essere utilizzato (potrei anke sbagliarmi xkè ora come ora non ricordo se era SFC o qualke altra cosa....) Cmq il ladder era simpatico   
				__________________   | 
|   |   | 
|  10-01-2005, 20:55 | #18 | 
| Member Iscritto dal: Dec 2004 
					Messaggi: 55
				 | 
		domanda da ignorantone: quali sono gli interrupt mascherabili?
		 | 
|   |   | 
|  10-01-2005, 21:56 | #19 | 
| Bannato Iscritto dal: Feb 2003 
					Messaggi: 947
				 | Ultima modifica di repne scasb : 03-02-2005 alle 13:30. | 
|   |   | 
|  10-01-2005, 23:48 | #20 | 
| Member Iscritto dal: Dec 2004 
					Messaggi: 55
				 | 
		visto che dai certe risposte io approfitto, almeno imparo qualcosa in più   questo è il continuo del codice (quello sopra): NewKbrd: ; Salviamo i registri e carichiamo l'indirizzo del Buffer PUSH AX ; Memorizza AX nello stack PUSH BX ; Memorizza BX nello stack PUSH DS ; Memorizza DS nello stack PUSH CS ; Memorizza CS nello stack XOR AX,AX ; Azzera AX POP DS ; Imposta segment del Buffer MOV BX,OFFSET Buffer ; Indirizzo dati tasti ; Leggiamo il valore inviato dalla tastiera (Porta 60H) - Se >= 128 -> tasto rilasciato IN AL,60H ; Legge dato dalla porta della tastiera OR AL,AL ; Controlla se >= 128 JS @N1 ; Se si salta ; Impostiamo lo stato del tasto a 1 (Tasto premuto) ADD BX,AX ; Somma indice MOV ScanCode,AL ; Tasto premuto MOV BYTE PTR [BX],1 ; Attiva tasto JMP @N2 ; Salta ; Queste istruzioni invece servono quando il tasto viene rilasciato @N1: AND AL,07FH ; Maschera tasto ADD BX,AX ; Somma indice MOV ScanCode,0 ; Tasto rilasciato MOV BYTE PTR [BX],0 ; Disattiva tasto ; A questo punto bisogna disattivare la richiesta di interrupt ; (non ci interessa avere copie multiple dello stesso tasto) @N2: IN AL,61H ; Legge dato dalla porta 61H OR AL,80H ; Attiva bit 7 OUT 61H,AL ; Invia il nuovo dato ; Infine bisogna avvertire il processore che può interessarsi degli ; altri interrupts eventualmente presenti MOV AL,20H ; Carica valore OUT 20H,AL ; Invia dato ; Ripristiniamo i registri salvati nello stack POP DS ; Ripristina DS dallo stack POP BX ; Ripristina BX dallo stack POP AX ; Ripristina AX dallo stack ; Usciamo dalla procedura di interrupt (Occhio! IRET e non RET) IRET ; Fine procedura di interrupt 1) i valori da 128 a 255 rappresentano i valori dei tasti quando sono rilasciati? 2)E' troppo se ti chiedo spiegazioni su queste righe? (poi prometto che per un pò non rompo i coglioni  ) ; A questo punto bisogna disattivare la richiesta di interrupt ; (non ci interessa avere copie multiple dello stesso tasto) @N2: IN AL,61H ; Legge dato dalla porta 61H OR AL,80H ; Attiva bit 7 OUT 61H,AL ; Invia il nuovo dato ; Infine bisogna avvertire il processore che può interessarsi degli ; altri interrupts eventualmente presenti MOV AL,20H ; Carica valore OUT 20H,AL ; Invia dato Grazie di tutto | 
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 10:26.









 
		 
		 
		 
		









 
  
 



 
                        
                        










