MOV DPTR,#B ; 1 MOVX A,@DPTR ; 2 MOV R5,A ; 3 MOV DPTR,#C ; 4 MOVX A,@DPTR ; 5 ADD A,R5 ; 6 MOV DPTR,#A ; 7 MOVX @DPTR,A ; 8
The 8051 took 8. Now lets see if I can remember the 1802 well enough:
LD #LOW(B) ; 1 Data = low 8 of address PLO R5 ; 2 Put to low 8 LD #HIGH(B) ; 3 Data = high 8 of address PHI R5 ; 4 Put to high 8 LD #LOW(C) ; 5 PLO R6 ; 6 LD #HIGH(C) ; 7 PHI R6 ; 8 LD #LOW(A) ; 9 PLO R7 ; 10 LD #HIGH(A) ; 11 PHI R7 ; 12 LDN R5 ; 13 Load what R5 points to SEX R6 ; 14 Do math with what R6 points to ADD ; 15 Do the math STD R7 ; 16 Store where R7 points
The instruction count for the 1802 is double that of the 8051 and with the slower clock speed, the 1802 takes about a billion times longer to do the same operation.
[... about keyboards ...]I wonder if they've gone so far as to look at the code to see which instructions actually got used an only implemented that much of the
8048.