News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

opcode or Address? How to know it

Started by taco.de.tripa, January 16, 2008, 11:59:06 PM

Previous topic - Next topic

taco.de.tripa

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

raymond

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
When you assume something, you risk being wrong half the time
http://www.ray.masmcode.com

MichaelW

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.
eschew obfuscation