* Copyright (c) 1986 The Regents of the University of California.
* This code is derived from software contributed to Berkeley by
* %sccs.include.redist.c%
* @(#)Awrite_byte.c 7.1 (Berkeley) %G%
write_byte (infop
,byte
, where
)
/* Put the 'byte' at the given address in
/* 1. Only the least significant byte is written.
/**************************************************/
register struct operand_des
*look_at
;
look_at
= &Table
[opCODE
].operand
[last_operand
];
if (! (look_at
->add_modes
& NOVF
))
if (byte
> 0x7f || byte
< -0x80) overflow_1
;
if (!(where
->mode
& W
)) exception(infop
, ILL_ADDRMOD
);
switch (where
->mode
& ADDFIELD
) /* Mask out R/W bits */
put_byte(infop
, byte
, where
->address
);
Replace (infop
, where
->reg_number
, byte
);
where
->mode
= where
->mode
& ~SPmode
| Add
;
write_longword (infop
, byte
, where
);
printf("Unknown destination in write_byte (alignment code)\n");