Question: Some computer instruction sets permit arithmetic instructions with three operands. Such operations sometimes appear in simple virtual assemblers used to introduce students to the concept
Some computer instruction sets permit arithmetic instructions with three operands. Such operations sometimes appear in simple virtual assemblers used to introduce students to the concept of assembly language or using intermediate language in compilers. In the following macros, assume EAX is reserved for macro operations and is not preserved. Other registers modified by the macro must be preserved. All parameters are signed memory doublewords. Write macros that simulate the following operations:
a. add3 destination, source1, source2
b. sub3 destination, source1, source2 (destination = source1 - source2)
c. mul3 destination, source1, source2
d. div3 destination, source1, source2 (destination = source1 / source2)
For example, the following macro calls implement the expression x = (w + y) * z:
.data temp DWORD ?
.code add3 temp, w, y ; temp = w + y mul3 x, temp, z ; x = temp * z Write a program that tests your macros by implementing four arithmetic expressions, each involving multiple operations.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
