Вы не предоставили достаточно кода, чтобы дать полный ответ, но есть несколько способов пропустить печать последней вкладки:
Если вы знаете, что обрабатываете последний элемент, вы можете перепрыгнуть через вкладку печати код, например, предположим, что вы находитесь в while-l oop, где вы l oop, а $t0
отличается от $t1
, тогда вы можете написать:
while_loop:
# .... do something
beq $t0, $t1, skip
# your code to print tab
li $v0, 11 #this is for tabbing the numbers
li $a0, 9
syscall
skip:
# ... something else
bne $t0, $t1 while_loop % this is the condition to keep in the loop
, если печать вкладки - это последнее, что вы делали в l oop, тогда вы можете немного упростить:
while_loop:
# .... do something
beq $t0, $t1, while_loop
# your code to print tab
li $v0, 11 #this is for tabbing the numbers
li $a0, 9
syscall
b while_loop
Другой подход - распечатать вкладку в начале l oop, за исключением первой итерации. Полезно, если вы перебираете некоторые значения в регистре и знаете, что какое-то начальное значение не будет повторяться. В этом примере я просто буду использовать предположительно запасной регистр:
li $t7, 0 # $t7 will only have 0 on the first iteration of the loop
while_loop:
beq $t7, $zero, skip
# your code to print tab
li $v0, 11 #this is for tabbing the numbers
li $a0, 9
syscall
skip:
li $t7, 1
% your remaining code here, which at some point goes to the while_loop