首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >汇编语言并发循环

汇编语言并发循环
EN

Stack Overflow用户
提问于 2014-12-15 05:57:34
回答 2查看 1.1K关注 0票数 2

我一直致力于编写一个编译成汇编语言的编译器。我的时间循环有问题。无论我在我的原始程序中多么简单,它们总是给我分段错误。

下面是我正在编译成汇编语言的程序的代码:

代码语言:javascript
复制
start
    start
        int x.
        x = 0.
        repeat[x <= 5] //while x is less than or equal to 5 print out x
        start
            print x. 
        finish
    finish
finish

下面是生成的汇编语言代码:

代码语言:javascript
复制
PUSH
LOAD x
STACKW 0
LOAD 0
STACKW 0

L0:
LOAD 5
STORE V0
STACKR 0
SUB V0
BRPOS L1

STACKR 0
STORE V1
WRITE V1

BR L0
L1: NOOP
POP

STOP
V0 0
V1 0
x 0

这个逻辑在我看来是正常的,但是当我运行这个汇编语言代码时,我遇到了一个分段错误。有人能告诉我是什么原因造成的吗?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-31 20:04:20

结果,我只需要把NOOP放在"L0:“之后,这就消除了分割错误,并正确地工作了。因此,最后的计划如下:

代码语言:javascript
复制
PUSH
LOAD x
STACKW 0
LOAD 0
STACKW 0

L0: NOOP
LOAD 5
STORE V0
STACKR 0
SUB V0
BRPOS L1

STACKR 0
STORE V1
WRITE V1

BR L0
L1: NOOP
POP

STOP
V0 0
V1 0
x 0
票数 0
EN

Stack Overflow用户

发布于 2014-12-21 16:35:50

没有对说明的任何解释,这是很难回答的。

但是..。

我没有看到任何ADD's;那么如何增加显示的值呢?

还有..。

循环的每一次迭代都是从LOAD 5开始的。难道不应该把它放在循环的外部/前面吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27478188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档