[linux] Assembler & C

Jozef Cervenansky jcervenansky na pobox.sk
Pondělí Srpen 23 14:08:36 CEST 1999


> > 
> > Ahojte.
> > 
> > Potreboval by som pomoct s nasledujucim problemom.
> > 
> > Mam definovany retazec :
> > 
> >    char* retazec = "Toto je retazec.";
> > 
> > a ja by som potreboval teraz v C-ecku zistit 32 bitovu adresu retazca, ktoru prenesiem do
> > registra, pr. EAX a potom prepisem prve styri znaky na , pr. BBBB, cize
> > retazec pred operaciou je : "Toto je retazec". po uprave : "BBBB je retazec."
> > 
> 
>     hmm a preco to nespravis cele v C-cku ?
> 
>         for( i=0; i<4; i++) *(retazec + i) = 'B';
>  
>     alebo ak chces pouzit long tak pretypovanim
> 
>        unsigned long eax = 0x42424242;
> 
>        *((unsigned long *)(retazec)) = eax;
> 
> 
> 					mico
> 
Znova jozo.
Nepotrebujem to urobit v C-ecku, to by som nepisal.
Ukazem vam novu verziu.

  char* text = new char [30];   //dyn. znak. pole
  strcpy(text,"Pokusny text");  //nejaky retazec
  //assembler
  mov esi, dword ptr text  //adresa pola TEXT
  mov bl,'A'               //do pola hadze abecedu
  mov cx,26                //26 pismen
slucka:
  //tuto mi to vypisuje chybu, ze nemoze zapisat
  //do pamati, neviem preco, nechce mi to dovolit
  mov byte ptr [esi], bl   //pismeno do pola 
  inc bl                   //dalsie pismeno
  inc esi                  //dalsia pozicia pola
  loop slucka
  //koniec assemblera

Potrebujem urobit graficke rutiny v assembleri a toto
som skusal len ci mi bude fungovat buffer pre data
z VRAM -> RAM a nejde mi to! 
Mozete helpnut !!
  
____________________________________
P. S. V. P. U.
http://www.pobox.sk/





Další informace o konferenci linux