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
 [Assembler] Istruzione DIV
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

axelgenus
Nuovo Utente


Regione: Puglia
Prov.: Bari
Città: Bari


Inserito il - 27/05/2005 : 18:34:34  Mostra Profilo  Visita l'Homepage di axelgenus Invia a axelgenus un Messaggio Privato  Rispondi Quotando
Ciao a tutti,

ricollegandomi al thread precedente "Conversione HEX->DEC" ho trovato una soluzione: utilizzare il metodo delle divisioni successive. D'altronde è lo stesso metodo adottato dal prof. Anelli.

Ho tentato di riscrivere il programma in modo che converta un'intera parola (16 bit) da esadecimale e decimale, invece che un solo byte per volta. Purtroppo l'istruzione DIV mi da sempre errore di "overflow di divisione". Quacuno mi può spiegare in che cosa consiste e come si può risolvere?

Grazie, Axel.

PS - Scusate l'insistenza con cui posto su questo forum ma lunedì ho l'esame di laboratorio e vorrei andarci ben preparato!

mrluglio
Utente Sempre in Vacanza

Max


Regione: Puglia
Prov.: Bari
Città: Terlizzi


Inserito il - 28/05/2005 : 11:02:16  Mostra Profilo  Visita l'Homepage di mrluglio  Clicca per vedere l'indirizzo MSN di mrluglio Invia a mrluglio un Messaggio Privato  Rispondi Quotando
non è che per caso dividi per 0
(poi nn so...è solo un suggerimento)

Spazio agli inventori : "Questa cosa non funziona...funzionerebbe però se usassimo il RETROMOUSE"
by Anonimo

Torna all'inizio della Pagina

axelgenus
Nuovo Utente


Regione: Puglia
Prov.: Bari
Città: Bari


Inserito il - 28/05/2005 : 12:21:04  Mostra Profilo  Visita l'Homepage di axelgenus Invia a axelgenus un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da mrluglio

non è che per caso dividi per 0



No, non era quello il problema. Comunque ho risolto da solo, grazie!
Torna all'inizio della Pagina

silent
Utente assiduo

tartaruga


Regione: Puglia
Prov.: Bari
Città: Andria


Inserito il - 31/05/2005 : 11:46:23  Mostra Profilo  Visita l'Homepage di silent Invia a silent un Messaggio Privato  Rispondi Quotando
qualcuno che ha sostenuto la prova di laboratorio può postare la traccia ??

Rivoluzione? Rivoluzione? Per favore, non parlarmi tu di rivoluzione! Io so benissimo cosa sono e come cominciano: c'e qualcuno che sa leggere i libri che va da quelli che non sanno leggere i libri, che poi sono i poveracci, e gli dice: << Oh, oh, e' venuto il momento di cambiare tutto >> [...] Io so quello che dico, ci son cresciuto in mezzo, alle rivoluzioni. Quelli che leggono i libri vanno da quelli che non leggono i libri, i poveracci, e gli dicono: << Qui ci vuole un cambiamento! >> e la povera gente fa il cambiamento. E poi i piu' furbi di quelli che leggono i libri si siedono intorno a un tavolo, e parlano, parlano, e mangiano. Parlano e mangiano! E intanto che fine ha fatto la povera gente? Tutti morti! Ecco la tua rivoluzione! Quindi per favore, non parlarmi piu' di rivoluzione...E porca troia, lo sai che succede dopo? Niente...tutto torna come prima". Juan Miranda - Giù la testa -
Torna all'inizio della Pagina

M]i[K
utente juventino

MiK_AvataR


Regione: Puglia
Prov.: Bari


Inserito il - 31/05/2005 : 15:28:24  Mostra Profilo  Visita l'Homepage di M]i[K  Clicca per vedere l'indirizzo MSN di M]i[K Invia a M]i[K un Messaggio Privato  Rispondi Quotando
io l'ho fatto l'anno scorso con la deCarolis, e mise di immettere un vettore di numeri da tastiera e dovevi prima ordinare il vettore di numeri, e poi avere come output due messaggi, uno che ti dicceva il numero dei numeri pari del vettore, e l altro messaggio diceva il numero dei dispari.

Al secondo turno, che fece il mio amico invece, mise di immettere un vettore di numeri, e di invertirli con un altro vettore di numeri gia dato da lei però.

Spero di esserti stao utile..in bocca al lupo
Torna all'inizio della Pagina

silent
Utente assiduo

tartaruga


Regione: Puglia
Prov.: Bari
Città: Andria


Inserito il - 31/05/2005 : 16:38:40  Mostra Profilo  Visita l'Homepage di silent Invia a silent un Messaggio Privato  Rispondi Quotando
grazie xoom

Rivoluzione? Rivoluzione? Per favore, non parlarmi tu di rivoluzione! Io so benissimo cosa sono e come cominciano: c'e qualcuno che sa leggere i libri che va da quelli che non sanno leggere i libri, che poi sono i poveracci, e gli dice: << Oh, oh, e' venuto il momento di cambiare tutto >> [...] Io so quello che dico, ci son cresciuto in mezzo, alle rivoluzioni. Quelli che leggono i libri vanno da quelli che non leggono i libri, i poveracci, e gli dicono: << Qui ci vuole un cambiamento! >> e la povera gente fa il cambiamento. E poi i piu' furbi di quelli che leggono i libri si siedono intorno a un tavolo, e parlano, parlano, e mangiano. Parlano e mangiano! E intanto che fine ha fatto la povera gente? Tutti morti! Ecco la tua rivoluzione! Quindi per favore, non parlarmi piu' di rivoluzione...E porca troia, lo sai che succede dopo? Niente...tutto torna come prima". Juan Miranda - Giù la testa -
Torna all'inizio della Pagina

silent
Utente assiduo

tartaruga


Regione: Puglia
Prov.: Bari
Città: Andria


Inserito il - 14/06/2005 : 16:36:20  Mostra Profilo  Visita l'Homepage di silent Invia a silent un Messaggio Privato  Rispondi Quotando
ma per la prova di laboratorio la prof. de carolis mette già a disposizione le subroutine di lettura e scrittura di un byte,o le dobbiamo scrivere noi ??

Rivoluzione? Rivoluzione? Per favore, non parlarmi tu di rivoluzione! Io so benissimo cosa sono e come cominciano: c'e qualcuno che sa leggere i libri che va da quelli che non sanno leggere i libri, che poi sono i poveracci, e gli dice: << Oh, oh, e' venuto il momento di cambiare tutto >> [...] Io so quello che dico, ci son cresciuto in mezzo, alle rivoluzioni. Quelli che leggono i libri vanno da quelli che non leggono i libri, i poveracci, e gli dicono: << Qui ci vuole un cambiamento! >> e la povera gente fa il cambiamento. E poi i piu' furbi di quelli che leggono i libri si siedono intorno a un tavolo, e parlano, parlano, e mangiano. Parlano e mangiano! E intanto che fine ha fatto la povera gente? Tutti morti! Ecco la tua rivoluzione! Quindi per favore, non parlarmi piu' di rivoluzione...E porca troia, lo sai che succede dopo? Niente...tutto torna come prima". Juan Miranda - Giù la testa -
Torna all'inizio della Pagina

silent
Utente assiduo

tartaruga


Regione: Puglia
Prov.: Bari
Città: Andria


Inserito il - 16/06/2005 : 18:31:13  Mostra Profilo  Visita l'Homepage di silent Invia a silent un Messaggio Privato  Rispondi Quotando
qualcuno mi sa dire perchè questo esercizio mi da l'errore di overflow di divisione (nella proc PARIV)

;programma che acquisisce 5 numeri da tastiera,ne esegue la somma
;e mi dice i numeri pari
;============================SEGMENTO STACK==============================
STACK SEGMENT PARA STACK 'STACK'
DB 100H DUP(0)
STACK ENDS
;============================SEGMENTO DATI==============================
DATA SEGMENT PARA PUBLIC 'DATA'
TOTALE DB 5 ;quanti numeri contiene il vettore
VETTORE DB 5 DUP(0)
SOMMA DW 0 ;risultato della somma
PARI DW 0
DIECI DB 10 ;conversione ASCII-numero
DIECIW DW 10 ;conversione nuero-ASCII
ACCAPO DB 13,10,'$'
MSGX DB 'IMMETTERE UN VALORE : $'
MSG1 DB 'LA SOMMA RISULTA= $'
MSG2 DB ': $'
MSG3 DB 'I NUMERI PARI SONO: $'
MSG4 DB ': $'
DATA ENDS
;============================SEGMENTO CODICE============================
CODE SEGMENT PARA PUBLIC 'CODE'
MAIN PROC FAR
;================prologo standard=========================
ASSUME CS:CODE
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV ES,AX
ASSUME ES:DATA
MOV DS,AX
ASSUME DS:DATA
;=======================MAIN=====================
CALL ACQUISIZIONE
CALL CALCOLO
CALL OUTPUT
CALL PARIV
RET
;=========================PROCEDURE=======================
;-------------------------------------------------------------------------
INPUT PROC NEAR
XOR DX,DX
LEA DX,MSGX
CALL VISUAL
CALL INPUT_N ;acquisisce un valore e pone il risultato in AL
RET
INPUT ENDP
;-------------------------------------------------------------------
ACQUISIZIONE PROC NEAR
XOR AX,AX
XOR BX,BX
XOR CX,CX
MOV CL,5
CICLO: CALL INPUT
MOV VETTORE[BX],AL
INC BX
LOOP CICLO
RET
ACQUISIZIONE ENDP
;-------------------------------------------------------------------
CALCOLO PROC NEAR
XOR AX,AX
XOR BX,BX
XOR CX,CX
MOV CL,TOTALE
CICLOX: ADD AL,VETTORE[BX]
INC BX
LOOP CICLOX
MOV SOMMA,AX
RET
CALCOLO ENDP
;------------------------------------------------------------
PARIV PROC NEAR
XOR DX,DX
LEA DX,MSG3
CALL VISUAL
CALL INPUT_N
XOR AX,AX
XOR BX,BX
XOR CX,CX
MOV CL,TOTALE
CICLOP: MOV AL,VETTORE[BX]
MOV BX,2
DIV BX
CMP AH,0
JNE FINE
LOOP CICLOP
MOV PARI,AX
FINE: RET
PARIV ENDP

;------------------------------------------------------------
OUTPUT PROC NEAR
PUSH AX
PUSH DX
LEA DX,MSG1 ;'LA SOMMA è= $'
CALL VISUAL ;stampa stringa puntata da DS:DX mediante INT 21h,09h
MOV AX,SOMMA
CALL STAMPA_N ;stampa il risulato
LEA DX,ACCAPO ;passaggio alla riga successiva
CALL VISUAL
POP DX
POP AX
RET
OUTPUT ENDP
;-------------------------------------------------------------------------
;Input di numero decimale < 256 (byte)da tastiera: in AL
Input_N PROC NEAR
PUSH BX
PUSH CX
PUSH DX
XOR AX,AX ;Inizializza AX
MOV CX,5 ;Lettura di massimo 5 caratteri
Ciclo1: CALL Char_N ;Input di un carattere ASCII in DL
CMP DL,13 ; INVIO = DEC 13 in ascii
JE VerificaB ;E' stato premuto INVIO?
SUB DL,'0' ;Conversione ASCII-numero
MUL dieci ;AX <- dieci * AL
ADD AL,DL
LOOP Ciclo1 ;salta se meno di cinque cifre
VerificaB: CMP AX,256
JB Fuori ;E' stato effett letto un byte?
LEA DX,msgx ;puntatore del messaggio in DX
CALL VISUAL ;Stampa la stringa puntata da DX
XOR AH,AH
CALL Stampa_N ;Stampa del byte utilizzato
Fuori: LEA DX,accapo ;Passaggio alla riga successiva
CALL VISUAL ;Stampa la stringa puntata da DX
POP DX
POP CX
POP BX
RET
Input_N ENDP
;--------------------------------------------
;Input da tastiera di cifra '0'..'9','INVIO', resa in DL
Char_N PROC NEAR
PUSH AX
Ripeti: MOV AH,1
INT 21h
MOV DL,AL
CMP DL,13
JE Char_N_Ok ;E' stato premuto INVIO?
CMP DL,'0'
JB Indietro ;Il carattere è < '0'?
CMP DL,'9'
JBE Char_N_Ok ;Il carattere <= '9'?
Indietro: PUSH BX
MOV AH,3 ;servizio 3:acquisizione cursore
MOV BH,0 ;pagina 0
INT 10h ;DH riga DL colonna
DEC DL
MOV AH,2 ;servizio 2:definizione cursore
INT 10h
POP BX
JMP Ripeti ;rilegge il carattere
Char_N_Ok: POP AX
RET
Char_N ENDP
;-------------------------------------------------
;-------------------------------------------------------------------
;la proceduta VISUAL stampa la stringa puntata da DS:DX mediante INT 21h,09h
VISUAL PROC NEAR
PUSH AX
MOV AH,9
INT 21H
POP AX
RET
VISUAL ENDP
;-------------------------------------------------------------------------
;la procedura STAMPA_N scrive a video il valore di AX come stringa di cifre
STAMPA_N PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV CX,0 ;inizializza il numero di cifre
CICLO2: MOV DX,0
DIV DIECIW
ADD DX,'0'
PUSH DX ;salvataggio cifra
INC CX
CMP AX,0
JNE CICLO2 ;ci sono altre cifre?
MOV AH,2
CICLO3: POP DX
INT 21H
LOOP CICLO3
POP DX
POP CX
POP BX
POP AX
RET
STAMPA_N ENDP
;-----------------------------------------------------------------------------
MAIN ENDP
CODE ENDS
END MAIN


Rivoluzione? Rivoluzione? Per favore, non parlarmi tu di rivoluzione! Io so benissimo cosa sono e come cominciano: c'e qualcuno che sa leggere i libri che va da quelli che non sanno leggere i libri, che poi sono i poveracci, e gli dice: << Oh, oh, e' venuto il momento di cambiare tutto >> [...] Io so quello che dico, ci son cresciuto in mezzo, alle rivoluzioni. Quelli che leggono i libri vanno da quelli che non leggono i libri, i poveracci, e gli dicono: << Qui ci vuole un cambiamento! >> e la povera gente fa il cambiamento. E poi i piu' furbi di quelli che leggono i libri si siedono intorno a un tavolo, e parlano, parlano, e mangiano. Parlano e mangiano! E intanto che fine ha fatto la povera gente? Tutti morti! Ecco la tua rivoluzione! Quindi per favore, non parlarmi piu' di rivoluzione...E porca troia, lo sai che succede dopo? Niente...tutto torna come prima". Juan Miranda - Giù la testa -
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,24 secondi.

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