Intel Microcontroller User Manual
4-1
CHAPTER 4
PROGRAMMING CONSIDERATIONS
This section provides an overview of the instruction set of the MCS
®
96 microcontrollers and of-
fers guidelines for program development. For detailed information about specific instructions,
see Appendix A.
see Appendix A.
4.1
OVERVIEW OF THE
INSTRUCTION SET
The instruction set supports a variety of operand types likely to be useful in control applications
(see Table 4-1).
(see Table 4-1).
NOTE
The operand-type variables are shown in all capitals to avoid confusion. For
example, a BYTE is an unsigned 8-bit variable in an instruction, while a byte is
any 8-bit unit of data (either signed or unsigned).
example, a BYTE is an unsigned 8-bit variable in an instruction, while a byte is
any 8-bit unit of data (either signed or unsigned).
Table 4-1. Operand Type Definitions
Operand Type
No. of
Bits
Signed
Possible Values
Addressing
Restrictions
BIT
1
No
True (1) or False (0)
As components of bytes
BYTE
8
No
0 through 2
8
–1 (0 through 255)
None
SHORT-INTEGER
8
Yes
–2
7
through +2
7
–1
(–128 through +127)
None
WORD
16
No
0 through 2
16
–1
(0 through 65,535)
Even byte address
INTEGER
16
Yes
–2
15
through +2
15
–1
(–32,768 through +32,767)
Even byte address
DOUBLE-WORD
(Note 1)
(Note 1)
32
No
0 through 2
32
–1
(0 through 4,294,967,295)
An address in the lower
register file that is evenly
divisible by four (Note 2)
register file that is evenly
divisible by four (Note 2)
LONG-INTEGER
(Note 1)
(Note 1)
32
Yes
–2
31
through +2
31
–1
(–2,147,483,648 through
+2,147,483,647)
+2,147,483,647)
An address in the lower
register file that is evenly
divisible by four (Note 2)
register file that is evenly
divisible by four (Note 2)
QUAD-WORD
(Note 3)
(Note 3)
64
No
0 through 2
64
–1
An address in the lower
register file that is evenly
divisible by eight
register file that is evenly
divisible by eight
NOTES:
1.
1.
The 32-bit variables are supported only as the operand in shift operations, as the dividend in 32-by-
16 divide operations, and as the product of 16-by-16 multiply operations.
16 divide operations, and as the product of 16-by-16 multiply operations.
2.
For consistency with third-party software, you should adopt the C programming conventions for
addressing 32-bit operands. For more information, refer to page 4-11.
addressing 32-bit operands. For more information, refer to page 4-11.
3.
QUAD-WORD variables are supported only as the operand for the EBMOVI instruction.