@klamkaodokna: Nie da się. Normalnie w x32dbg możesz porównywać do liczby, która ma rozmiar taki sam jak pointer, czyli w tym przepadku do 32 bitów, rejestry STx mają 80 bitów.

To co możesz zrobić to napisać prosty plugin, który udostępni funkcję do porównywania do użycia w "break condition", na przykład stcmp(5, "0")
@marcus777: próbowałeś -Oz i -fwhole-program? Optimizer ma duże większe pole do popisu, jeśli widzi wszystko. Oczywiście jak masz jeden plik .c w projekcie to nie ma to sensu

Jak twój kompilator nie ogarnia -fwhole-program to zawsze możesz dać wszystkie funkcje w jeden plik, tylko trzeba pamiętać o tym, żeby funkcje były static przez co kompilator nie musi zakładać, że funkcja musi powstać i może ją np. zinlinować
  • 0
@assninja: Tak, zamierzam odpalić w tym dosa i w nim silnik JSa. Ogólnie pisanie kompilatora C w JSie nie jest wcale takie głupie - pisanie backendu do takiego kompilatora pod jakąś magiczną architekturę jest o niebo prostsze niż rzeźbienie z LLVM. Ofc kosztem jakości wygenerowanego kodu.
@Canova: Może poszukaj w sieci pod kątem materiałów z zajęć dla studentów z programowania w asemblerze, programowania niskopoziomowego lub jak zwał.

Przykład: https://ww2.ii.uj.edu.pl/~kapela/pn/print-lecture-and-sources.php

Zależy też jeszcze, w jakim kontekście szukasz informacji. Jeśli po prostu materiałów typu dokumentacja to jak napisał przedmówca, jeśli chcesz nauczyć się programowania w asemblerze to te materiały albo książki na ten temat. Jeśli po prostu jesteś ciekaw "jak to działa" to powyższe, plus ewentualnie filmy na YouTube,
@groman43 Nie wiem jak to sie stało, przepraszam za usunięcie wpisu. Jak najbardziej dokumentacja Intela do dobry pomysł, dziękuje.
@mp107: również dzięki za info, zainteresowanie jest stąd że mam kilka ctfów z RE do zrobienia i jest to dla mnie temat kompletnie nowy.
Ale czym dokładnie jest to rl2


@PlytaGnojowa: RL2 to młodsza część (8 bitów) rejestru R2 (16 bitów). Rdzeń procesora ma 16 rejestrów 16-bitowych - R0...15. Na tych rejestrach możesz wykonywać operacje arytmentyczne, logiczne itp.

Rodział: B.1.1 Word Registers
https://www.keil.com/dd/docs/datashts/infineon/sab166_um.pdf

Oraz czy w zapisie jnb r2.0 do porównania brany jest bit 0 z rejestru r2? Dobrze to rozumiem?


Według mnie tak.
Assembler x86(-64) Tutorial cz. 2 - Rejestry Procesora -> https://techniczniej.pl/post/assembler-x86-64-tutorial-cz-2-rejestry-procesora

Rejestry ogólnego i specjlanego przeznaczenia + Darmowy fragment książki!
Po przeczytaniu dowiesz się:
- Czym są rejestry ogólnego przeznaczenia w assemblerze
- Jakie przeznaczenie mają poszczególne rejestry
- Czym są rejestry segmentowe
- Czym jest rejestr flag i czemu on służy

#programowanie #programista15k #naukaprogramowania #assembler #informatyka #it
techniczniej - Assembler x86(-64) Tutorial cz. 2 - Rejestry Procesora -> https://tech...

źródło: comment_1656972173O0quNlUofHw77X5eKG1pUe.jpg

Pobierz
@Bleck: użytkownik podaje wartość n, maksymalnie 20 i wtedy powstaje kwadrat o boku n z takimi właśnie przekątnymi do połowy jak np na tych dwóch zad po lewo. Tzn jak mądrze? Bo ja mam oprócz tych dwóch jeszcze kilka i zamysł był taki żeby tylko przerabiać ten kod żeby wychodziły podobne do tych dwóch zadań
Każdy 64-bitowy procesor posiada rejestry 64-bitowe, które dzielą się na 32-bitowe, te na 16-bitowe, a te na 8-bitowe.


@techniczniej: Nie każdy. Rejestry ARM64 dzielą się co najwyżej na 32-bitowe. I pewnie inne architektury niż x86-64 mają jeszcze inaczej.

Kompilator, z którego będziemy korzystać to NASM.


Nie kompilator, a asembler. Wiadomo, że są to rzeczy dość podobne pojęciowo,
szczególnie jeśli chcemy uprościć tekst, ale może wypadałoby zaznaczyć jaka
jest różnica?

Ogólnie, artykuł