http://www.keil.com/support/man/docs/is51/is51_opcodes.htm lists 8051 instructions by HEX code. I had saw a line and make me confused. Why MOV direct, R8 appear in Hex Code 90 ? I mean, in other hex code, only can operate R0~R7. ex: INC/DEC/ADD/ORL/...etc
R8 only can apply in operation MOV direct, R8 ?
And question 2 is: because R9~R15 are not list in this table, would R9~R15 not be operated in C166 system?
That'll be an error in the table, then!
See Chapter 2 of the so-called "bible" for the 8051:
80C51 Family Programmer's Guide and Instruction Set: www.nxp.com/.../80C51_FAM_PROG_GUIDE_1.pdf
The format for the MOV direct, Rn instruction is on p39; it is:
1000 1rrr
Where "rrr" is the binary register number, 0-7.
http://www.keil.com/support/man/docs/is51/is51_mov.htm does appear to be correct.
Next question: What does Opcode 0x90 actually do...?
Since I couldn't find an actual opcode list in either of the three books of "the bible", I had to google for it.
Opcode 0x90 is ...
MOV DPTR,#data16
Waoh~That's a error!? You should correct this error ASAP... Thank you very much, Accoding to the pdf file, I had found out the true function for opcode 90, is MOV DPTR, load a value into the Data Pointer.
"You should correct this error ASAP..."
You need to contact Keil direct - see the 'Contacts' page, or use the 'Feedback' Link
http://www.keil.com/forum/terms.asp
"I couldn't find an actual opcode list in either of the three books of 'the bible'"
Neither could I - which is why I didn't answer the question! ;-)