Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
Erik Malund
04/10/06 10:01
Read: 692 times
Mt Airy, Nc

#113988 - since you did not have the time to find
Responding to: Jan Waclawek's previous message
since you did not have the time to find it yourself in "the bible" I did it for you

the X appended to MOV. There are two types of instructions, differing in whether they provide an
eight-bit or sixteen-bit indirect address to the external data RAM.
In the first type, the contents of R0 or R1 in the current register bank provide an eight-bit address
multiplexed with data on P0. Eight bits are sufficient for external I/O expansion decoding or for a relatively
small RAM array. For somewhat larger arrays, port pins can be used to output higher-order address bits.
These pins would be controlled by an output instruction preceding the MOVX.
In the second type of MOVX instruction, The Data Pointer generates a sixteen-bit address. P2 outputs the
high-order eight address bits (the contents of DPH) while P0 multiplexes the low-order eight bits (DPL)
with data. The P2 Special Function Register retains its previous contents while the P2 output buffers are
emitting the contents of DPH. This form is faster and more efficient when accessing very large data arrays
(up to 64k bytes), since no additional instructions are needed to set up the output ports.
It is possible in some situations to mix the two MOVX types. A large RAM array with its high-order address
lines driven by P2 can be addressed via the Data Pointer, or with code to output high-order address bits to
P2 followed by a MOVX instruction using R0 or R1.

List of 28 messages in thread
unclarity with movx instruction      Markus Kammersberger      04/10/06 09:32      
   Speed up      Kai Klaas      04/10/06 09:39      
      Mistake      Kai Klaas      04/10/06 09:48      
   Clarity prevails!      Andy Neil      04/10/06 09:48      
      Quicker?      Kai Klaas      04/10/06 09:54      
         Quicker!      Andy Neil      04/10/06 10:11      
            assumption...      Andy Neil      04/10/06 10:19      
            Finally, you are right!      Kai Klaas      04/10/06 10:21      
   MOVX @Ri      Jan Waclawek      04/10/06 09:52      
      since you did not have the time to find      Erik Malund      04/10/06 10:01      
      wrong answer      Erik Malund      04/10/06 10:03      
         Typo      Abhishek Singh      04/10/06 11:03      
         thanks Erik for the correction      Jan Waclawek      04/10/06 14:14      
   It is set to P0      Neil Kurzman      04/10/06 10:01      
      wrong again      Erik Malund      04/10/06 10:04      
         Yes I am      Neil Kurzman      04/10/06 11:55      
   an example      Jan Waclawek      04/10/06 14:21      
      Internal XRAM      David Smith      04/11/06 14:29      
         not really      Erik Malund      04/11/06 14:38      
            Ports' SFR are set to 1      Kai Klaas      04/11/06 19:54      
               not a port, a "page SFR"      Erik Malund      04/12/06 05:59      
         P2?      Kai Klaas      04/11/06 19:49      
            Doh!      David Smith      04/12/06 03:06      
   which derivative      Oleg Sergeev      04/11/06 00:06      
      do not allow?      Jan Waclawek      04/11/06 01:30      
         AT89S8252      Oleg Sergeev      04/11/06 23:58      
            Aaaaah, so. Thanks.      Jan Waclawek      04/12/06 00:49      
   Tanks      Markus Kammersberger      04/11/06 01:43      

Back to Subject List