我使用来自这个站点的 MMIX:http: //mmix.cs.hm.edu/ 我使用这段代码让控制台打印“Hello World”“times”次:
times IS 3
msg BYTE "Hello World",#A,0
Main GETA $255,msg
SET $91,times
MUL $91,$91,2
SUB $91,$91,1
TRAP 0,Fputs,StdOut
BP $91,@-8
TRAP 0,Halt,0
我想知道为什么这只产生 3 个。查看代码,因为我乘以 3,它应该打印 Hello World 3 次。然而,经过仔细检查,我注意到“00000701 (TRAP) $255 = Fputs(StdOut,#c) = 0”和“00000701 (TRAP) $255 = Fputs(StdOut,#0) = 12”会交替出现。我以为这是原因。但是为什么会这样呢?
我对用这种语言编码非常陌生,所以请在术语上放轻松。