Porta parallela - Software ASM - Giobe®2000 - Assembler - Assembly - centronics 378 278 input output epp ecp spp

|  | Come Funziona Indirizzi Base Area Comunicaz. Bios Registri Livello Hardware Livello BIOS Livello DOS Tecniche d'Interruzione Connettori Cavi Interfaccia Applicazioni Software Applicazioni Hardware Download INDICE
Porta Parallela

| Applicazioni Software | PROGETTO n° 13 - 5/7 [137 di 166]

Analisi del Problema · Analisi del Codice · Procedure importanti · Schema interfaccia

Porta Parallela - OUTPUT di Dati a 64 bit - Interfaccia con 8 memorie D-Type '374

Analisi delle procedure importanti [1 di 2]

| La chiave del progetto è la procedura Out64bit, dedicata alla gestione dell'interfaccia hardware, costituita dalle 8 memorie 74LS374, e descritta nella seguente casella di testo:

|  | Progetto | NB: se il testo nell'Area ti sembra strano installa il font Giobe.TTF: clicca qui!! |  |  |

;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ;³PROCEDURA : Out64bit ³ ;³DESCRIZIONE: Procedura che provvede a fissare sulle 8 memorie 74LS374 il ³ ;³ dato a 64 predisposto nei registri DX,CX,BX,AX (high,...,low).³ ;³ In pratica igli 8 bytes predisposti sulla porta 0378H (copia ³ ;³ rispettivamente di AL, AH, BL, BH, CL, CH, DL e DH) vengono ³ ;³ smistati in sequenza sulle rispettive memorie numerate da 0a8 ³ ;³ ³ ;³ ÚÄ[037AH/027AH - PORTA d'USCITA dei COMANDI]ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ;³ ³ ³ * ³ * ³ * ³ * ³Out³Out³Out³Out³ ³ ³ ;³ ³non ÀÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÙ ³ ³ ;³ ³disponib.ÁÄÄÄÁÄÄÄÁÄÄÄÙ ³ ³ ³ ³ ³ ³ ;³ ³pin 17 NegatoÄÄÄÄÄ[InC]ÄÄÙ ³ ³ ³ ³ ³ ;³ ³pin 16 ÄÄÄÄ[enable Decoder]ÄÄÙ ³ ³ ³ ³ ;³ ³pin 14 NegatoÄÄÄÄÄÄÄÄÄÄÄÄÄÄ[InB]ÄÙ À[InA]Äpin 1 Negato³ ³ ;³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Out64bit: PUSH CS ;¿Prepara il puntatore ES:DI = CS:Dato_64 alla POP ES ;³zona destinata a memorizzare il dato binario LEA DI,Dato_64 ;Ùa 64 passato in ingresso in DX,CX,BX,AX CLD ;¿ STOSW ;³ MOV AX,BX ;³Memorizza in sequenza gli 8 bytes, dal meno STOSW ;³significativo (disponibile in AL) al pi— MOV AX,CX ;³significativo (disponibile in DH), con l'aiuto STOSW ;³della potente STOSW (Store String Word) che MOV AX,DX ;³provvede alle operazioni: ES:[DI]<AX e DI=DI+2 STOSW ;³ ;Ù LEA DI,Dato_64 ;¿ MOV CX,8 ;³Ú[opzionale]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ Out_0: MOV DL,32 ;³³ Provvede alla stampa a video dell'informa- ³ MOV AL,8 ;³³ zione (8 bytes) che sta per essere spedita ³ SUB AL,CL ;³³ al registro DATI della porta parallela ³ ADD AL,AL ;³ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ADD DL,AL ;³ M_CURSOR 13,DL ;³Notare la tecnica per stampare nella corretta MOV AL,ES:[DI] ;³sequenza gli 8 bytes, dal meno significativo CALL Byt2Asc ;³al pi— significativo INC DI ;³ LOOP Out_0 ;Ù

| La parte iniziale è un accorgimento pratico per rendere dinamica la fase finale, cioè per poter gestire un loop l'erogazione degli 8 bytes.
| La presenza del dato a 64 bit in ben 4 registri li rende inutilizzabili e poco praticabile l'elaborazione del loro contenuto; per questo è prevista una variabile locale (Dato_64) della stessa dimensione, molto più versatile dei registri.

| La parte seguente (non strettamente necessaria...) mette a video (in forma esadecimale) il valore dei 64 bit che stanno per essere memorizzati sulle 8 memorie.
| Già in questa fase risulta chiara l'efficienza della scelta fatta, esaltata nella descrizione della parte esecutiva del programma, proposta nella pagina successiva.

| Porta Parallela |  |  | PROGETTO n° 13 - 5/7 |  |  |  |
137 di 166

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166

Parallela » | Come Funziona.. | Indirizzi Base | Area di Comunicazione Bios | Registri | Cavi Livello Hardware | Livello BIOS | Livello DOS | Tecniche d'Interruzione | Connettori Applicazioni Software | Progettazione | Interfaccia | Download | INDICE

DataSheet| Display LCD Parallela| Stampanti| Tastiera| Timer Seriale| Video| Cursore| RamVideo |

Home

| Pascal| Manuali| Tabelle| Schede Tutorial Assembly| Palestra Assembler

Aggiungi Giobe®2000 ai preferiti

Motore
Ricerca

| Rendi Giobe®2000 pagina di Default

© 2001-2006 - Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati