-
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: " " <f...@g...pl>
Newsgroups: pl.comp.programming
Subject: Re: 'odpalanie' stringa
Date: Mon, 23 Jan 2012 19:32:45 +0000 (UTC)
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 119
Message-ID: <jfkckt$88r$1@inews.gazeta.pl>
References: <jfk4vm$bn9$1@inews.gazeta.pl> <jfk5do$d2r$1@inews.gazeta.pl>
<jfk87f$mdv$1@inews.gazeta.pl>
NNTP-Posting-Host: localhost
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: inews.gazeta.pl 1327347165 8475 172.20.26.241 (23 Jan 2012 19:32:45 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Mon, 23 Jan 2012 19:32:45 +0000 (UTC)
X-User: fir
X-Forwarded-For: 31.60.126.27
X-Remote-IP: localhost
Xref: news-archive.icm.edu.pl pl.comp.programming:194881
[ ukryj nagłówki ]<f...@g...pl> napisał(a):
> <f...@g...pl> napisał(a):
>
> > <f...@N...gazeta.pl> napisał(a):
> >
> > > ostatnio czytalem blog gdzie autor pisze mw ze
> > > jak chce szybko odpalic funkcje w asmie to pisze
> > > ja w stringu po czym rzutuje na wskaznik do funkcji
> > > i odpala - bardzo ciekawa rzecz
> > >
> > > czy rzeczywiscie daje sie tak zrobic - a jesli tak czy
> > > ktos moze podac funkcjonalny przyklad
> > >
> >
> > (dodam ze jakis czas probowalem sie nieco poduczyc asemblera
> > ale natrafilem na granice zaporowa, mam wrazenie ze musialbym
> > sie powaznie rozbujac by pisac kod w mieszanym c/asm, moze
> > gdyby takie odpalanie stringow fajnie dzialalo byloby blizej)
> >
> >
>
> sprawdzilem, co ciekawe dziala swietnie (dzieks gynvael)
>
> char asmRoutineData[] =
> {
> 0xC8, 0x00, 0x00, 0x00, // enter 0, 0
> 0xB8, 0x02, 0x00 ,0x01 ,0x00, // mov eax, 65538
> 0xC9, // leave
> 0xc3 // ret
> };
>
> int (*asmRoutine)(void) = (int (*)(void)) asmRoutineData;
>
> int ret = asmRoutine();
>
> // zwraca 65538
>
> moze nawet sse by dzialalo i nie musialbym sie babac z
> linkerem
>
>
sse mi nie dziala :(
mialem np taka funkcje testowa
_asm_add_float4_vectors_by_sse:; Function begin
enter 0, 0 ; 0061 _ C8, 0000, 00
mov eax, dword [ebp+8H] ; 0065 _ 8B. 45, 08
mov ebx, dword [ebp+0CH] ; 0068 _ 8B. 5D, 0C
mov ecx, dword [ebp+10H] ; 006B _ 8B. 4D, 10
movups xmm0, oword [eax] ; 006E _ 0F 10. 00
movups xmm1, oword [ebx] ; 0071 _ 0F 10. 0B
addps xmm0, xmm1 ; 0074 _ 0F 58. C1
movups oword [ecx], xmm0 ; 0077 _ 0F 11. 01
leave ; 007A _ C9
ret ; 007B _ C3
ktora linkowana zawnetrznie jako
extern "C" int __cdecl asm_add_float4vectors_sse(float4* a, float4* b,
float4* ret);
o ile pamietam dzialala (niestety nie pamietam dokladniej
co tam grzebalem dwa czy trzy miesiace temu a notatki jakos
mi jakby czesciowo wcielo
teraz
char asm_add_float4_vectors_by_sseData[] =
{
0xC8, 0x00, 0x00, 0x00,
0x8B, 0x45, 0x08,
0x8B, 0x5D, 0x0C,
0x8B, 0x4D, 0x10,
0x0F, 0x10, 0x00,
// 0xC9,
// 0xC3, //dotad dziala
0x0F, 0x10, 0x0B,
// 0xC9,
// 0xC3, //tu juz wywala
0x0F, 0x58, 0xC1,
0x0F, 0x11, 0x01,
0xC9, // leave
0xC3 // ret
};
cdecl void (*asmAddSSE)(float4*, float4*, float4*) = (cdecl void (*)
(float4*, float4*, float4*)) asm_add_float4_vectors_by_sseData;
static float4 a = {1,2,1,0};
static float4 b = {1,2,3,0};
static float4 c = {1,1,0,0};
asmAddSSE(&a,&b,&c);
wywala sie jakby na drugiej (nie pierwszej) linijce w sse
- nie wiem czy nie pochrzanione jest tu cos z przekazywaniem
argumentow (m.in. kompilator lyka slowo cdecl a powinno byc chyba
__cdecl a przy tym jest blad kompilacji)
nie mam glowy teraz sie w to wglebic - moze ktos kojarzy co
moze byc przyczyna bledu???
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 23.01.12 22:21
- 23.01.12 22:33 Bronek Kozicki
- 24.01.12 09:06
- 24.01.12 09:55
- 27.01.12 23:46 M.M.
- 29.01.12 08:03 Kicer
- 01.02.12 15:30 Wiktor S.
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-16 W telefonie brak szufladki na drugą kartę SIM
- 2024-12-16 Szukam monitora HDMI ok. 4"
- 2024-12-16 Poznań => Key Account Manager <=
- 2024-12-16 Akwarium w aucie
- 2024-12-16 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2024-12-16 Warszawa => Expert Recruiter 360 <=
- 2024-12-16 Gdańsk => System Architect (background deweloperski w Java) <=
- 2024-12-16 Warszawa => Key Account Manager <=
- 2024-12-16 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-16 Białystok => Analityk w dziale Trade Development (doświadczenie z Po
- 2024-12-16 Warszawa => Programista Microsoft Dynamics 365 Business Central <=
- 2024-12-16 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2024-12-16 Szczecin => Key Account Manager (ERP) <=
- 2024-12-16 Lublin => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-12-16 Gdańsk => Specjalista ds. Sprzedaży <=