On Thursday, Nov 20, 2003, at 19:13 US/Pacific, James Cameron wrote: > In the first group, the next four bits are the type of manipulation > that the ALU will do between the fetch (Q2) and store (Q4) cycles ... > > 0000 - nothing (movwf, nop) > 0001 - clear (clrf, clrw) > 0010 - subtract > So from this and the instruction set we might conclude that: > - NOP is a move from W to W without changing flags, > - CLRW is a CLRF with the destination set to W, > >> What would be the point of reading a file register to clear W? I remember the first system I learned assembler on had a very orthoganal instruction set that resulted in lots of no-op instructions. "test bits in the right half of the register and never skip", "don't skip if memory location is zero", and so on. The manual carefully commented on some of them "this is a nop that references memory", "this is a nop that references a register." I imagine it had hardware debugging and diagnostics implications... One might not want to use those memory-referencing nops until after the memory hardware was initialized, for instance, and of course they were slower than nops that didn't reference memory. You can learn a lot about computer architecture by trying to figure out how the insides of a real computer work. I wonder if there's a syllabus that uses that rather than the usual "lets build something from the ground up." BillW -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! email listserv@mitvma.mit.edu with SET PICList DIGEST in the body