Torna indietro   Hardware Upgrade Forum > Software > Programmazione

MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro
Wireless 2.4 GHz, Bluetooth 5.4, cancellazione attiva del rumore, design pieghevole e un'autonomia che mette in imbarazzo prodotti che costano il doppio. Le Maestro 500 non eccellono in nulla, ma offrono tutto. E a questo prezzo è difficile chiedere di più
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine
Dopo anni di attesa e una lunga fase di sviluppo, Noctua entra nel mercato dei dissipatori a liquido AIO con la nuova serie NL-LC1. Forte dell'esperienza maturata nel raffreddamento ad aria, l'azienda austriaca promette di portare la propria filosofia fatta di qualità costruttiva, attenzione ai dettagli e silenziosità anche in questo segmento. Abbiamo provato il nuovo sistema per scoprire se riesce a distinguersi in un mercato ormai molto competitivo.
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super
Arrivato sul mercato italiano a fine marzo, la serie Boox Go 10.3 (Gen II) offre Android 15, penna da 4096 livelli e retroilluminazione opzionale (nel modello da noi provato, Lumi, presente). La serie si compone di due tablet ePaper che fanno da e-reader, blocco note digitale e persino browser, tutto a un prezzo che fa dimenticare i prodotti di brand più blasonati
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-05-2013, 12: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


MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con ...
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Gwynne Shotwell (presidente di SpaceX): ...
ISRO lancerà il primo modulo della stazi...
Lo sfondo animato del tuo PC potrebbe es...
Dopo la RAM, Framework annuncia l'aument...
Google Home Speaker ufficiale: è il prim...
Spotify: i nomi utente stanno per divent...
Il limite vero dei data center AI sono g...
AMD conferma i nuovi Threadripper: Zen 6...
Stop all'ADSL per WindTre: continua la m...
HPE punta sull'IA agentica e dichiara gu...
macOS avvisa quando si incolla un comand...
Everpure ridisegna lo storage per l’IA: ...
NVIDIA RTX Remix 1.5: realizzare remaste...
Come configurare Windows 11 like a pro, ...
Windows 11 cambia finalmente la gestione...
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: 23:05.


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