用户控制的三角形网格尺寸由汇编语言中的*组成

时间:2016-02-03 23:28:03

标签: loops assembly machine-language

输入网格大小(1-9):3

*

**

*** 

这是我到目前为止的代码:

.ORIG x3000


        LEA  R0, PRINT

        LEA  R1, MEMSPAC
        PUTS
        GETC
        PUTC
M       STR  R0, R1, #0
N       .FILL M
        LD   R1, N       
        NOT  R1, R1

        ADD  R1, R1, #1   ; R1 = -N


        AND  R2, R2, #0   ; R2 = holds number of *'s to be printed



LOOPA   LEA  R0, NEWLN


        PUTS    


        ADD  R3, R2, R1   ; while (R2 < N)


        BRzp LOOPB      
        ADD  R5, R5, #1   ;


        ADD  R4, R4, #1


LOOPC   LD   R0, STAR     ; R0 = *


        OUT               ; Write *

        ADD  R5, R5, #-1
        BRp  LOOPC
        ADD  R5, R4, #0
        ADD  R2, R2, #1 ;

        BRnzp    LOOPA
LOOPB   
        LEA  R0, NEWLN


        PUTS            

        STOP    HALT        

STAR    .FILL    x2A

RIP     TRAP x25

PRINT   .STRINGZ "Enter grid size (1-9):"

NEWLN   .STRINGZ "\n"

MEMSPAC .blkw 100
        .END

此代码有效并打印三角形。然而,它进入无限循环而不是打印3的网格大小。如果我更改代码&#34; N .FILL M&#34;到&#34; N .FILL 3&#34;它将打印出网格大小为3.任何帮助将不胜感激。感谢

0 个答案:

没有答案