Оптимальні програми обчислення виразів
Оптимальні програми обчислення виразів
Тип документу: Курсова
Сторінок: 28
Предмет: Математика
Автор: Орос Володимир
Розмір: 46.4
Скачувань: 1317
Else
EmitLn('MOV ' + GetNum + ',AX');
End;
Procedure Multiply;
Begin
Match('*');
Factor;
EmitLn('POP DX');
EmitLn('MUL AX,DX');
End;
Procedure Divide;
Begin
Match('/');
Factor;
EmitLn('POP DX');
EmitLn('DIV DX,AX');
EmitLn('MOV DX,AX');
End;
Procedure Term;
Begin
Factor;
While Look In ['*', '/'] Do Begin
EmitLn('PUSH AX');
Case Look Of
'*': Multiply;
'/': Divide;
End;
End;
End;
Procedure Add;
EmitLn('MOV ' + GetNum + ',AX');
End;
Procedure Multiply;
Begin
Match('*');
Factor;
EmitLn('POP DX');
EmitLn('MUL AX,DX');
End;
Procedure Divide;
Begin
Match('/');
Factor;
EmitLn('POP DX');
EmitLn('DIV DX,AX');
EmitLn('MOV DX,AX');
End;
Procedure Term;
Begin
Factor;
While Look In ['*', '/'] Do Begin
EmitLn('PUSH AX');
Case Look Of
'*': Multiply;
'/': Divide;
End;
End;
End;
Procedure Add;