программа завершена (опущена внизу), в текстовом сегменте ничего не отображается

Пытаюсь заставить эту строку кода работать в MIPS, но я продолжаю получать эту ошибку

-- program is finished running (dropped off bottom) --

и ничего не появляется в «Текстовом сегменте»

    .data
main:

li $v0, 10

li $t4,111
li $t5,101
li $t6,50

add $t3, $t4, $t5
sub $t3, $t3, $t6

li $v0, 1
syscall
.text

person Kenneth.Curtis    schedule 08.02.2015    source источник
comment
что этот код должен делать?   -  person Marcus Müller    schedule 08.02.2015
comment
Разве вы не предполагаете помещать значение печати в $ a0? move $a0, $t3, затем li $v0, 1, а затем syscall?   -  person Severin Pappadeux    schedule 08.02.2015
comment
и еще - я бы сказал, что вы перепутали .text и .data порядок. Должен быть сегмент .text, затем main: и остальная часть кода, затем сегмент .data и любые данные, которые вам нужны   -  person Severin Pappadeux    schedule 08.02.2015


Ответы (1)


Ваш Main должен быть под .text, а строка li $v0, 10 — это номер системного вызова для завершения программы, поэтому он должен быть в конце.

Чтобы распечатать свой ответ, вам нужно вызвать функцию печати и переместить вычисленное значение в регистр. Вот правильный рабочий код.

.data
.text
.globl main

main:

li $t4,111
li $t5,101
li $t6,50


add $t3, $t4, $t5
sub $t3, $t3, $t6

li $v0, 1          # print int
move $a0, $t3      
syscall

li $v0, 10         # exit
syscall
person Sahar Mirza    schedule 27.03.2021