Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 INFORMATICA - Primo Anno
 Architettura degli elaboratori
 procedura HEX -> stampa

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
Clicca qui per sottoscrivere questa Discussione.
    

V I S U A L I Z Z A    D I S C U S S I O N E
pinux Inserito il - 21/01/2005 : 21:53:29
chi mi da gentilmente una procedura che stampa a video dei valori esadecimali presenti in un vettore?

Spero che qualcuno sia così gentile.. vi ringrazio in anticipo

10   U L T I M E    R I S P O S T E    (in alto le più recenti)
pinux Inserito il - 25/01/2005 : 23:36:58
Citazione:
Messaggio inserito da fabbattista

Dunque, non ho capito perke' sposti da vet (byte) a vet2 (word). Se mi fai leggere la tua procedura di stampa forse mi è piu' chiaro.



la procedura fatta in precedenza era sbagliata..
nn avevo capito bene cosa dovevo fare...
voi avevate detto che il byte che conteneva il valore lo devevo convertire in due byte.. quindi ho fatto un po' di confuzione

In ogni modo questa è la nuova procedura e mi funziona!

MOV CL, TOT
MOV SI, 0
OUTP: MOV BL, VET[SI]
CALL BI_ASC
MOV AL, BH
CALL VISASCII ;INT 10H - AH,14
MOV AL, BL
CALL VISASCII ;INT 10H - AH,14

INC SI
LOOP OUTP

secondo voi è corretta sintatticamente o è solo funzionante?
in poche parole.. sta fatta bene o potevo fare di meglio?

cmq grazie per l'attenzione!
siete uno dei pochi prof. in grado di darla!
fabbattista Inserito il - 24/01/2005 : 12:03:31
Dunque, non ho capito perke' sposti da vet (byte) a vet2 (word). Se mi fai leggere la tua procedura di stampa forse mi è piu' chiaro. In ogni caso:

1. Perche' DI lo fai partire dal valore 2?
2. Poiche' hai un numero dispari di elementi in vet, potresti avere qualche problema con l'ultimo
3. Se la procedura BI_ASC è quella di feeb, stai attento che lui fa riferimento a un vettore numeri. Tu lo hai definito?
pinux Inserito il - 24/01/2005 : 10:20:09
Citazione:
Messaggio inserito da fabbattista

Pinux, la seconda che hai detto



ok... qua ci siamo...

per stampare il vettore ho fatto una cosa del genere
carico tutti i valori esadecimali (byte) di VET in VET2 (word)

VET DB 09h,0Dh,1Ah,1Bh,1Ch
VET2 DW 5 DUP (?)

LEA SI, VET
MOV CL, 5
MOV DI, 2
RIPETI: MOV BL, [SI]
CALL BI_ASC
MOV AH, BL
INC SI
MOV BL, [SI]
CALL BI_ASC
MOV AL, BL
MOV VET2[DI], AX
ADD DI, 2
LOOP RIPETI

è stato così gentile fino ad ora.. mi potrebbe dire anche in questo caso dove sbaglio?
grazie!!
fabbattista Inserito il - 24/01/2005 : 07:26:06
Pinux, la seconda che hai detto
pinux Inserito il - 23/01/2005 : 23:23:21
Citazione:

Allora vediamo un po'. Puoi tranquillamente lavorare con gli esadecimali e farci tutte le operazioni che vuoi.



scusate per la totale ignoranza... ma l'assemblatore come fa a capire che stiamo trattando dei valori esadecimali?
Il vettore lo devo definire in questa maniera:

VET DB 09,0D,15,1A,1C

oppure

VET DB 09h,0Dh,15h,1Ah,1Ch

o in altra maniera?
fabbattista Inserito il - 23/01/2005 : 21:03:23
Citazione:
Messaggio inserito da pinux

forse è meglio se spiego il problema nei dettagli.

1-ho un vettore di valori esadecimali
2-devo stampare a video gli elementi del vettore
3-devo effettuare la somma di tutti gli elementi del vettore
4-devo stampare a video la somma

premessa: ho effettuato il trasferimento presso informatica da circa un mese, quindi l'assembler l'ho studiato tutto da solo

il dubbio principale è questo:
posso lavorare su dei valori esadecimali (es nel punto 3) oppure devo convertire tutti i valori in decimale => efettuare la somma => convertirla in esadecimale => stamparla

per quanto riguarda la stampa del vettore: devo effettuare delle conversioni?



Allora vediamo un po'. Puoi tranquillamente lavorare con gli esadecimali e farci tutte le operazioni che vuoi.

Per quanto riguarda la stampa in esadecimale, il codice che ti ha dato feeb è solo un pezzo di un programma piu' grosso. Se hai riscritto il codice di feeb senza adattarlo al tuo è normale che non funzioni.

In ogni caso si, devi effettuare delle conversioni. Il byte che contiene il tuo valore lo devi convertire in due byte corrispondenti ai codici ascii delle cifre del numero esadecimale da stampare.

pinux Inserito il - 22/01/2005 : 17:17:44
Citazione:
Messaggio inserito da feeb

Bi_Asc proc near ; Subroutine che converte i due hexdigit XY di un byte
push cx
push dx ; in due caratteri ASCII
mov bh,0 ; Input XY in BL - Out ASCII(X) in BH , [cut]
questa ti dovrebbe restituire due caratteri ascii corrispondenti al valore in esadecimale del numero che gli passi
poi il resto e' semplice



senti ho creato un ciclo
all'interno:
carico vet[i] in BL
chiamo bi_asc
stampo bx

ma nn mi funziona...
ho sbagliato qualcosa?
pinux Inserito il - 22/01/2005 : 17:16:06
Citazione:
Messaggio inserito da fabbattista

ppinux non ho capito bene la domanda.

Tu hai un vettore che continene dei valori in esadecimale o in base 10?
E vuoi stamparli a video sempre in esadecimale o no?



forse è meglio se spiego il problema nei dettagli.

1-ho un vettore di valori esadecimali
2-devo stampare a video gli elementi del vettore
3-devo effettuare la somma di tutti gli elementi del vettore
4-devo stampare a video la somma

premessa: ho effettuato il trasferimento presso informatica da circa un mese, quindi l'assembler l'ho studiato tutto da solo

il dubbio principale è questo:
posso lavorare su dei valori esadecimali (es nel punto 3) oppure devo convertire tutti i valori in decimale => efettuare la somma => convertirla in esadecimale => stamparla

per quanto riguarda la stampa del vettore: devo effettuare delle conversioni?
fabbattista Inserito il - 22/01/2005 : 08:51:19
ppinux non ho capito bene la domanda.

Tu hai un vettore che continene dei valori in esadecimale o in base 10?
E vuoi stamparli a video sempre in esadecimale o no?

feeb Inserito il - 22/01/2005 : 06:19:39
Bi_Asc proc near ; Subroutine che converte i due hexdigit XY di un byte
push cx
push dx ; in due caratteri ASCII
mov bh,0 ; Input XY in BL - Out ASCII(X) in BH , ASCII (Y) in BL
push bx
and bx,0fh
add bx,offset numeri
mov dl,[bx]
pop bx
and bx,0f0h
mov cl,4
shr bx,cl
add bx,offset numeri
mov dh,[bx]
mov bx,dx
pop dx
pop cx
ret

questa ti dovrebbe restituire due caratteri ascii corrispondenti al valore in esadecimale del numero che gli passi
poi il resto e' semplice

Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,09 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000