Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-06-2009, 00:08   #1
radoen
Member
 
L'Avatar di radoen
 
Iscritto dal: Mar 2005
Città: Lecce
Messaggi: 195
ASM : caricare un vettore

salve a tutti allora, sto preparando un progetto per l'uni e devo ad un certo punto caricare dei valori presi da un file di testo in un vettore. Allora io ho :
1) scritto la routine per l'apertura, la scanzione Char per char e la conversione dei char in interi senza segno a 16 bit (valori positivi da 0 a 32mila e rotti)
2)tale procedura riorna di volta i volta il valore convertito in una varibile allocata dichiarata in BSS

ora io dovrei riempire il vettore per poterci poi fare 2 operazioni di cui ho già scritto il codice solo che al momeno non riesco a venirne a capo. Qualcuno mi da qualche dritta ? vi pasto il codice che apre il file legge carattere carattere e (al momento) stampa a video i caratteri convertiti al posto di metterli nel vettore "fotogramma".
L'assemblatore usato è as88 di tanenbaum ma a me non serve che scriviate il codice apposta per il mio asm bastano le linee guida generali che non riesco a cogliere.

Grazie a tutti in anticipo
PS è asm 8088

APRE E LEGGE
Codice:
#include "syscalnr.h"	
#include "converter.s" 
bufsiz	= 1		!   blocchi di 1 byte (16 bit)
.SECT .TEXT			


infbufst:!(puntatore a vector)
	mov SI,0
	push bp	
	mov bp,sp
1:	PUSH 0			! lettura
	PUSH filnam		! nomefile
	PUSH _OPEN		! funzione
	SYS			! chiamata sistema
	ADD  SP,8		! pulisco lo stack
		
	CMP  AX,0		! ci sono errori nell'apertura?
	JL   9f			! errore nell'apertura
	MOV  (fildes),AX	! metto in fildes il descrittore del file
	MOV  BX,0
	
1:	CALL vulbuf		!carica il contenuto del file in memoria
	
	CMP  CX,0		!se cx 0 non ho letto 
	JLE  3f			!termino esecuzione per fine file
2:	MOVB AL,' '		!metto lo spazio in al
	REPNE  SCASB		!cerco lo spazio nel buffer attuale
	JNE  impila		!se non spazio lo metto sullo stack
	push dx    		!numero di caratteri impilati sullo stack
	call charInt	  	!conversione ascii to intero
	mov dx,0		!azzero il contacaratteri
	add sp,4		!pulisco lo stack
	sub (buf), 100		!pulisco il buffer
	push (conv)		!metto il numero convertito sullo stack
	push fts		!formattazione stringa
	push _PRINTF		!stampo a video
	sys			!chiama sistema
	add sp,6		!pulisco lo stack
	INC  (count)		!incremento contatore
	MOV  AX,BX		!scansione quanto letto e posizionato in memoria
	SUB  AX,CX		!caratteri rimanenti
	CMP  CX,0		!se zero ho finito il buffer
	JNE  2b			!continuo a cercare nel buffer
	JMP  1b			!ricarico il buffer con nuovi caratteri

9:      mov AX, 1      		!errore nel caricamento
        pop bp	        	!rirpistino il pb
	ret			!esco dalla procedura

	

3:	
	push 0			!codice di uscita
        push _EXIT		!termina programma
	sys			!chiamata di sistema
	
impila :
	push (buf)		!salvo sullo stack il carattere letto
	inc DX			!incremento il contatore di carattei
	jmp 1b			!torno a leggere

vulbuf:				
	PUSH bufsiz		! quanti bite leggo
	PUSH buf		! contiene il carattere letto
	PUSH (fildes)		! dove leggo 
	PUSH _READ		! leggo 
	SYS			! chiamata di sistema
	ADD  SP,8		! pulisco lo stack
	MOV  CX,AX		! in ax numero di byte letti
	ADD  BX,CX		! li aggiungo a quelli letti in prcedenza
	MOV  DI,buf		! prossima posizione da leggere	
	RET			! 93



.SECT .DATA			
filnam : .ASCIZ "Input.txt"      !nomefile
fts:	.ASCIZ "Valore : %d\n" 	 !stringa di formattazione

.SECT .BSS			!
fildes: .SPACE 2		!descrittore del file
buf:	.SPACE 1		!dove memorizzo i caratteri
count:  .SPACE 2		!contatore
conv: .SPACE 4			!contiene i caratteri convertiti in numeri
fotogramma: .SPACE 9600
CONVERTER
Codice:
#include "syscalnr.h"
.SECT .TEXT
!Convertitore char to dec per il progetto di Architetture giugno 09
!developed under debian GNU/LINUX 
charInt: !( val1....valn, dim) ->  conv
	push ax
	push dx	
	push cx	
	push bx	
	push SI	
	push DI
	push bp
	mov bp,sp
	mov SI, 16
	mov cx , (BP)(SI) !indice ciclo
	!dec cx
	mov dx, cx !controllo dei pesi
	add SI ,2
	mov ax ,0
cilo:   push dx	   
	mov bx, (BP)(SI)
	sub bx, 48
	sub dx, cx
	push ax
	cmp dx, 0
	je zero		
	cmp dx, 1
	je uno	
	cmp dx, 2
	je due
	cmp dx, 3
	je tre
	cmp dx, 4
	je quattro
molt:	mul bx
	mov bx,ax
	pop ax
	pop dx	
	add ax, bx
	add si ,2
	loop cilo
	mov (conv),ax	
	pop bp
	pop di
	pop SI
	pop bx
	pop cx
	pop dx
	pop ax
	ret

zero : mov ax , 1
	jmp molt
uno : mov ax , 10
	jmp molt
due: mov ax, 100
	jmp molt
tre: mov ax, 1000
	jmp molt
quattro: mov ax, 10000
	jmp molt
.sect .data
.sect .bs
__________________
Albert Einstein disse " Solo due cose sono infinite: l'universo e la stupidità umana. Ma non sono sicuro della prima " e aveva ragione
Ho Contrattato con gli utenti "carbv" "(zar)sheva" "rasbeetle"
radoen è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
PHP2Shell: sfruttate attivamente le due ...
Raffreddamento passivo senza elettricità...
La deforestazione in Amazzonia crolla a ...
La luce del sole a mezzanotte, ecco come...
Oltre mille modelli 3D scaricati senza a...
274 brani di Elvis Presley sono stati us...
SVOLT avvia la produzione in serie di ba...
Apple rilascia macOS Sequoia 15.8.2 e Ta...
Attacchi hacker alla Camera: nel mirino ...
Android Auto prepara il numero preferito...
CPU e quantum computing dipendono da un ...
Microsoft rivede la sicurezza di Windows...
Linux 7.4 porta nel kernel Apple M4, Ten...
Boston Dynamics tira dritto sui cani rob...
Camion pieni di server spariscono nel nu...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:52.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v