4/2/2011 7:35 PM | |
Posts: 8946 Rating: (999) |
Your loop (abc2) will only run 1 time? |
4/3/2011 12:46 AM | |
Joined: 10/7/2005 Last visit: 9/24/2024 Posts: 3022 Rating: (1054)
|
Hello nbk the links below contain additional good reference information and examples (in English) and are certainly worth checking out in your venture in the weird and wonderful Adress Register related indirect addressing world. Step 7 Indirect addressing FAQ & Examples collection Programming a Loop with Indirect Addressing Averaging via ANY pointer Pointer transfer to a function I hope this helps |
Cheers |
|
4/4/2011 12:10 AM | |
Joined: 10/7/2005 Last visit: 9/24/2024 Posts: 3022 Rating: (1054)
|
That is correct dear nbk the thing to be aware of when dealing with Pointers in Step 7 is that a Pointer value is always a reference to a Bit address (it always has the Bit number (range 0->7dec or 000->111 binary) in lowest three bits of the pointer value). In your above example you want to use Byte 9, the "SLW 3" simply multiplies a value of 9 with 8 (8 Bits per Byte). Note that you should however use "SLD 3" instead of "SLW 3" as you otherwise limit yourself to a maximum Byte address of 4095.0. Other ways to achieve the same as in your example (e.g. "convert"Byteaddress 9 into a pointer format) are: L P#9.0 // Address 9.0 T MD 32 OR (rather cumbersome) L9 // Byte address L 8 // 8 bits per Byte *D T MD 32 Last but not least, you will find examples/code where a SLD 4 or even SLD 5 is done too. Again, this is pure mathematics (multiplication) to "convert" an Integer based index value into a bit address based pointer value (e.g. if dealing with INT's you may do a SLD 4 to create the Pointer as one INT has 16 bits, if dealing with REAL's you may do a SLD5 to create the Pointer as one REALhas32 bits etc.) I hope this helps |
Cheers |
|
4/5/2011 12:28 PM | |
Posts: 8946 Rating: (999) |
You are welcome! |
Follow us on