Fix error with JMP @A,DPTR instruction

The resulting jump address is simply the sum of the values in the accumulator
and the DPTR registers, not the indirect read of that sum.

Error reported and fixed by Anthony (antliu at gmail.com).
This commit is contained in:
Hugo Villeneuve 2013-11-04 10:27:10 -05:00
parent ba55b642a0
commit 1ba08e4240

View File

@ -290,7 +290,7 @@ for ($i=0 ; $i< 256; $i++) {
print INST_IMP "unsigned char destination = ( cpu8051_ReadD( _PSW_ ) >> 7 );\n";
}
if ($op_destination == 18) { # @A+DPTR
print INST_IMP "unsigned int destination = cpu8051_ReadI( cpu8051_ReadD( _ACC_ ) + cpu8051_ReadD( _DPTRLOW_ ) + ( cpu8051_ReadD( _DPTRHIGH_ ) << 8 ) );\n";
print INST_IMP "unsigned int destination = cpu8051_ReadD( _ACC_ ) + cpu8051_ReadD( _DPTRLOW_ ) + ( cpu8051_ReadD( _DPTRHIGH_ ) << 8 );\n";
}
# Mis en commentaire car donnait un warning (destination et source unused variables...)
# if ($op_destination == 20) { # AB