praegune kellaaeg 16.06.2024 17:30:48
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
sõnum |
|
Overkilla
HV veteran
liitunud: 11.04.2004
|
11.02.2008 19:35:07
get_esp ei tööta |
|
|
Selline lugu, et
long get_esp() { __asm__("movl %esp,%eax"); } |
peale teatab gcc (3.4.6), et % märgid ei sobi ja "parameter error". Kui kirjutada nii
long get_esp() { __asm__("movl % esp,% eax"); } |
või nii
long get_esp() { __asm__("movl%%esp,%%eax"); } |
, siis jääb ainult viimane veateade, et "parameter error". Ei oska midagi muuta, parandada.
Kui get_esp välja võtta, siis gcc on rahul, aga ilma selleta ei tööta programm ise.
Platvorm on SunOS 5.8 SPARC.
|
|
Kommentaarid: 97 loe/lisa |
Kasutajad arvavad: |
|
:: |
6 :: |
2 :: |
80 |
|
tagasi üles |
|
|
Smith
HV veteran
liitunud: 25.08.2002
|
11.02.2008 19:51:08
|
|
|
See näeb kahtlaselt x86 asmi moodi välja, mis vist ei sobi eriti SPARCi puhul.
_________________ Only the Central Computer knows the truth |
|
Kommentaarid: 158 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
145 |
|
tagasi üles |
|
|
Overkilla
HV veteran
liitunud: 11.04.2004
|
11.02.2008 20:39:59
|
|
|
Smith kirjutas: |
See näeb kahtlaselt x86 asmi moodi välja, mis vist ei sobi eriti SPARCi puhul. |
Täitsa hea mõte, siis
u_long get_esp() { asm("mov %sp, %i0"); } |
oleks vast parem?
|
|
Kommentaarid: 97 loe/lisa |
Kasutajad arvavad: |
|
:: |
6 :: |
2 :: |
80 |
|
tagasi üles |
|
|
Supiplex
HV veteran
liitunud: 11.12.2002
|
12.02.2008 10:23:51
|
|
|
Kas sa tahad stack pointerit välja lugeda? GCC assembler on tark. Sa saad registri väärtuse otse muutujasse kopeerida. Ma kord tegin täpselt sedasama m68k arhitektuuril.
unsigned int bufStackPointer;
__asm__ __volatile__ ("move.l %/sp,%0" : "=r"(bufStackPointer)); |
Muutuja pikkus, move käsk ja %sp võivad Sparci puhul teistsugused olla, aga põhimõttest saad ehk aru.
_________________ The young lady had an unusual list,
Linked in part to a structural weakness.
She set no preconditions. |
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
34 |
|
tagasi üles |
|
|
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|