We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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! ;-)