<<< Implementation Overview | Index | What to Submit >>> |
Examine C++ code and the m13_calculator.asm source file.
There is a call_table in the data segment. It stores addresses of the handler procedures.
Although procedure bodies are already defined in m13_calculator.asm, the prototype stores zeros in the call_table for yet unfinished procedures. This causes display of "unimplemented" message when the user enters an operator corresponding to an unfinished procedure.
As you start working on the procedure implementation, do not forget to remove the zero from the call_table. For example, before writing code for the binary_minus procedure, remove "0 ;" from the call_table, so that the actual address is stored in the table.
call_table DWORD OFFSET binary_plus
DWORD OFFSET binary_minus
DWORD 0 ; OFFSET binary_multiply
DWORD OFFSET binary_divide
DWORD 0 ; OFFSET binary_modulo
DWORD 0 ; OFFSET binary_assign
If you forget to remove zeros, the procedures are not invoked. Examine the m13_calculate procedure for details.
NOTE: each unimplemented operator will result in 15 pts deduction from your M13 grade.
<<< Implementation Overview | Index | What to Submit >>> |