Search code examples
assemblyhla

What is iii, rr and mmm?


I am reading the book The Art of Assembly Language. I came across this paragraph.

To determine a particular instruction’s opcode, you need only select the appropriate bits for the iii, rr, and mmm fields. For example, to encode the mov ax, bx instruction you would select iii=110 (mov reg, reg), rr=00 (ax), and mmm=001 (bx). This produces the one-byte instruction 11000001 or 0C0h.

Here I can't understand what is iii, rr and mmm? Can anybody please explain? Thanks in advance.


Solution

    • iii represents a three-bit field (because there are three i's)
    • rr, a two-bit field
    • mmm another three-bit field

    The reason letters are used like this is so that when you see iiirrmm, you know which bits correspond to which fields in the opcode.