Files
erkyrath.infocom-zcode-terps/ibm/mathops.ezp
Andrew Plotkin b642da811e Initial commit.
2023-11-16 18:19:54 -05:00

37 lines
722 B
Plaintext

SUBTTL ARITHMETIC OPERATIONS
PAGE +
PUBLIC OPADD,OPSUB,OPMUL,OPDIV,OPMOD
;ADD
OPADD PROC
ADD AX,BX ;ADD OPR1 AND OPR2
JMP PUTVAL ;RETURN THE VALUE
OPADD ENDP
;SUB
OPSUB PROC
SUB AX,BX ;SUBTRACT OPR2 FROM OPR1
JMP PUTVAL ;RETURN THE VALUE
OPSUB ENDP
;MULTIPLY AX BY BX
OPMUL PROC
IMUL BX ;MULTIPLY OPR1 BY OPR2,IGNORING OVERFLOW(DX)
JMP PUTVAL ;RETURN THE VALUE
OPMUL ENDP
;DIVIDE AX BY BX
OPDIV PROC
CWD ;CLEAR HIGH WORD AND EXTEND SIGN FOR DIVIDE
IDIV BX ;DIVIDE OPR1 BY OPR2
JMP PUTVAL ;RETURN THE VALUE
OPDIV ENDP
;MOD
OPMOD PROC
CWD ;CLEAR HIGH WORD AND EXTEND SIGN FOR DIVIDE
IDIV BX ;DIVIDE OPR1 BY OPR2
MOV AX,DX ;WE WANT REMAINDER
JMP PUTVAL ;RETURN THE VALUE
OPMOD ENDP