Loops 由*和#x27;汇编语言中的
输入栅格大小(1-9):3 以下是我目前掌握的代码:Loops 由*和#x27;汇编语言中的,loops,assembly,machine-language,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 = -
.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
.ORIG x3000
LEA R0,打印
LEA R1,MEMSPAC
放
GETC
普茨
M STR R0,R1,#0
填充
LD R1,N
不是R1,R1
加上R1,R1,#1;R1=-N
R2,R2,#0;R2=保存要打印的*的数量
LOOPA LEA R0,NEWLN
放
添加R3、R2、R1;而(R2
这段代码可以工作并打印三角形。但是,它会进入一个无限循环,而不是打印网格大小3。如果我将代码“N.FILL M”更改为“N.FILL 3”,它将打印出3的网格大小。任何帮助都将不胜感激。谢谢您的体系结构和汇编程序是什么?这真的是一个无限循环,不是一个大约x3000次的循环吗?对不起,我使用的是LC3汇编程序,在你看来,
N.FILL m
应该做什么?
.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