In a later part of the course (where we discuss recursion), I will show you how linked list are manipulated by the computer in more detail.
I will use the following list structure in my examples:
+-------------+ | value | <--- contains an integer value +-------------+ | next | <--- contains a reference to the next list element +-------------+
I also assume that a linked list has already been set up
I will discuss how to manipulate list later, here, all I want to achieve is to show you how the indirect addressing mode is used to access list elements
The following is a list variable and it's definition in assembler:
High level language Assembler language =================== ================== List head; head: ds.l 1
High level language Assembler language =================== ================== int ans; answer = head.value; movea.l head, a0 move.l (a0), ans
High level language Assembler language =================== ================== int ans; answer = head.next.value; movea.l head, a0 movea.l 4(a0), a0 move.l (a0), ans
High level language Assembler language =================== ================== int ans; answer = head.next.next.value; movea.l head, a0 movea.l 4(a0), a0 movea.l 4(a0), a0 move.l (a0), ans