Hi folks,
this a N00B question, how I can be able to distinguish between an opcode and an address, for example, imagine that I find out the following hex numbers in an EEPROM Map: F4 34 08 35 0B.
The book writer saids it means: Copy the byte on the address $3408 to the address $350B. But the question is how I know that F4 means a opcode and not an address?
I hope I have explained this clearly. :red
Thanks in advance,
taco.de.trip
QuoteBut the question is how I know that F4 means a opcode and not an address?
In simple words, you CAN'T just by looking at that byte. At least not until you have disassembled all the code prior to that and studied those prior instructions to make sure that none of that prior "code" was junk which could have "overflowed" into that specific coded instruction. Only then would you be sure that the F4 (or any other byte) is an actual microop having a specific meaning.
You don't have to do that disassembling manually. Use a debugger or other disassemblers to prepare that listing.
Raymond
For the x86, F4h is the opcode for HLT, which takes no operands and has nothing to do with moving bytes. I think BIOS code is one of the few places where you are likely to encounter HLT, and even there I think most instances of F4h will probably be an address or binary data.