Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm
ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm
ASUS e HIFIMAN uniscono le forze per creare ROG Kithara, cuffie gaming con driver magnetici planari da 100mm, design open-back e microfono MEMS full-band. Una proposta che ambisce a coniugare fedeltà per audiofili e performance ludiche, disponibili a 319 euro
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-05-2013, 13:51   #1
tonno16
Member
 
Iscritto dal: Apr 2010
Messaggi: 53
[assembly] esercizio vettori

salve a tutti. Ho un esercizietto da sottomettervi. Dato un vettore di interi devo creare un vettore compresso di char dove compaia il numero di volte che il numero compare, e il numero stesso. ESEMPIO:

vettore: 1 1 1 1 1 3 4 4 5

compresso: 5 1 1 3 2 4 1 5

5 volte l'uno 1 volta il 2.......

il mio codice funziona tranno che nel caso in qui ci siano cifre ripetute più di 255 volte, e dato che char non può essere > il caso fallisce

ecco il codice:
Codice:
#include <stdio.h>
#include <stdlib.h>


void main(){

   #define MaxLen 1024
   int Len = 30;
   unsigned char Buffer[MaxLen] = {97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,255}
;
   #define MaxLenComp (MaxLen*2+1)
   unsigned char BufComp[MaxLenComp];

   __asm{
            XOR EAX,EAX
            XOR EDX,EDX
            XOR ESI,ESI
            XOR EBX,EBX
      
            MOV EAX,0                  // i = 0
            MOV EDX,1                  // j = 1
            MOV ESI,0                  // indice vettore compresso
            MOV EBX,1                  // conta = 1

   inizio:      CMP EAX,30
            JE   fine                  // salta a fine se j > 30
            XOR ECX,ECX
              MOV CL,Buffer[EDX]
            CMP Buffer[EAX],CL
            JE  incrementa               // vai a incrementa se i numeri coincidono
             //altrimenti3
   spezza:      MOV BufComp[ESI],BL         // compresso[indice] = conta
            INC ESI
            XOR ECX,ECX
            MOV CL,Buffer[EAX]      
            MOV BufComp[ESI],CL      // compresso[indice] = vettore[i]
            INC EAX                     // i++
            INC EDX                     // j++
            INC ESI
            MOV EBX,1
            JMP inizio                  

incrementa:     INC EBX
            CMP EBX,255
            JE  spezza            // vai a spezza se il contatore = 255
            // altrimenti
            INC EAX
            INC EDX
            JMP inizio

      fine:   MOV BufComp[ESI],0
   }

   int i;
   for(i=0;i<Len;i++){  printf("%d ", Buffer[i]);  }
   printf("\n\n");

   for(i=0;BufComp[i];){ 
                  printf("%d ", BufComp[i++]); 
                  printf("%d ", BufComp[i++]); 
   }
   
   
   system("pause");
}
avete idee?? ho anche un foglio con l'algoritmo scritto, ma non capisco dove sbaglio
tonno16 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm ASUS ROG Kithara: quando HIFIMAN incontra il gam...
Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Micron annuncia le GDDR7 da 3 GB fino a ...
Tempi di intrusione ulteriormente ridott...
Smartwatch: il mercato cresce, Apple si ...
Stellaris sarà la prima centrale ...
HUAWEI Band 11 e 11 Pro ufficiali: le no...
Assetto Corsa Rally si aggiorna con Mont...
Roborock Saros 20 Set a 1.289€ invece di...
Recensione HUAWEI FreeBuds Pro 5: ANC e ...
Perplexity Computer: l'AI che lavora da ...
Nimbus Innovation Awards Cloud Edition 2...
Roborock Qrevo Curv 2 Flow a 699€: robot...
Copia privata: arriva la 'tassa sul clou...
realme 16 Pro Series in Italia a marzo: ...
DeepSeek esclude NVIDIA e AMD dall'acces...
Ubisoft perde il direttore creativo di A...
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: 17:23.


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