abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 22:33 | Nová verze

    Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.

    Ladislav Hagara | Komentářů: 0
    včera 17:44 | Zajímavý článek

    Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.

    karkar | Komentářů: 0
    včera 12:11 | Humor

    Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).

    Ladislav Hagara | Komentářů: 4
    včera 10:44 | IT novinky

    Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.

    Ladislav Hagara | Komentářů: 27
    včera 09:55 | IT novinky

    Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.

    Ladislav Hagara | Komentářů: 4
    včera 09:33 | IT novinky

    Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.

    Ladislav Hagara | Komentářů: 0
    včera 08:11 | Nová verze

    Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    29.4. 20:55 | Nová verze

    Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.

    Ladislav Hagara | Komentářů: 0
    29.4. 16:22 | Nová verze

    Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    29.4. 15:55 | Pozvánky

    Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 2
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (9%)
     (21%)
     (4%)
     (1%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 497 hlasů
     Komentářů: 19, poslední včera 11:32
    Rozcestník

    Najmenšia binárka „Hello world“ v C

    16.2.2022 18:39 | Přečteno: 1637× | analýza | poslední úprava: 17.2.2022 10:46

    Toto je vylepšenie iného blogu „Velmi malý "hello world" bez standardní knihovny“ od autora Bluebear.

    tinyhello.c

    #include <stdint.h>
     
    inline int sys_write(int fd, char const* text, uint32_t length) {
        uint64_t retval;
        asm volatile (
     
            /* SYSCALL instruction invokes the kernel */
            "syscall"
     
            /* return value will be read from rax */
            : "=rax"(retval)
     
            /* where the input arguments should be placed */
            :   "a"(1),   /* eax = syscall number */
                "D"(fd),            /* argument 1 (fd) goes to rdi/edi */
                "S"(text),          /* argument 2 (text) goes to rsi/esi */
                "d"(length)         /* argument 3 (length) goes to rdx/edx */
     
            /* registers that may contain garbage after the call - for syscalls, they are rcx, r11 */
            : "rcx", "r11"
        );
        return retval;
    }
     
    inline void sys_exit() {
        asm volatile (
            "syscall"
            :
            : "a"(60), "D"(0)
            : "rcx", "r11"
        );
    }
    
     
    void _start() {
        sys_write(1, "Hello world!\n", 13);
        sys_exit();
    }
    

    Makefile

    all:
    	gcc tinyhello.c -o tinyhello --static -nostdlib -Ttinyhello.lnk -Ofast -nostartfiles -nodefaultlibs -s -fsyntax-only
    
    size:
    	du -b tinyhello | awk '{print $$1}'
    

    tinyhello.lnk

    Bez žiadnej zmeny – takže kopia od pôvodného autora.

    OUTPUT_FORMAT(elf64-x86-64)
    ENTRY(_start)
    
    SECTIONS
    {
        . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS;
        .text : {
            *(.text);
            *(.rodata*);
        }
    
        /DISCARD/ : {
            *(*);
        }
    }
    

    Výsledok

    PrekladVýsledok
    Bluebear kód a preklad864 B
    S mojimi úpravami/prekladom496 B
    Ušetrené:368 B (42,59 %)
           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Gréta avatar 16.2.2022 22:27 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Najmenšia binárka „Hello world“ v C

    nóóóó a kolik ztoho je jakoby samotnej ten helloworld string?? :O :D

    16.2.2022 23:41 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: Najmenšia binárka „Hello world“ v C
    readelf -a PATH_BIN_FILE
    debian.plus@protonmail.com
    xvasek avatar 17.2.2022 10:40 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Najmenšia binárka „Hello world“ v C
    Pořád dlouhé, v Perlu je to kratší. :-)

    Dělám si srandu, zajímavé. Dělal jsem program pro Windows, který zobrazil okýnko (jakože Windows), v něm hlášku z parametru příkazové řádky ("Načti kartu zaměstnance" nebo tak něco), počkal a načetl nějaké byty ze sériového portu a uložil je do souboru. Začal jsem Perl/TK - musí se samozřejmě přibalit runtime, takže to mělo asi 8MB a startovalo to asi sekundu - runtime se rozbaluje. Pak jsem to dělal ještě v něčem dalším, ještě v něčem a skončil jsem u prašivého C z minGW a té standardní Windows knihovny - což mělo tuším 150kB a bylo to samozřejmě bleskové. Takže i úplně high-level frontend programátorovi se může Cčko občas hodit.
    18.2.2022 12:41 Radovan
    Rozbalit Rozbalit vše Re: Najmenšia binárka „Hello world“ v C
    ECHO ?"Hello World!" | GWBASIC.EXE :-D

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.