Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 显示输入了多少正数和负数_Algorithm_Loops_Little Man Computer - Fatal编程技术网

Algorithm 显示输入了多少正数和负数

Algorithm 显示输入了多少正数和负数,algorithm,loops,little-man-computer,Algorithm,Loops,Little Man Computer,我正试图写一个小的计算机程序,输出我有多少正数和我有多少负数,但它认为负数也是正数 这就是我到目前为止所做的: LOOP IN STO NUM BRZ END BRP POS POS LDA ZERO ADD UN STO ZERO END LDA ZERO OUT BR LOOP HLT NUM DAT 000 UN DAT 001 ZERO DAT 000 规范不支持为LMC提供负输入。LM

我正试图写一个小的计算机程序,输出我有多少正数和我有多少负数,但它认为负数也是正数

这就是我到目前为止所做的:

LOOP IN 
     STO NUM
     BRZ END
     BRP POS
POS  LDA ZERO 
     ADD UN 
     STO ZERO 
END  LDA ZERO
     OUT 
     BR LOOP
     HLT
NUM  DAT 000
UN   DAT 001
ZERO DAT 000

规范不支持为LMC提供负输入。LMC内存单元只能保存0到999之间的值(来源:)。“负”的唯一概念由LMC的标志表示。该标志仅由执行
ADD
SUB
设置,因此不由
INP
/
IN
LDA
STA
/
STO
设置(拼写不同)。也见伊恩!艾伦在书中讨论了这个令人困惑的概念

这实际上意味着您的
BRP
指令将始终分支到提供的标签

您可能会发现模拟器实际上允许负输入,但这将是对原始规范的扩展

现在,您的代码在这条
BRP POS
指令中也有问题,因为它只是跳转到下一行(标记为
POS
),所以实际上
BRP
是否分支没有任何区别:这是一个no操作

类似的练习

负值在LMC中并不存在,让我们做一点不同的练习:考虑输入在10’s补码中出现,这样500…999被认为是负值(即-500…-1)。或者,当您执行

INP
时,有符号的输入值实际上将存储在10的补码中。然后计算小于500(正)和不小于500(当解释为10的补码时为负)的输入数

LOOP-INP
BRZ饰面
子比较
BRP其他
LDA较少
加一
无斯塔
文胸环
要不然我就不知道了
加一
STA NOTLESS
文胸环
完成LDA更少
出来
利达诺利斯酒店
出来
HLT
减DAT
不少于DAT
比较DAT 500
一个DAT 1

上述程序的输出是什么,基本上您需要编写一个解析器来解析您的命令并找出output@zenwraight这是一个可接受的模拟器吗?据我所知,用小人电脑是无法输入负数的,只能定义0…999范围内的值。