1
0
Fork 0
mirror of synced 2025-07-04 20:37:07 +02:00

More Instruction Implementations

This commit is contained in:
Christian Dietrich 2014-09-26 16:00:45 +02:00
parent 4613bcddab
commit 0dee263e00
3 changed files with 406 additions and 6 deletions

View file

@ -212,6 +212,174 @@
}
\preto\avr@test{\avr@test@SUBI}
\def\avr@test@CPI{%
\avr@test@setup{CPI}%
\avr@instr@LDI{0}{\csuse{avr@r30}}{00001111}%
\avr@instr@CPI{1}{\csuse{avr@r30}}{00001111}%
\avr@instr@stepn{2}%
\avr@test@REG{r30}{00001111}
\avr@test@SREG{00000010}
}
\preto\avr@test{\avr@test@CPI}
\def\avr@test@MOVW{%
\avr@test@setup{MOVW}%
\avr@instr@LDI{0}{\csuse{avr@r30}}{00001111}%
\avr@instr@LDI{1}{\csuse{avr@r31}}{11110000}%
\avr@instr@MOVW{2}{\csuse{avr@r2}}{\csuse{avr@r30}}%
\avr@instr@stepn{3}%
\avr@test@REG{r2}{00001111}
\avr@test@REG{r3}{11110000}
\avr@test@SREG{00000000}
}
\preto\avr@test{\avr@test@MOVW}
\def\avr@test@BSET{%
\avr@test@setup{BSET}%
\avr@instr@SEI{0}%
\avr@instr@SEC{1}%
\avr@instr@CLI{2}%
\avr@instr@stepn{2}%
\avr@test@SREG{10000001}
\avr@instr@stepn{1}%
\avr@test@SREG{00000001}
}
\preto\avr@test{\avr@test@BSET}
\def\avr@test@BST{%
\avr@test@setup{BST}%
\avr@instr@LDI{0}{\csuse{avr@r31}}{00010000}%
\avr@instr@BST{1}{\csuse{avr@r31}}{100}%
\avr@instr@BLD{2}{\csuse{avr@r31}}{000}%
\avr@instr@CLT{3}
\avr@instr@BLD{4}{\csuse{avr@r31}}{100}%
\avr@instr@stepn{2}%
\avr@test@SREG{01000000}
\avr@instr@stepn{1}
\avr@test@REG{r31}{00010001}
\avr@instr@stepn{2}%
\avr@test@SREG{00000000}
\avr@test@REG{r31}{00000001}
}
\preto\avr@test{\avr@test@BST}
\def\avr@test@NEG{%
\avr@test@setup{NEG}%
\avr@instr@LDI{0}{\csuse{avr@r20}}{00000001}%
\avr@instr@NEG{1}{\csuse{avr@r20}}%
\avr@instr@NEG{2}{\csuse{avr@r20}}%
\avr@instr@stepn{2}%
\avr@test@REG{r20}{11111111}
\avr@test@SREG{00100101}
\avr@instr@stepn{1}%
\avr@test@REG{r20}{00000001}
\avr@test@SREG{00100001}
}
\preto\avr@test{\avr@test@NEG}
\def\avr@test@COM{%
\avr@test@setup{COM}%
\avr@instr@LDI{0}{\csuse{avr@r20}}{00000001}%
\avr@instr@COM{1}{\csuse{avr@r20}}%
\avr@instr@COM{2}{\csuse{avr@r20}}%
\avr@instr@stepn{2}%
\avr@test@REG{r20}{11111110}
\avr@test@SREG{00000101}
\avr@instr@stepn{1}%
\avr@test@REG{r20}{00000001}
\avr@test@SREG{00000001}
}
\preto\avr@test{\avr@test@COM}
\def\avr@test@SBR{%
\avr@test@setup{SBR[CS]}%
\avr@instr@LDI{0}{\csuse{avr@r20}}{00001000}%
\avr@instr@SBRS{1}{\csuse{avr@r20}}{011}%
\avr@instr@LDI{2}{\csuse{avr@r20}}{00001111}%
\avr@instr@NOP{3}
\avr@instr@stepn{3}%
\avr@test@REG{r20}{00001000}
\avr@instr@SBRS{4}{\csuse{avr@r20}}{010}%
\avr@instr@LDI{5}{\csuse{avr@r20}}{00001111}%
\avr@instr@NOP{6}
\avr@instr@stepn{2}%
\avr@test@REG{r20}{00001111}
}
\preto\avr@test{\avr@test@SBR}
\def\avr@test@ASR{%
\avr@test@setup{ASR}%
\avr@instr@LDI{0}{\csuse{avr@r20}}{00001001}%
\avr@instr@ASR{1}{\csuse{avr@r20}}%
\avr@instr@LDI{2}{\csuse{avr@r20}}{10001001}%
\avr@instr@ASR{3}{\csuse{avr@r20}}%
\avr@instr@stepn{2}%
\avr@test@REG{r20}{00000100}
\avr@test@SREG{00011001}
\avr@instr@stepn{2}%
\avr@test@REG{r20}{11000100}
\avr@test@SREG{00000101}
}
\preto\avr@test{\avr@test@ASR}
\def\avr@test@LSR{%
\avr@test@setup{LSR}%
\avr@instr@LDI{0}{\csuse{avr@r20}}{00001001}%
\avr@instr@LSR{1}{\csuse{avr@r20}}%
\avr@instr@LDI{2}{\csuse{avr@r20}}{10001001}%
\avr@instr@LSR{3}{\csuse{avr@r20}}%
\avr@instr@stepn{2}%
\avr@test@REG{r20}{00000100}
\avr@test@SREG{00011001}
\avr@instr@stepn{2}%
\avr@test@REG{r20}{01000100}
\avr@test@SREG{00011001}
}
\preto\avr@test{\avr@test@LSR}
\def\avr@test@ROR{%
\avr@test@setup{ROR}%
\avr@instr@LDI{0}{\csuse{avr@r20}}{00000001}%
\avr@instr@ROR{1}{\csuse{avr@r20}}%
\avr@instr@ROR{2}{\csuse{avr@r20}}%
\avr@instr@ROR{3}{\csuse{avr@r20}}%
\avr@instr@stepn{2}%
\avr@test@REG{r20}{00000000}
\avr@test@SREG{00011011}
\avr@instr@stepn{1}%
\avr@test@REG{r20}{10000000}
\avr@test@SREG{00011100}
\avr@instr@stepn{1}%
\avr@test@REG{r20}{01000000}
\avr@test@SREG{00000000}
}
\preto\avr@test{\avr@test@ROR}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "avr.tex"