V programovani je nejvetsi problem rozhrani mezi zidli a klavesnici. A z pohledu bezpecnosti vas v assembleru prave nic moc nekontroluje.. a vlastne ani ten vstup se moc neresi - co tomu podstrcite, to to udela. To nemusi byt byt u kratkych specifickych rutin problem, ale cely kernel byste v tom psat nechtel ;-)
Srandicky, srandicky.... :-) Az vam nepujde najit spojeni, tak si na ne vzpomente.
Paradoxně v asm těch chyb člověk moc neudělá. Prostor pro chyby je minimální - sebemenší překlep nebo použití jiného registru/instrukce vyprodukuje přinejhorším špatný výsledek (SIMD) nebo crash (scalar kód). Odhalí to i úplně minimální testovací korpus. Takže základ je mít testy, nejlépe hodně hodně testů...
Já nedávno dělal na projektu, kde bylo asi 20k řádků AVX-512 kódu přímo v asm. Jeden z důvodů bylo použití speciální calling convention pro subrutiny, které ten AVX-512 kód volal (parametry v ZMM registrech, atd...) , což nebylo možné udělat v C++. A výsledek? Většina chyb byla v high-level kódu kolem toho. Pak se přešlo na JIT kompilaci pro některé části, a to bylo zase o něco zajímavější :)
Predevsim se tak dostavas k esenci programovani. Mas HW, mas nejaky jeho schopnosti a moznosti, a presne ty vyuzivas. Resis ciste algoritmus, a ne freekulinsky nesmysly.
To bys ale videl, kolik "programatoru" s tim ma naprosto neresitelny problem.
BTW: Pro hracicky, Stationeers - ma to virtualni CPU (ve hre se to jmenuje IC) a asm, defaultne je kod omezen na 128 radku (nikoli instrukci, pocitaji se i prazdne). A da se do toho napsat hromada veci. Existuje pro to i webovy emulator. https://stationeering.com/tools/ic
Tak ona to taky spousta programátoru třeba vůbec nechce dělat, protože je prostě baví něco jiného. Myslíte, že se třeba ten ošklivý frikulínský frontend v nesmyslných jazycích běžící na nesmyslných platformách s nesmyslnými nároky vytvoří sám? Ne, nevytvoří. A že to fakt není velmi často není jen klikačka "po zmáčknutí tlačítka zavolej tohle REST API" jak si kdejaký snob a monkey-manager myslí.
A mě to třeba baví. Takže ano, měl bych s tím neřešitelný problém: bylo by to něco, co mě nebaví a dělat to nechci. Nic jako "esence programování" neexistuje. Vždycky máte nějaké prostředí, které má nějaké možnosti a nějaká omezení.