mirror of
https://github.com/erkyrath/infocom-zcode-terps.git
synced 2026-02-08 01:01:24 +00:00
37 lines
722 B
Plaintext
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
|