_vid7
Joined 6 years ago
Joined 6 years ago
1. https://www.amazon.com/Low-Level-Programming-Assembly-Execut...
2. http://www.egr.unlv.edu/~ed/assembly64.pdf
3. https://www.amazon.com/Introduction-Bit-Assembly-Programming...
The first one is somewhat written in "weird English" (Russian English?), but it is still readable. It really helped me with x64 assembly as a C programmer. I have used 2 and 3 as reference most of the time and the first was basically my "main x64 assembly book". I would also recommend getting more proficient in C programming either by studying books such as "Expert C" and the "The C Programming Language" or reading "advanced" stuff somewhere on the Internet, e.g.: http://www.pvv.org/~oma/DeepC_slides_oct2011.pdf
The main takeaway in all this for me was learning about the call stack and the different calling conventions which gives you a clue on how recursion works under the hood.
Also when you are done learning about "practical computer architecture", i.e. assembly language programming, learn stuff about operating systems as well:
http://pages.cs.wisc.edu/~remzi/OSTEP/
Fun fact: this is not really related to assembly programming, but functions such as setjmp() and longjmp() are used for implementing exception handling.
Our modern diets could cause further nutritional deficiencies. I doubt that many people in the West eat fish regularly or supplement with algae oil due to the conveniences of processed food. Same with iodine. Wheat germs have the highest concentrations in vitamin B1, but whole grains in general (rolled oats etc.) are good so you should probably cut the processed food out as much as possible.