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 21:11 | IT novinky

    Na dnešní akci Made by Google 2025 (YouTube) byly představeny telefony Pixel 10 s novým čipem Google Tensor G5 a novými AI funkcemi, hodinky Pixel Watch 4 a sluchátka Pixel Buds 2a.

    Ladislav Hagara | Komentářů: 2
    včera 14:11 | Nová verze

    The Document Foundation oznámila vydání nové major verze 25.8 svobodného kancelářského balíku LibreOffice. Podrobný přehled nových vlastností i s náhledy v poznámkách k vydání (cs) a také na Youtube a PeerTube.

    Ladislav Hagara | Komentářů: 3
    včera 04:00 | Nová verze

    Zeek (Wikipedie), původně Bro, byl vydán v nové major verzi 8.0.0. Jedná se o open source platformu pro analýzu síťového provozu. Vyzkoušet lze online.

    Ladislav Hagara | Komentářů: 0
    19.8. 23:55 | Zajímavý software

    Emacs na stříhání videa? Klidně.

    Ladislav Hagara | Komentářů: 7
    19.8. 15:55 | Nová verze

    Byl vydán Mozilla Firefox 142.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 142 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    19.8. 13:22 | Zajímavý článek

    Python Developers Survey 2024, výsledky průzkumu mezi vývojáři v Pythonu organizovaném Python Software Foundation ve spolupráci se společností JetBrains v říjnu a listopadu loňského roku. Zúčastnilo se 30 tisíc vývojářů z 200 zemí. Linux používá 59 % z nich.

    Ladislav Hagara | Komentářů: 0
    19.8. 04:00 | Zajímavý článek

    Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.08.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.

    Ladislav Hagara | Komentářů: 2
    19.8. 01:55 | Nová verze

    Byla vydána nová verze 2.51.0 distribuovaného systému správy verzí Git. Přispělo 91 vývojářů, z toho 21 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 2
    19.8. 01:33 | Zajímavý článek

    Po roce bylo vydáno nové číslo magazínu Phrack: Phrack 72.

    Ladislav Hagara | Komentářů: 4
    18.8. 19:33 | Pozvánky

    OpenSSL Corporation zve na den otevřených dveří ve středu 20. srpna v Brně a konferenci OpenSSL od 7. do 9. října v Praze.

    Ladislav Hagara | Komentářů: 6
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (79%)
     (11%)
     (7%)
     (0%)
     (4%)
     (0%)
    Celkem 28 hlasů
     Komentářů: 5, poslední dnes 07:29
    Rozcestník

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

    16.2.2022 18:39 | Přečteno: 1704× | 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.