Wszystko
Wszystkie
Archiwum
15
Esencja wiedzy o Asemblerze x64 w błękitnej szklanej fiolce
- 1
- #
- #
- #
- #
- #
- #
- 5
- 0
@sosnnaa: sorry że tak późno odpisuję. Widzę tu dwa błędy:
- nie wszystkie rejestry, z których korzystasz zapisujesz w prologu funkcji. Musisz to robić inaczej funkcje, które wywołują radixsort nie będą działać poprawnie
- array + leftoneindex - to jest ok w C. Natomiast w asm 'add edx, esi' zadziałałoby dla tablic charów, a tym przypadku masz tablicę intów więc musisz to robić raczej w stylu edx +
- nie wszystkie rejestry, z których korzystasz zapisujesz w prologu funkcji. Musisz to robić inaczej funkcje, które wywołują radixsort nie będą działać poprawnie
- array + leftoneindex - to jest ok w C. Natomiast w asm 'add edx, esi' zadziałałoby dla tablic charów, a tym przypadku masz tablicę intów więc musisz to robić raczej w stylu edx +
Mam pytanie dot. RDTSC.
CPUID // wmusza zakończenie poprzednich (serializuje)
RDTSC // odczytuje liczbe cykli
różnice mogą być z takich powodów:
jesteś nie sam więc dolicz czas przełączania kontekstu
możesz odczytywać z różnych pamięci (wolny DRAM i szybki SRAM)
ale że moja odpowiedź jest troszkę "z dupy" bo nie jestem pewien tego co piszę a jedynie przypuszczam. prosił bym zawołać jak ktoś ogarnięty odpowie. lub co było by fajniejsze, może na stacku zapytaj też