[搬运]-[the old new thing] aarch64/arm64 指令集介绍

493 阅读1分钟

来自微软的大佬写的aarch64指令集系列介绍,可以对该指令集有一个直观的认知

  1. part 1: Introduction :Make it a double
  2. part 2: Extended register operations :The weird ways of transforming the value in a register.
  3. part 3: Addressing modes : The ways of accessing memory.
  4. part 4: Addition and subtraction :Starting with the basic arithmetic.
  5. part 5: Multiplication and division :Arithmetic gets harder.
  6. part 6: Bitwise operations :And their very strange immediates.
  7. part 7: Bitfield manipulation :Peeking inside the words.
  8. part 8: Bit shifting and rotation :Sliding around.
  9. part 9: Sign and zero extension :Nothing new here, but old things being used in clever ways.
  10. part 10: Loading constants :Getting them into a register.
  11. part 11: Loading addresses :Finding a needle in the haystack of the 64-bit address space.
  12. part 12: Memory access and alignment :The load and store part of the load/store architecture.
  13. part 13: Atomic access :Don't let someone else get a word in edgewise.
  14. part 14: Barriers :Keeping things in the right order.
  15. part 15: Control transfer :We're going places.
  16. part 16: Conditional execution :Making decisions.
  17. part 17: Manipulating flags :Trying to twiddle the knobs directly.
  18. part 18: Return address protection :Making it even harder to smash the return address.
  19. part 19: Miscellaneous instructions :Sweeping up the crumbs.
  20. part 20: The classic calling convention :How parameters are passed.
  21. part 21: Classic function prologues and epilogues :Implementing the ABI.
  22. part 22: Other kinds of classic prologues and epilogues :Taking shortcuts, or maybe adding steps.
  23. part 23: Common patterns :Learning to recognize various code generation patterns.
  24. part 24: Code walkthrough :Putting theory into practice.
  25. part 25: The ARM64EC ABI :Aligning with the x86-64 calling convention.