MIT PDP-10 'Info' file converted to Hypertext 'html' format by Henry Baker
Previous
Up
Next
Halfword instructions
The halfword class of instructions perform data transmission between
one half of an accumulator and one half of a memory location. There
are sixty-four halfword instructions. Each mnemonic begins with H
and has four modifiers. The first modifier specifies which half of
the source word; the second specifies which half of the destination.
The third modifier specifies what to do to the other half of the
destination. The fourth modifier specifies the source of data and
the destination of the result.
H halfword from |R right of source to
|L left
|R right of destination
|L left
| no modification of other half
|Z zero other half
|O set other half to ones
|E sign extend source to other half
| from memory to AC
|I Immediate
|M from AC to memory
|S to self. If AC#0, then move to AC also.
C18 means bit 18 of the contents (the high bit of the low half);
C0 means bit 0 of the contents (the high bit of the high half);
E18 means the high bit of the effective address.
777777*X evaluates to 0 if X is 0, or 777777 (all ones) if X is one.
Such expressions represent sign extension.
HRR CR(AC) <- CR(E)
HRRI CR(AC) <- E
HRRM CR(E) <- CR(AC)
HRRS CR(E) <- CR(E); if AC#0 then CR(AC) <- CR(E)
HRRZ C(AC) <- 0,,CR(E)
HRRZI C(AC) <- 0,,E
HRRZM C(E) <- 0,,CR(AC)
HRRZS C(E) <- 0,,CR(E); if AC#0 then C(AC) <- 0,,CR(E)
HRRO C(AC) <- 777777,,CR(E)
HRROI C(AC) <- 777777,,E
HRROM C(E) <- 777777,,CR(AC)
HRROS C(E) <- 777777,,CR(E); if AC#0 then C(AC) <- 777777,,CR(E)
HRRE C(AC) <- 777777*C18(E),,CR(E);
HRREI C(AC) <- 777777*E18,,E
HRREM C(E) <- 777777*C18(AC),,CR(AC)
HRRES C(E) <- 777777*C18(E),,CR(E);
if AC#0 then C(AC) <- 777777*C18(E),,CR(E)
HRL CL(AC) <- CR(E)
HRLI CL(AC) <- E
HRLM CL(E) <- CR(AC)
HRLS CL(E) <- CR(E); if AC#0 then CL(AC) <- CR(E)
HRLZ C(AC) <- CR(E),,0
HRLZI C(AC) <- E,,0
HRLZM C(E) <- CR(AC),,0
HRLZS C(E) <- CR(E),,0; if AC#0 then C(AC) <- CR(E),,0
HRLO C(AC) <- CR(E),,777777
HRLOI C(AC) <- E,,777777
HRLOM C(E) <- CR(E),,777777
HRLOS C(E) <- CR(E),,777777; if AC#0 then C(AC) <- CR(E),,777777
HRLE C(AC) <- CR(E),,777777*C18(E)
HRLEI C(AC) <- E,,777777*E18
HRLEM C(E) <- CR(AC),,777777*C18(AC)
HRLES C(E) <- CR(E),,777777*C18(E);
if AC#0 then C(AC) <- CR(E),,777777*C18(E)
HLR CR(AC) <- CL(E)
HLRI CR(AC) <- 0
HLRM CR(E) <- CL(AC)
HLRS CR(E) <- CL(E); if AC#0 then CR(AC) <- CL(E)
HLRZ C(AC) <- 0,,CL(E)
HLRZI C(AC) <- 0
HLRZM C(E) <- 0,,CL(AC)
HLRZS C(E) <- 0,,CL(E); if AC#0 then C(AC) <- 0,,CL(E)
HLRO C(AC) <- 777777,,CL(E)
HLROI C(AC) <- 777777,,0
HLROM C(E) <- 777777,,CL(AC)
HLROS C(E) <- 777777,,CL(E); if AC#0 then C(AC) <- 777777,,CL(E)
HLRE C(AC) <- 777777*C0(E),,CL(E);
HLREI C(AC) <- 0
HRREM C(E) <- 777777*C0(AC),,CL(AC)
HRRES C(E) <- 777777*C0(E),,CL(E);
if AC#0 then C(AC) <- 777777*C0(E),,CR(E)
HLL CL(AC) <- CL(E)
HLLI CL(AC) <- 0
HLLM CL(E) <- CL(AC)
HLLS CL(E) <- CL(E); if AC#0 then CL(AC) <- CL(E)
HLLZ C(AC) <- CL(E),,0
HLLZI C(AC) <- 0
HLLZM C(E) <- CL(AC),,0
HLLZS C(E) <- CL(E),,0; if AC#0 then C(AC) <- CL(E),,0
HLLO C(AC) <- CL(E),,777777
HLLOI C(AC) <- 0,,777777
HLLOM C(E) <- CL(E),,777777
HLLOS C(E) <- CL(E),,777777; if AC#0 then C(AC) <- CL(E),,777777
HLLE C(AC) <- CL(E),,777777*C0(E)
HLLEI C(AC) <- 0
HLLEM C(E) <- CL(AC),,777777*C0(AC)
HLLES C(E) <- CL(E),,777777*C0(E);
if AC#0 then C(AC) <- CL(E),,777777*C0(E)