PDA

Visualizza versione completa : programmazione in assembly help!


alex22
06-05-2005, 22.03.42
Salve a tutti, sono nuovo del forum e sto iniziando ad appassionarmi anche di software.
Ultimamente ho un problema con la programmazione in Assembly e in particolare ad allestire un programma che mi muova un motorino elettrico tramite tecnica PWN

devo far inviare a un trasduttore tramite un convertitore analogico- digitale e una porta parallela un numero compreso tra 0 e 100 al registro dati della porta A del processore (ho quello del vecchio motorola 68000);
questo per permettermi di variare la velocità di un motorino elettrico secondo 100 intervalli diversi.

devo farlo in assembly anche se non ne so molto, qualcuno puo darmi una mano?

Fast-M
14-05-2005, 19.46.23
Non sei stato molgo chiaro, ma da quello che ho capito credo tu debba innanzitutto avere tutta la documentazione elettrica sull'hardware a cui vuoi spedire questi valori nonchè sull'architettura del 68000 per cui vorresti scrivere il codice assembly.
Il fatto è che per quello che vuoi fare tu si esula proprio dal controllo del pc perchè tu vuoi tramite un valore che parte dalla cpu e viaggia per la porta parallela far girare un motorino, quindi secondo me dovresti ricercare tra gli interrupt del dos e trovarne uno che ti permetta di gestire la porta parallela.
In pratica supponiamo che questo interrupt sia il 16, avresti:
-----------------------------------
.MODEL SMALL ;dichiari il modello di memoria.
.STACK 100h ;definisci lo stack, ma puoi ometterlo almeno per ora.
.DATA ;inizio del segmento dati.
.CODE ;inizio del segmento del codice.
MOV AX,0006h ;suppongo che con 0006h mandi tramite la porta
;parallela il valore contenuto in BX usando INT 16.
MOV BX,0060h ;valore compreso tra 0000h e 0064h (0-100 in decimale).
INT 16h
END ;fine programma.
--------------------------
Ovviamente ho semplicemente supposto di stare utilizzando la funzione 0006h(messa in AX) dell'interrupt (INT 0016h), ma sono solo valori ipotetici che quindi dovrai cercare in modo esatto. Se poi vuoi aggiungere un controllo di flusso ed una interazione diretta, dovrai usare lo stack e mandare messaggi usando il segmento dei dati aggiungendo:
-------------------------------
stringa DB "Inserire il valore da 0 a 100",13,10,$
.
.
Mi fermo quì altrimenti corro il rischio di scrivere una bozza di guida all'assembly e non mi sembra il caso ne il luogo adatto!
Spero ti sia utile, ciao!
:)