首页 > 解决方案 > 如何在 LC3 中设置 if/else 条件的同时遍历数组

问题描述

我正在编写一些代码,目的是遍历从 0 到 99 的素数数组,如果在数组中找到用户输入,则返回“1”。否则返回“0”。这是我不想让我的程序做的一些伪代码:

Array = [all prime numbers from 0-99]
if userinput = Array[i]:
    print "1"
else:
    print "0"

就 LC3 而言,这是我到目前为止所做的:

.ORIG x3000
LD R2, PRIMENUMBERS   

PRIMENUMBERS .fill x6000

.orig x6000
.fill 2
.fill 3
.fill 5
.fill 7
.fill 11
.fill 13
.fill 17
.fill 19
.fill 23
.fill 29
.fill 31
.fill 37
.fill 41
.fill 43
.fill 47
.fill 53
.fill 59
.fill 61
.fill 67
.fill 71
.fill 73
.fill 79
.fill 83
.fill 89
.fill 97

.END

我似乎无法理解如何遍历数组中的元素,也不知道如何制作 if/else 语句,包括如何接收用户输入。

任何帮助表示赞赏!

标签: arraysloopsif-statementinputlc3

解决方案


您的伪代码需要包含一个循环。i例如什么?

建议用 C 编写您的算法/伪代码并对其进行测试以确保其正常工作——调试设计缺陷或汇编中的算法缺陷需要大量工作。(换句话说,很难将损坏的伪代码带到汇编语言中。)而其他语言提供的功能使得更难看到需要用汇编语言做什么。

将伪代码翻译成汇编语言时,首先翻译所有变量,然后处理代码。

控制结构,如循环、if-then-else 语句等。嵌套在高级语言中,尽管它们扩展到多行和标签,并且没有 {} 和/或缩进。

当我们在 for 循环中嵌套了 if 语句时,我们可以先翻译 if 语句或先翻译 for 循环——没关系。只需保持方向,使完整的 if 语句嵌套在循环体中,就像在 C 中一样。


推荐阅读