INSTRUCTION SET DESCRIPTIONS

Table C-4. Instruction Set (Continued)

Name

Description

Operation

Flags

Affected

 

 

 

 

 

 

 

IMUL

Integer Multiply:

When Source Operand is a Byte:

AF ?

 

IMUL src

(AX) (byte-src) × (AL)

CF

 

DF –

 

Performs a signed multiplication of the

if

 

IF –

 

(AH) = sign-extension of (AL)

 

source operand and the accumulator.

 

OF ¸

 

then

 

If the source is a byte, then it is

(CF) 0

PF ?

 

multiplied by register AL, and the

 

SF ?

 

else

 

double-length result is returned in AH

 

TF –

 

(CF) 1

 

and AL. If the source is a word, then it

 

ZF ?

 

(OF) (CF)

 

is multiplied by register AX, and the

 

 

 

 

 

 

double-length result is returned in

When Source Operand is a Word:

 

 

registers DX and AX. If the upper half

(DX:AX) (word-src) × (AX)

 

 

of the result (AH for byte source, DX

 

 

if

 

 

for word source) is not the sign

 

 

(DX) = sign-extension of (AX)

 

 

extension of the lower half of the

 

 

then

 

 

result, CF and OF are set; otherwise

 

 

(CF) 0

 

 

they are cleared. When CF and OF are

 

 

else

 

 

set, they indicate that AH or DX

 

 

(CF) 1

 

 

contains significant digits of the result.

 

 

(OF) (CF)

 

 

 

 

 

Instruction Operands:

 

 

 

IMUL reg

 

 

 

IMUL mem

 

 

 

IMUL immed

 

 

 

 

 

 

IN

Input Byte or Word:

When Source Operand is a Byte:

AF –

 

IN accum, port

(AL) (port)

CF –

 

DF –

 

Transfers a byte or a word from an

When Source Operand is a Word:

 

IF –

 

input port to the AL register or the AX

(AX) (port)

 

OF –

 

register, respectively. The port number

 

 

PF –

 

may be specified either with an

 

 

 

SF –

 

immediate byte constant, allowing

 

 

 

TF –

 

access to ports numbered 0 through

 

 

 

ZF –

 

255, or with a number previously

 

 

 

 

 

placed in the DX register, allowing

 

 

 

variable access (by changing the value

 

 

 

in DX) to ports numbered from 0

 

 

 

through 65,535.

 

 

 

Instruction Operands:

 

 

 

IN AL, immed8

 

 

 

IN AX, DX

 

 

 

 

 

 

NOTE: The three symbols used in the Flags Affected column are defined as follows:

the contents of the flag remain unchanged after the instruction is executed ¸? the contents of the flag is undefined after the instruction is executed

the flag is updated after the instruction is executed

C-17

Page 340
Image 340
Intel 80C188XL Imul, Integer Multiply When Source Operand is a Byte, Input Byte or Word When Source Operand is a Byte