Individual Instruction Descriptions

4.14.17 EXTSGNS

Sign Extend String

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Syntax

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[label]

name

dest

 

 

 

 

 

Clock, clk

 

Word, w

 

 

With RPT, clk

Class

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

EXTSGNS

An[~]

 

 

 

 

 

nR+3

 

 

1

 

 

 

 

 

nR+3

 

 

 

3

Execution

new most significant word of dest

STAT.SF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PC PC + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Flags Affected

None

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Opcode

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Instructions

 

 

16

15

14

13

12

11

 

10

 

9

 

8

 

7

 

6

 

5

 

4

 

3

2

 

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

EXTSGNS An[~]

 

 

1

1

1

0

0

1

 

1

 

 

An

 

0

 

1

 

1

 

1

 

1

0

 

0

A~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Description

Extend the sign bit (SF) of most significant word an additional 16 bits to the left.

 

 

The accumulator address is preincremented (internally) causing the sign of

 

 

the addressed accumulator to be extended into the next accumulator address.

This instruction ignores the string count, executing only once, but maintains the CF and ZF status of the previous multiply or shift operation as if the sequence was a single string.

IMPORTANT:

At this stage of documentation, a bug in this instruction causes the processor to stall when an attempt is made to sign extend a string that has all zeros in it. Also, the same interrupt problem on the accumulator pointers exists if the instruction just before is not a string instruction. For customers who need the EXTSGNS function now as it was originally intended for string data, there is a workaround. Unfortunately, it involves the use of two accumulator pointers, the second pointing to the position in the accumulator register file that would correspond to the extended word location. For example, if a string exists in memory with the value Ox943500000000 (3 word string) and the value was to be moved to a accumulator as a 64 bit sign extended value, the following code would have been (without bugs):

MOV AP0, 0

MOVS A0, *R0

; R0 POINTS TO VALUE IN MEMORY

EXTSGNS A0 ; EXTENDS THE SIGN OF ABOVE ADD IN ACC(3)

Since the bug causes the above function to fail, the status of the 2 least signifi- cant words is equal to zero. However, the same case will be correctly executed with the desired result with the existing bug:

MOV AP0, 0 ; POINT TO LSW OF ACCUM STRING

Assembly Language Instructions

4-99

Page 185
Image 185
Texas Instruments MSP50C6xx manual Extsgns Sign Extend String, An~