首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HLA高级汇编连续循环

HLA高级汇编连续循环
EN

Stack Overflow用户
提问于 2013-03-30 05:49:35
回答 1查看 1.1K关注 0票数 0

这个问题希望循环输入中的一个小数,直到只剩下一个数字。然而,一旦第一个循环达到0,它应该从第一个数字减1开始再次循环,如下所示,

代码语言:javascript
复制
Input decimal for loop: 4
Your loop result is: 4321 321 21 1

或,

代码语言:javascript
复制
Input decimal for loop: 6
Your loop result is: 654321 54321 4321 321 21 1

我现在有了,

代码语言:javascript
复制
DoWhileLoop:
DoWhileBody:
    stdout.put( " I => ", I );
    dec( I );
DoWhileTermination:
    cmp( I, 0 );
    jng DoWhileLoopDone;
    jmp DoWhileLoopBody;
DoWhileLoopDone:  

如果输入为4,则打印,

代码语言:javascript
复制
I => 4 I => 3 I => 2 I => 1

我已经尝试了一个嵌套的for循环,以获得所需的连续性,但我不知道如何在不使computer...help崩溃的情况下增加它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-30 09:44:20

解决了。我需要一个内部循环和第二个变量(J)来传递这个值。像这样(伪代码),

代码语言:javascript
复制
myWhileLoop:
myWhileLoopTermination:
    cmp( Y, 0 );
    jng WhileLoopDone;
myWhileLoopBody:

// Inner for loop goes in the body

    innerForLoop:
    InitializeinnerForLoop:        
    // Passing value of Y to Z
        mov( Y, Z );
    innerForLoopTerminationTest:
        cmp( Z, 0 );
        jng innerForLoopDone;
    innerForLoopBody:
        stdout.put( Z );
    innerForLoopDecrement:
        dec( Z );
        jmp innerForLoopTerminationTest;
    innerForLoopDone:

    dec( Y );
    jmp myWhileLoop;
myWhileLoopDone: 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15711949

复制
相关文章

相似问题

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