【问题标题】:What is wrong with this line of Lc3 code?这行 Lc3 代码有什么问题?
【发布时间】:2015-05-12 00:30:34
【问题描述】:

我正在做一个练习题。

问题是

这行 LC3 代码有什么问题吗? (星号线)

ADD R3, R3, 0;
**BRNZ ISPOS;**
HALT
.BLKW 250
ISPOS NOT R3, R3 ....

我看到加星号的行是Branch,条件代码是负数和零,如果条件代码是负数或零,基本上转到标签 ISPOS,否则停止程序。

我会说这行 LC3 代码没有任何问题。有人发现它有什么问题吗?

【问题讨论】:

  • 由于您只有 9 位可用的偏移量,因此处于可到达范围的边缘,但应该勉强适合。我看不出有什么问题。
  • 汇编器对“nz”标志是否区分大小写?我在网上看到的每个例子都有小写字母,就像 BRnz 一样。
  • @Gene 只对标签区分大小写。
  • @Gene 是的,这也引起了我的注意,但是当我组装代码时,没有错误。所以我猜条件代码不区分大小写

标签: assembly cpu-registers computer-architecture machine-code lc3


【解决方案1】:

是的,这个代码段有几个不同的错误。

操作码前面只能有标签。

**BRNZ ISPOS;**

必须变成:

BRNZ ISPOS;**

操作数后面不能有任何随机字符,除非它们被注释掉

ISPOS NOT R3, R3 ....

必须改为:

ISPOS NOT R3, R3 ;....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 2018-09-09
    相关资源
    最近更新 更多