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

    Webový prohlížeč Dillo (Wikipedie) byl vydán ve verzi 3.1.0. Po devíti letech od vydání předchozí verze 3.0.5. Doména dillo.org již nepatří vývojářům Dilla.

    Ladislav Hagara | Komentářů: 0
    včera 15:00 | Komunita

    O víkendu probíhá v Bostonu, a také virtuálně, konference LibrePlanet 2024 organizovaná nadací Free Software Foundation (FSF).

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Nová verze

    Nová vývojová verze Wine 9.8 řeší mimo jiné chybu #3689 při instalaci Microsoft Office 97 nahlášenou v roce 2005.

    Ladislav Hagara | Komentářů: 0
    3.5. 13:11 | Nová verze

    Coppwr, tj. GUI nástroj pro nízkoúrovňové ovládání PipeWire, byl vydán v nové verzi 1.6.0. Zdrojové kódy jsou k dispozici na GitHubu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    2.5. 22:33 | Nová verze

    Byla vydána dubnová aktualizace aneb nová verze 1.89 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Vypíchnout lze, že v terminálu lze nově povolit vkládání kopírovaného textu stisknutím středního tlačítka myši. Ve verzi 1.89 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 19
    2.5. 21:22 | Nová verze

    Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-1 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.

    Ladislav Hagara | Komentářů: 2
    2.5. 19:33 | Nová verze

    Byla vydána verze 1.78.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    2.5. 11:22 | Bezpečnostní upozornění

    Služba Dropbox Sign (původně HelloSign) pro elektronické podepisování smluv byla hacknuta.

    Ladislav Hagara | Komentářů: 3
    2.5. 11:00 | Nová verze

    Byla vydána nová major verze 8.0 textového editoru GNU nano (Wikipedie). Podrobný přehled novinek a oprav v oznámení v diskusním listu info-nano nebo v souboru ChangeLog na Savannah. Volbou --modernbindings (-/) lze povolit "moderní" klávesové zkratky: ^C kopírování, ^V vložení, ^Z vrácení zpět, … Tato volba je aktivována také pokud binárka s nano nebo link na ni začíná písmenem "e".

    Ladislav Hagara | Komentářů: 4
    1.5. 23:22 | IT novinky

    Před 60 lety, 1. května 1964, byl představen programovací jazyk BASIC (Beginners' All-purpose Symbolic Instruction Code).

    Ladislav Hagara | Komentářů: 23
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (47%)
     (12%)
     (24%)
     (17%)
    Celkem 58 hlasů
     Komentářů: 8, poslední včera 08:25
    Rozcestník

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

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