jielie

8051

16-bit DSP-like extension

It operates on 16-bit registers, which are mapped to the 8051’s registers as follows:

The multiplication instructions store the result in a 32-bit register seemingly accessible as the MRES0-3 SFRs.

Instruction bits Mnemonic
10100101 00000000 0000XxYy add16
10100101 00000000 0001XxYy add16
10100101 00000000 0010YyXx add16
10100101 00000000 0011XxYy addc16
10100101 00000000 0100XxYy addc16
10100101 00000000 0101YyXx addc16
10100101 00000000 0110XxYy add16s
10100101 00000000 0111XxYy add16s
10100101 00000000 1000YyXx add16s
10100101 00000000 1001XxYy addc16s
10100101 00000000 1010XxYy addc16s
10100101 00000000 1011YyXx addc16s
10100101 00000000 1100XxYy sub16
10100101 00000000 1101XxYy sub16
10100101 00000000 1110YyXx sub16
10100101 00000000 1111XxYy subc16
10100101 00000001 0000XxYy subc16
10100101 00000001 0001YyXx subc16
10100101 00000001 0010XxYy sub16s
10100101 00000001 0011XxYy sub16s
10100101 00000001 0100YyXx sub16s
10100101 00000001 0101XxYy subc16s
10100101 00000001 0110XxYy subc16s
10100101 00000001 0111YyXx subc16s
10100101 00000001 1000XxYy anl16
10100101 00000001 1001XxYy anl16
10100101 00000001 1010YyXx anl16
10100101 00000001 1011XxYy orl16
10100101 00000001 1100XxYy orl16
10100101 00000001 1101YyXx orl16
10100101 00000001 1110XxYy xrl16
10100101 00000001 1111XxYy xrl16
10100101 00000010 0000YyXx xrl16
10100101 00000010 0001XxYy mac16
10100101 00000010 0010XxYy mac16
10100101 00000010 0011XxYy mac16s
10100101 00000010 0100XxYy mac16s
10100101 00000010 0101XxYy mov16b
10100101 00000010 0110YyXx mov16b
10100101 00000011 00ZzXxYy lsl16k
10100101 00000011 01ZzXxYy lsr16k
10100101 00000011 10ZzXxYy rotl16k
10100101 00000011 11ZzXxYy asr16k
10100101 00000100 rotl8
10100101 00000101 rotr8
10100101 00000110 mul16wr wr4, wr2
10100101 00000111 mul16swr wr4, wr2
10100101 00001Yyy rotl8k
10100101 000100Xx inc16
10100101 000101Xx inc216
10100101 000110Xx dec16
10100101 000111Xx dec216
10100101 001000Xx rotl16
10100101 001001Xx rotr16
10100101 001010Xx rotl16
10100101 001011Xx rotr16
10100101 001100Xx lsr16
10100101 001101Xx lsl16
10100101 001110Xx lsr16
10100101 001111Xx lsl16
10100101 010000Xx asr16
10100101 010001Xx asr16
10100101 010010Xx movsa
10100101 010011Xx movsb
10100101 010100Xx mov8bta
10100101 010101Xx movat8b
10100101 0110XxYy cmp16
10100101 0111XxYy mov8bb
10100101 1000XxYy mov16
10100101 1001YyXx mov16
10100101 1010XxYy mov16
10100101 1011XxYy mov16
10100101 1100XxYy mul16
10100101 1101XxYy mul16
10100101 1110XxYy mul16s
10100101 1111XxYy mul16s