Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Air-Gear

Dúvidas em 2 exercícios de Assembly

Recommended Posts

Olá pessoal!

O primeiro exercício pede que imprima uma mensagem solicitando ao usuário que digite uma tring, instale a string na memória eimprima novamente a string digitada. Aqui está o programa:

.data

str1: .asciiz "Digita uma string: "

.text

main: la $a0,str1

li $v0,4

syscall #Imprime a str1

li $v0,4

syscall

move $t0,$v0 #Lê a string

move $a0,$t0

li $v0,1

syscall #imprime o resultado

li $v0,4

syscall

move $t3,$v0 #Usada função de leitura de número somente como parada de tela

li $v0,10 #encerra o programa

syscall

O program até rodou mas não apareceu a mensagem pedindo a string. Eu abri o console e não deu em nada.

O segundo exercício pede que imprima mensagens solicitando a entrada de dois vetores de 5 números cada, instale os dados na memória procurando com-os com words, realize a multiplicação vetorial e imprima o resultado.

Esse é o programa:

.data

str1: .asciiz "Digite o 1o. numero:"

str2: .asciiz "Digite o 2o. numero:"

str3: .asciiz "O resultado da Multiplicação é:"

.text

main:

la $a0,str1

li $v0,4

syscall #imprime a 1a. string

li $v0,5

syscall

move $t0,$v0 #Lê o 1o. número

sw $t0,0($s0)

sw $t0,4($s0)

sw $t0,8($s0)

sw $t0,12($s0)

sw $t0,16($s0)

la $a0,str2

li $v0,4

syscall #imprime a 2a. string

li $v0,5

syscall

move $t1,$v0 #Lê o 2o. número

sw $t1,0($s1)

sw $t1,4($s1)

sw $t1,8($s1)

sw $t1,12($s1)

sw $t1,16($s1)

lw $t0,0($s0) # $t0= palavra[vet1+0]

lw $t1,0($s1) # $t1= palavra[vet2+0]

mul $s4,$t0,$t1 # $s4= $t0 x $t1

lw $t0,4($s0) # $t0= palavra[vet1+4]

lw $t1,4($s1) # $t1= palavra[vet2+4]

mul $t0,$t0,$t1 # $t0= $t0 x $t1

add $s4,$s4,$t0 # $s4= $s4 + $t0

lw $t0,8($s0) # $t0= palavra[vet1+8]

lw $t1,8($s1) # $t1= palavra[vet2+8]

mul $t0,$t0,$t1 # $t0= $t0 x $t1

add $s4,$s4,$t0 # $s4= $s4 +$t0

lw $t0,12($s0) # $t0= palavra[vet1+12]

lw $t1,12($s1) # $t1= palavra[vet2+12]

mul $t0,$t0,$t1 # $t0= $t0 +$t1

add $s4,$s4,$t0 # $s4= $s4 +$t0

lw $t0,16($s0) # $t0= palavra[vet1+16]

lw $t1,16($s1) # $t1= palavra[vet2+16]

mul $t0,$t0,$t1 # $t0= $t0 +$t1

add $s4,$s4,$t0 # $s4= $s4 +$t0

la $a0,str3

li $v0,4

syscall #imprime a 3a. string

move $a0,$s4

li $v0,1

syscall #imprime o resultado

li $v0,5

syscall

move $t3,$v0 #Usada função de leitura de número somente como parada de tela

li $v0,10 #encerra o programa

syscall

Antes eu fiz com dois números e deu certo, depois eu modifiquei para imprimir com vetores com 5 números cada e programa rodou, mas~funciona até a hora de pedir os primeiors números.

Alguém pode me ajudar? Desde já agradeço a ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×