Sto scrivendo un’applicazione multithread in c ++, dove le prestazioni sono critiche. Ho bisogno di usare un sacco di blocchi durante la copia di piccole strutture tra i thread, per questo ho scelto di usare gli spinlock. Ho fatto alcune ricerche e test di velocità su questo e ho scoperto che la maggior parte delle […]
Solo curioso. Questa ovviamente non è una buona soluzione per la programmazione vera e propria, ma dire che volevo creare un eseguibile in Bless (un editor esadecimale). La mia architettura è x86. Cos’è un programma molto semplice che posso fare? Un mondo ciao? Un ciclo infinito? Simile a questa domanda, ma in Linux.
Voglio ottenere il valore corrente del registro EIP con linguaggio assembly. È ansible?
Recentemente ho usato molto linguaggio Assembly in sistemi operativi * NIX. Mi stavo chiedendo il dominio di Windows. Convenzione di chiamata in linux: mov $SYS_Call_NUM, %eax mov $param1 , %ebx mov $param2 , %ecx int $0x80 Questo è tutto. È così che dovremmo fare una chiamata di sistema in linux. Riferimento di tutte le chiamate […]
0x0000000000400448 : push %rbp 0x0000000000400449 : mov %rsp,%rbp 0x000000000040044c : mov $0x6,%eax 0x0000000000400451 : leaveq 0x0000000000400452 : retq Provai: breaki 0x0000000000400448 ma sembra che non ci sia un simile comando. Gdb ha una funzione del genere?
Mentalmente, mi sono sempre chiesto come provare / lanciare / catturare guarda dietro le quinte, quando la compilazione del C ++ lo traduce in assemblatore. Ma dal momento che non l’ho mai usato, non sono mai riuscito a verificarlo (alcune persone direbbero pigre). La pila normale è usata per tenere traccia dei try s, o […]
Mi è stato detto di usare un disassemblatore. gcc ha qualcosa di integrato? Qual è il modo più semplice per farlo?
Come mostra questa domanda , con g ++, posso fare g++ -S -masm=intel test.cpp . Inoltre, con clang, posso fare clang++ -S test.cpp , ma -masm=intel non è supportato da clang ( warning argument unused during compilation: -masm=intel ). Come posso ottenere la syntax Intel con clang?
Sono nuovo alla programmazione .NET C #. Sto seguendo alcuni libri. Si dice che invece di compilarlo direttamente al codice binario (codice nativo). Il codice di alto livello viene convertito in linguaggio intermedio (chiamato MSIL aka CIL). Ma quando compilo, ottengo un file exe / dll. Questo MSIL / CIL contiene questo file exe / […]
Ho deciso di imparare il linguaggio dell’Assemblea. La ragione principale per farlo è essere in grado di capire il codice smontato e magari essere in grado di scrivere parti di codice più efficienti (ad esempio, attraverso c ++), fare cose come code caves, ecc. Ho visto che ci sono un migliaio di differenti sapori di […]