inline assembler

inline assembler

offline
  • Pridružio: 11 Feb 2006
  • Poruke: 166
  • Gde živiš: Loznica

nasao sam sledeci kod na netu i prepisao u devcpp
#include <iostream.h>
int main()
{
asm("in %al,61");
asm("and %al,252");
asm("out 61,%al");
}
izbacuje gresku
Error suffix or operands invalid for `in'
Error suffix or operands invalid for `out'

kako se ubacuje inline asm u devcpp



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 28 Maj 2006
  • Poruke: 1536
  • Gde živiš: Seven holy paths to hell

Sta treba da radi taj kod??
in i out nemas u assembly syntax ...



offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

I ja sam nesto lupao glavu oko ovoga.
Jedino sto mi pada na pamet je mozda da je u pitanju razlika izmedju Intelove i AT&T sintakse.

offline
  • Srdjan Kordic
  • Informacione Tehnologije
  • Pridružio: 30 Dec 2009
  • Poruke: 43
  • Gde živiš: Niš\Babušnica

Ako hoćes da u c/c++ program ubacis asemblerski kod kucas _ASM pa velika zagrada, pa kod u asembleru(naravno asemblerski kod tima MOV ax,2 ,PUSH ax i sl) ne mozes tako kao sto si ti pisao to asemblerski prevodilac ne razume.

offline
  • Pridružio: 28 Maj 2006
  • Poruke: 1536
  • Gde živiš: Seven holy paths to hell

SrdjanK90 ::Ako hoćes da u c/c++ program ubacis asemblerski kod kucas _ASM pa velika zagrada, pa kod u asembleru(naravno asemblerski kod tima MOV ax,2 ,PUSH ax i sl) ne mozes tako kao sto si ti pisao to asemblerski prevodilac ne razume.
int i; _ASM{    mov eax,i; }
ovo je definicija za MS VS 2008...

definicija za devc++ je:
int i; asm(".intel_syntax noprefix \n"        "mov eax,_i \n"        );

offline
  • Pridružio: 11 Feb 2006
  • Poruke: 166
  • Gde živiš: Loznica

Janki90 ::Sta treba da radi taj kod??
in i out nemas u assembly syntax ...


zbog bolesti se nisam javio ranije
IN i OUT treba da posalju ili prime byte na paralelni port
podrzane su kod intela a ja imam amd procesor inace otale .asm komande rade

offline
  • Pridružio: 30 Dec 2007
  • Poruke: 4759
  • Gde živiš: Niš

Citat:
IN i OUT treba da posalju ili prime byte na paralelni port

možda je ovo delimično povezano sa hardware-om Confused
mislim da unazad dugo vremena paralelni port ide preko SuperIO čipa
ne znam tačno koja je low level komanda za štampanje

ali obično koriste windowsov API jer su sami štampači
komplikovani i imaju one njihove postscript i esc/p ili slične komandne jezike Sad

Ziveli

ako nije radi štampanja već radi drugog kontrolera,
u stvari on je 'lockovan' od strane windowsa Question paralelni port ?

on je obično na hexadecimalnoj adresi 0x378
ali možda mora da se inicijalizuje nekako Confused
http://www.computing.net/answers/programming/paral.....11861.html
http://www.mattjustice.com/parport/par_asm.html
http://www.epanorama.net/circuits/parallel_output.html
"access parallel port from asembler"

ajd ovako
u BIOSU isključi ECC i EPP tako da ostane običan paralelni port Very Happy
(ovi ecc i epp unose DMA transfer i prekide u jednačinu Wink
Ziveli

offline
  • Pridružio: 11 Feb 2006
  • Poruke: 166
  • Gde živiš: Loznica

#include <iostream> #include <stdlib.h> using namespace std; int main() {     /* Add 10 and 20 and store result into register %eax */     __asm__ ( "movl $10, %eax;"                 "movl $20, %ebx;"                 "addl %ebx, %eax;"     );    /* __asm__("in      %al,61"); */     system("PAUSE");      return 0; }
ovaj kod radi a kad ukljucim in
#include <iostream> #include <stdlib.h> using namespace std; int main() {     /* Add 10 and 20 and store result into register %eax */     __asm__ ( "movl $10, %eax;"                 "movl $20, %ebx;"                 "addl %ebx, %eax;"     );    __asm__("in      %al,61");     system("PAUSE");      return 0; }izbaci gresku


probao sam sve varijante u biosu i daje istu gresku, probacu u makro assembleru
kako je ovo dobro radilo u DELPHI1
hvala za linkove

Ko je trenutno na forumu
 

Ukupno su 1070 korisnika na forumu :: 21 registrovanih, 1 sakriven i 1048 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: bokisha253, BORUTUS, cenejac111, FileFinder, GandorCC, Georgius, helen1, hyla, Još malo pa deda, ladro, Mi lao shu, mik7, Mixelotti, nesa1962, ostoja, Pikac-47, shone34, Srki94, Srle993, vukovi, 79693