Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
Un proiettore economico, che fa della portabilità e immediatezza i suoi punti di forza. Adatto per una camera da letto o per la casa vacanze, è basato su sistema proprietario Linux ma offre piena compatibilità ufficiale a Netflix
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-06-2009, 23: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


HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Rocket Factory Augsburg ha riscontrato u...
Blue Origin sta ricostruendo e modifican...
BMW taglierà 8.000 posti di lavor...
7.600 annunci di nudify app su Meta, tut...
Visa ne lascia a casa 2600: intelligenza...
Batterie sostituibili? Per Logitech, gli...
IBM: l'IA riduce i costi delle violazion...
Logitech G Cloud bocciata dal pubblico, ...
NVIDIA RTX Spark, provato un prototipo c...
Sony e Fujifilm: evacuate le fabbriche d...
Starship: Ship 40 continua a galleggiare...
UMC investe su Singapore e Tainan per ri...
Steam Machine, novità sulle code:...
Anche Foxconn abbandona VMware e sceglie...
Windows 11 migliora l'accessibilit&agrav...
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: 21:34.


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