In the book The Art of Computer Programming Volume 1, third edition, I'm having some hard time understanding the meaning of the following MIX assembly language instruction: ENT1 *
, which appears on page 189 of the book.
(p.189) For example, if we wanted to make the calling sequence for
MAXN
beJMP MAXN CON n
then the subroutine could be written as follows:
MAXN STJ *+1 ENT1 *
What I've figured out so far is that the following line
MAXN STJ *+1
stores the address of the memory where the constant n
is stored to the [0:2] field of the memory location where the instruction ENT1 *
is stored.
Therefore, I'm guessing here that the following line
ENT1 *
is supposed to load the value of [0:2] field of the memory location where the instruction ENT1 *
is stored to register I1
.
However, the meaning of asterisk(*
), as stated in the text book is:
(p.146) An asterisk (read "self") refers to the location of the line on which it appears.
So, shouldn't ENT1 *
just store the address of the memory location where the instruction ENT1 *
is stored to register I1
?