DATA TYPES AND MEMORY ADDRESSING MODES
2-2
2.1.1
Integers
Integers are signed whole numbers that are stored and operated on in two’s complement format by
the integer instructions. Most integer instructions operate on 32-bit integers. Byte and short integers
are referenced by the byte and short classes of the load, store and compare instructions only.
Integer load or store size (byte, short or word) determines how sign extension or data truncation is
performed when data is moved between registers and memory.
For instructions
ldib
(load integer byte) and
ldis
(load integer short), a byte or short word in
memory is considered a two’s complement value. The value is sign-extended and placed in the
32-bit register that is the destination for the load.
Example 2-1. Sign Extensions on Load Byte and Load Short
For instructions
stib
(store integer byte) and
stis
(store integer short), a 32-bit two’s complement
number in a register is stored to memory as a byte or short word. When register data is too large to
be stored as a byte or short word, the value is truncated and the integer overflow condition is
signalled. When an overflow occurs, either an AC register flag is set or the ARITH-
METIC.INTEGER_OVERFLOW fault is generated, depending on the Integer Overflow Mask bit
(AC.om) in the AC register.
CHAPTER 8, FAULTS
describes the integer overflow fault.
For instructions
ld
(load word) and
st
(store word), data is moved directly between memory and a
register with no sign extension or data truncation.
2.1.2
Ordinals
Ordinals or unsigned integer data types are stored and treated as positive binary values.
Figure 2-1
shows the supported ordinal sizes.
The large number of instructions that perform logical, bit manipulation and unsigned arithmetic
operations reference 32-bit ordinal operands. When ordinals are used to represent Boolean values,
1 = TRUE and 0 = FALSE. Most extended arithmetic instructions reference the long ordinal data
type. Only load (
ldob
and
ldos
), store (
stob
and
stos
), and compare ordinal instructions reference
the byte and short ordinal data types.
ldib
7AH is loaded into a register as 0000 007AH
FAH is loaded into a register as FFFF FFFAH
ldis
05A5H is loaded into a register as 0000 05A5H
85A5H is loaded into a register as FFFF 85A5H
Summary of Contents for i960 Jx
Page 1: ...Release Date December 1997 Order Number 272483 002 i960 Jx Microprocessor Developer s Manual ...
Page 24: ......
Page 25: ...1 INTRODUCTION ...
Page 26: ......
Page 35: ...2 DATA TYPES AND MEMORY ADDRESSING MODES ...
Page 36: ......
Page 46: ......
Page 47: ...3 PROGRAMMING ENVIRONMENT ...
Page 48: ......
Page 73: ...4 CACHE AND ON CHIP DATA RAM ...
Page 74: ......
Page 85: ...5 INSTRUCTION SET OVERVIEW ...
Page 86: ......
Page 111: ...6 INSTRUCTION SET REFERENCE ...
Page 112: ......
Page 233: ...7 PROCEDURE CALLS ...
Page 234: ......
Page 256: ......
Page 257: ...8 FAULTS ...
Page 258: ......
Page 291: ...9 TRACING AND DEBUGGING ...
Page 292: ......
Page 309: ...10 TIMERS ...
Page 310: ......
Page 324: ......
Page 325: ...11 INTERRUPTS ...
Page 326: ......
Page 369: ...12 INITIALIZATION AND SYSTEM REQUIREMENTS ...
Page 370: ......
Page 412: ......
Page 413: ...13 MEMORY CONFIGURATION ...
Page 414: ......
Page 429: ...14 EXTERNAL BUS ...
Page 430: ......
Page 468: ......
Page 469: ...15 TEST FEATURES ...
Page 470: ......
Page 493: ...A CONSIDERATIONS FOR WRITING PORTABLE CODE ...
Page 494: ......
Page 502: ......
Page 503: ...B OPCODES AND EXECUTION TIMES ...
Page 504: ......
Page 515: ...C MACHINE LEVEL INSTRUCTION FORMATS ...
Page 516: ......
Page 523: ...D REGISTER AND DATA STRUCTURES ...
Page 524: ......
Page 550: ......
Page 551: ...GLOSSARY ...
Page 552: ......
Page 561: ...INDEX ...
Page 562: ......
Page 578: ......