KishoreZE

low-level-c resources

Jul 18th, 2020
443
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. Assembly Control Flow - Teapot
  2. https://en.wikibooks.org/wiki/X86_Assembly/Control_Flow
  3.  
  4. Teapot's Git article on understanding lower level memory representations of C constructs
  5. https://gist.github.com/nicknapoli82/30f1c7b30e7b1561026d88655e5278f7
  6. There's some links within this one as well ^ this is the imp one
  7. https://youtu.be/cNN_tTXABUA
  8.  
  9. How an ALU adds two numbers
  10. https://youtu.be/VBDoT8o4q00
  11.  
  12. How negative numbers are represented in memory (2s complement + how to subtract 2 numbers) - Кинтана
  13. https://www.youtube.com/watch?v=4qH4unVtJkE
  14.  
  15. From Sanath - Relation between assembly and binary
  16. https://softwareengineering.stackexchange.com/questions/227983/how-do-we-go-from-assembly-to-machine-codecode-generation
  17.  
  18. From Teapot - A series that acts as the ultimate compendium on algorithms and walks you through creating a processor and its own instruction set
  19. https://en.m.wikipedia.org/wiki/The_Art_of_Computer_Programming
  20.  
  21. From Sanath - A math heavy book that covers algorithms in detail
  22. https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844
  23.  
  24. A course on building a game from scratch. No game engines nothing. Explains a lot of concepts from function pointers to cache management etc. - Teapot
  25. https://handmadehero.org/
  26. Here's some 1200 hours+ worth videos. Click the YT link to his channel.
  27.  
  28. Here's the specific video on function pointers
  29. https://youtu.be/n4fI4eUTTKM
  30.  
  31. And the one on cache management
  32. https://youtu.be/tk5P7mt2fAw
  33.  
  34. A great series on learning assembly - Кинтана
  35. https://www.youtube.com/watch?v=oO8_2JJV0B4 (the channel also has a lot of other great videos)
  36.  
  37. Reading content for learning assembly - Teapot
  38. In order to stick with something that sticks with general college ways of teaching, and is uniform with the cs50 ide I would recommend this as a good read for assembly.
  39. https://mirrors.sarata.com/non-gnu/pgubook/ProgrammingGroundUp-0-8.pdf
  40.  
  41. https://drive.google.com/file/d/0B_JrB8vu6BIjcF9UV1lLamp4UHc/view?usp=sharing
  42. More mind bending but still worth the read
  43.  
  44. The last one, but by far probably my favorite based on its simplicity and yet breadth of knowledge is this.
  45. http://learning.caitlinmorris.net/sfpc/CharlesPetzold_Code.pdf
  46. Highly recommended.
  47.  
  48. Tip:
  49. Adding the -S flag when compiling with clang generates a readable assembly version of the executable.
  50. Ex: clang <filename.c> -o <output filename> -S
  51. Further. Clang performs optimizations on different levels. You can specify the level of optimization the compiler performs with the following flag: -O<level>
  52. -O0 no optimizations
  53. -O1 optimize favouring space over speed
  54. -O2 optimize favouring speed over space
  55. -O3 optimize favouring speed heavily
  56. -Ofast optimize favouring speed heavily and ignoring certain standards
  57.  
  58. References
  59. Intel's software developer manual for various architectures
  60. https://software.intel.com/content/www/us/en/develop/articles/intel-sdm.html?iid=tech_vt_tech+64-32_manuals
  61.  
  62. Table on processor throughput and latency per instruction per processor architecture
  63. https://gmplib.org/~tege/x86-timing.pdf
Add Comment
Please, Sign In to add comment