44e17764e15d4b5e9388095db2e882624d83e737
/* Awrite_word.c 1.2 90/12/04 */
write_word (infop
, word
, where
)
/* Put the word at the given address in
/* 1. The least significant word is written.
/**************************************************/
register struct operand_des
*look_at
;
look_at
= &Table
[opCODE
].operand
[last_operand
];
if (! (look_at
->add_modes
& NOVF
))
if (word
> 0x7fff || word
< -0x8000) overflow_1
;
if (! (where
->mode
& W
)) exception(infop
, ILL_ADDRMOD
);
switch (where
->mode
& ADDFIELD
) /* Mask out R/W bits */
put_word (infop
, word
, where
->address
);
Replace (infop
, where
->reg_number
, word
);
where
->mode
= where
->mode
& ~SPmode
| Add
;
write_longword (infop
, word
, where
);
printf("Unknown destination in write_word (alignment code)\n");