1. A system for controlling ignition timing for an internal combustion engine, comprising: (a) first means for detecting an engine operating condition; (b) second means for detecting an occurrence of engine knocking in the engine; (c) third means for determining a current engine operating region on the basis of the engine operating condition detected by the first means; (d) fourth means for setting a basic ignition timing angle on the basis of the engine operating condition detected by said first means; (e) fifth means for learning a retardation angle correction amount by which the set basic ignition timing angle is corrected toward a retardation angle side so as to suppress the engine knocking when the second means detects the occurrence of engine knocking as that corresponds to the similar engine operating region and storing a learning value of the retardation angle correction amount into a predetermined memory area allocated according to the corresponding engine operating region; (f) sixth means for reading the learning value as the retardation angle correction amount when the engine operating region is changed to a predetermined engine operating region from the predetermined area in said fifth means; (g) seventh means for calculating the retardation angle correction amount on the basis of the retardation angle correction amount read by the sixth means and depending on whether the engine knocking occurs in at least one of the cases when the engine operating region remains unchanged and when the engine operating region is changed to the predetermined operating region; and (h) eighth means for producing an ignition signal upon the receipt of which air-fuel mixture supplied to the engine is ignited at a timing of the set basic ignition timing angle which is corrected by the retardation angle correction amount calculated by the seventh means.