<bgdev />free

| |  


#assembler 2023 9may ai algorithm alpha amd american api argon2 arm asm asmbb assembler attachment awareness balgaria bay888 bcrypt bender beta bgdev-next bgdev-next.👍 big.data bitchnigga bitcoin bmw boi borg brexit bug bulgaria business c cad chat cloud computer-names console crossorigin deprivation desktop dna dotnet email eupl falling feature forum foundation fp fresh fun game gcc github goats google gpl gpt gpt.3.5 gypsies happiness harvard hash improvement include investment it java javascript js kleta kleta.maqka.balg lambi language learning leftovers legend level levenshtein.dist libx license linkedlist linux m0 ma mcafee mele microsoft minimag minimalism negro net nginx nigga not.a.bug oop paradigm parler patterns perception persuasion pipe play.station politics populi pornhub pow pro programming protonmail python reba rust sci-fi scripting seks seo server shell sleep smartbeauty soft-skills sqlite srabska sse starship sugerface syntax tablet tailwindcss telegram theme thug troll80lvl tutanota typescript uacme ui uk unix untermensch upload uptime usa utilities ux vb via viber virtual.reality vox vps vulnerable war wasm weapons-grade web windows word x86 xbox xss youtube zig ziglang Übermensch БОКЕБЪЛГАРИН БЪ БЪлгария Белезниците Били Били.Белезниците БялДонор Веган Виста Възраждане ГЛУПАК Гана Глиста ЕС Казарма Копейкин Мода.и.овча.мисъ НЕКАДЪРНИК НРБ ПО-ЗЛЕ.И.ОТ.РАБИ Подкасти Разни Румен СИК СКУМ СетенЧук Скум ТИР Туче Украйна Урсула Яначков авангард аз айфонджия алгоритми амбиции анархизъм антиваксъри армения аудио аутисти бази.данни бакъп без без.пръчове безпросвета бенчмарк биготи биомаса бира боклук борисов ботев брадва булшит бъг бъгове бял ваксина вандал век венерика викинги вицове вишу война вървежен гана ганорник гей гейщина германия герои гешев глупак говеда групировка гюбек данъкоплатец двойни.стандарти дедотия демокрация дизайн дисциплина добитък докери долар донори држава дришльо дрон ебане еврогейски.съюз езици експеримент електроника електроника.s2 емиграция ендпойнт енум ерген ергономия жалкар задача затоплизъм защита здраве златен злато игри идеали идиократ идиократи идиокрация идиот избори избори.рабин изкуство икономика имбецили имейл инвестиране инокулация инструмента интервю ипад искам.да.си.реда казах камшикодържач капитализъм карабах караница картечница кино клавиатура ковид19 колайдер колям.кур комари комплексар комунизъм консолидация конспирации космонавтика кофа кофит-19 краставица криптовалути курви кучелюбци лайно лаладжия лаптоп либерастия литература лоши.практики луд лъжеучени лъжец любов майни майтапи малоумници мафия мениджмънт месо местене метавселена метафизика механика мистика мисъл мода мода.овча.мисъл модерация морал мутра мутри наука национализъм не.it негър некадърник некадърници неон нидерландия овча овчи олигофрени организация офтопик парички партия педал педераси пенджури пенсия пишока плюскане победа погромист поезия политика порно посредствен почивка празници прасе превод предалщина програмиране проект проста простотии против.правилата проф пръч пръч.дришльо пръчка психика психични.болести психология пустиняк путин путката путьо рабин рабин.е.шибан.пе работа радост разврат разни разработка расизъм резерват рейтинг реклама рекламен религия рест ризи ропче ропчета русия руски.език рутина самоковска сасипаха секира село селяндур сериали сериозно.програм сетен сеянин симулация скопяване скръм слушалки сортиране софия софтуер софтуни социализъм спектрометър спринтове сране стандарти стил стуйо стюи сушилня сцена съвет съм сън сървър сърничка таб ташаци телевизия тема територията терминология термояд технологии титли традиция тролинг тръмп туба туче тъпак тъпанари тъпня уиндоус украйна умнокрасивци фалит фантастика фашизъм фейк.акаунти физика филми форум форумни.проекти футбол хазарт хамали харабия хардуер хахаха хомофобия хостинг храна хумор цайко цайси целофан цензура цензурра циганин чалга чалгар чекии чернокраки честота чипове чнг чужбина чук шпация щайга юан яката яко ям 🔨 😂 🪓


Претърсване на дърво с 12 инструкции и само един регистър.

  


  johnfound  Създадено на 07.01.2022, видяно: 695 пъти. #55517

Задачата е по дадено листо от дървото, да се намери следващото листо. Ако няма следващо, зарежда първото, тоест върти в кръг. Ако дървото има само един елемент, връща него.

Структурата на дървото е в двойно свързан списък със следене на началото и на края:

struct TObject
  .__parent dd ?       ; родителски елемент
  .__first_child dd ?  ; начало на списъка с дъщерни елементи
  .__last_child  dd ?  ; край на списъка с дъщерни елементи

  .__next   dd ?       ; следващ елемент
  .__prev   dd ?       ; предишен елемент
ends

Измислих супер код от 12 инструкции с използването само на един регистър:

; EAX == начален елемент

.next:
        cmp     [eax+TObject.__next], 0
        cmovne  eax, [eax+TObject.__next]
        jne     .down_to_leaf

        cmp     [eax+TObject.__parent], 0
        cmovne  eax, [eax+TObject.__parent]
        jne     .next

.back_to_first:
        cmp     [eax+TObject.__prev], 0
        cmovne  eax, [eax+TObject.__prev]
        jne     .back_to_first

.down_to_leaf:
        cmp     [eax+TObject.__first_child], 0
        cmovne  eax, [eax+TObject.__first_child]
        jne     .down_to_leaf

; EAX == следващ елемент.


  Rabin  Създадено на 07.01.2022, видяно: 692 пъти. #55518

Време е да се засватите с оня Учителя, Теодоси Теодосиев. Единия побърква децата от задачи по физика, от 9 сабалем до 12 нощта. Тизе решаваш проблеми от времето на феритните памети.

Микс между вашите науки ще роди хибрид м/у въшка и светулка. Да се пощим у тъмното без да хабим свещи.



  johnfound  Създадено на 07.01.2022, видяно: 687 пъти. #55521
Rabin

Време е да се засватите с оня Учителя, Теодоси Теодосиев. Единия побърква децата от задачи по физика, от 9 сабалем до 12 нощта. Тизе решаваш проблеми от времето на феритните памети.

Микс между вашите науки ще роди хибрид м/у въшка и светулка. Да се пощим у тъмното без да хабим свещи.

Я ни покажи как се прави на Java.



  Rabin  Създадено на 07.01.2022, видяно: 685 пъти. #55525
johnfound
Rabin

Време е да се засватите с оня Учителя, Теодоси Теодосиев. Единия побърква децата от задачи по физика, от 9 сабалем до 12 нощта. Тизе решаваш проблеми от времето на феритните памети.

Микс между вашите науки ще роди хибрид м/у въшка и светулка. Да се пощим у тъмното без да хабим свещи.

Я ни покажи как се прави на Java.

Жаварите не се занимаваме с такива неща, имаме по-смислени занимания, примерно да ти направим банковата транзакция, или застраховането. Всичко туй дето те мъчи няма сми дори за embedded, в момента orange pi zero е нещо като 7 $, има повече мощ от виртуалката ти.



  johnfound  Създадено на 07.01.2022, видяно: 679 пъти. #55527
Rabin

Жаварите не се занимаваме с такива неща, имаме по-смислени занимания

Проблема не е в това дали се занимавате или не. Проблемът е в това, че даже игла с ваксина да ви опрат, пак няма да можете да го направите. :-P



  Rabin  Създадено на 07.01.2022, видяно: 674 пъти. #55533
johnfound
Rabin

Жаварите не се занимаваме с такива неща, имаме по-смислени занимания

Проблема не е в това дали се занимавате или не. Проблемът е в това, че даже игла с ваксина да ви опрат, пак няма да можете да го направите. :-P

И инокулат да ми опрат - не мога да свира на хармоника, говоря през стомаха си, и правя шпагат.

Няма сми от твойте задачки. Като почнат да ме занимават с такива по интервюта почвам да се правя на улав и се махам по най-бързия начин. Инак ако ме вземат после няма да можем да се гледаме.



  BIGBUGEX  Последно редактирано на 07.01.2022 от BIGBUGEX, видяно: 672 пъти. #55534

__last_child не е ли излишно в случая? В смисъл __last_child == __first_child -> __prev. Без него се получават точно 4 двойни думи за логистика. По-добро подравняване.



  johnfound  Последно редактирано на 07.01.2022 от johnfound, видяно: 653 пъти. #55541
BIGBUGEX

last_child не е ли излишно в случая? В смисъл last_child == first_child –> prev. Без него се получават точно 4 двойни думи за логистика. По-добро подравняване.

В конкретния случай, да, не се използва и не е нужно това поле. Просто исках да дам цялата структура на дървото.

А иначе, не е излишно за други задачи. Например, ако искаш да търсиш в обратната посока, кода ще е същият, но с разменени .__next с .__prev и .__first_child с .__last_child.

И въобще, тази структура е част от по-голяма, с много други полета, така че размера така или иначе ще е далеч по-голям.

П.П. А, да. Списъка от елементи е двойно свързан списък, но не е цикличен. Тоест, __last_child != __first_child->__prev, а __first_child->__prev == 0 винаги.



Претърсване на дърво с 12 инструкции и само един регистър.

  



AsmBB v3.0 (check-in: 7544654b24928b93); SQLite v3.47.0 (check-in: 03a9703e27c44437);
©2016..2024 John Found; Licensed under EUPL; Powered by Assembly language Created with Fresh IDE