Exercise 1: Register Assignment for Three Arguments, Both Conventions — Possible Solution ==================================================================== GIVEN ------------------------------ A function call with three integer arguments: 100, 200, 300 (in that order). SYSTEM V AMD64 ABI (LINUX/MACOS) ------------------------------ Per this chapter's own register order (RDI, RSI, RDX, RCX, R8, R9): 1st argument (100) -> RDI 2nd argument (200) -> RSI 3rd argument (300) -> RDX MICROSOFT X64 (WINDOWS) ------------------------------ Per this chapter's own register order (RCX, RDX, R8, R9): 1st argument (100) -> RCX 2nd argument (200) -> RDX 3rd argument (300) -> R8 WHY THIS WORKS AS AN ANSWER ------------------------------ It applies each convention's own register ORDER exactly as given in the chapter's own table, correctly assigning the three arguments to the first three registers in each list — and correctly shows that the two conventions assign the SAME argument values to DIFFERENT registers (for instance, the 2nd argument lands in RSI under System V but RDX under Microsoft x64), which is the whole point of the distinction this chapter draws.