BFILL: Difference between revisions
Jump to navigation
Jump to search
m (Typo: Missing parenthesis.) |
(Important typo in example: 0x80 -> 0x8000) |
||
Line 39: | Line 39: | ||
A register = 1 | A register = 1 | ||
X register = 1 | X register = 1 | ||
T register = | T register = 0x0003 (bit 15 = 0, length field = 3) | ||
Memory area after execution: | Memory area after execution: | ||
Line 47: | Line 47: | ||
3 0 0 | 3 0 0 | ||
X register = 2 | X register = 2 | ||
T register = | T register = 0x8000 (bit 15 = 1) | ||
P:= P+2 | P:= P+2 | ||
Revision as of 08:33, 29 September 2009
BFILL | |
---|---|
Description | Byte fill |
Format | BFILL |
Code | 140 1308 |
Affected | P,X,T, memory region defined by X,T |
Type | User |
Architecture | ND-100, ND-110 |
BFILL is an assembly instruction. A byte operand memory area defined by the X and T registers is filled with the value of the right-most byte in the A register.
The P register is incremented by two when this instruction is finished, i.e. any instruction directly following BFILL will not be executed.
The A, X and T registers should be set to appropriate values before execution of BFILL. The X and T registers will also be modified by the instruction.
- Before execution
A: Bit 0-7: The value to fill into each byte of the destination field. X: Bit 0-15: The destination field's word address in memory. T: Bit 15: This bit specifies whether the byte operand starts in the left byte or right byte of the address defined by X. Bit 15 = 0, left byte Bit 15 = 1, right byte Bit 14: Page table mode: Bit 14 = 1 selects the alternative page table. Bit 13: This bit should be 0. Bit 12: Not used. Bit 11-0: Field length in number of bytes (0-4095).
- After execution
X: Bit 0-15: The word address of the byte following the last byte. T: Bit 15: This bit specifies whether the byte following the last byte is in the left byte or right byte of the address defined by X. Bit 11-0: Set to zero.
Example 1
Memory area before execution, each address holds 2 bytes (1 word): Address: 0 0 0 1 0 0 2 0 0 3 0 0 A register = 1 X register = 1 T register = 0x0003 (bit 15 = 0, length field = 3)
Memory area after execution: Address: 0 0 0 1 1 1 2 1 0 3 0 0 X register = 2 T register = 0x8000 (bit 15 = 1) P:= P+2
Example 2
Memory area before execution, each address holds 2 bytes (1 word): Address: 0 0 0 1 0 0 2 0 0 3 0 0 A register = 1 X register = 1 T register = 0x83 (bit 15 = 1, length field = 3)
Memory area after execution: Address: 0 0 0 1 0 1 2 1 1 3 0 0 X register = 3 T register = 0x00 (bit 15 = 0) P:= P+2
References
- Norsk Data Document ND–06.014.02 ND-100 REFERENCE MANUAL Pages 3-27,3-28
- Norsk Data Document ND–06.029.01 ND-110 Instruction Set Pages 92-93
The older document is more accurate for this instruction.