Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

meomauro

programa assembly

Recommended Posts

oi! preciso de resolver um problema para terminar uma formaçao mas nao percebo nada de programação assembly. alguem me pode ajudar?!

 

o problema consiste em:

 

escrever um programa em assembly que coloque por ordem decrescente os conteudos de seis posições de memoria. o bloco de memoria tem inicio na posição 1020H.

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pesquisou algo sobre a linguagem..

não entendo de assembly, + creio q naum deve ser dificil, o programa pede pouca coisa.

c você c esforçar em procurar e tentar fazer, eu tento tbm, ai a gente aprende junto http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

1020H = 1020h = 0x1020 ??

 

Assembly de MIPS. É menos complicado de entender do que o da Intel. É o algoritmo de ordenação por inserção (provavelmente errado porque estudei assembly no segundo período,então faz tempo).

 

addi $s1, $0, 1 # $s1 = 1
addi $t2, $0, $0
addi $s6, $0, $0

for_1:
stl $t0, $s1, 5
beq $t0, 1, fim
mul $t1, $s1, 4
addi $t2, $t2, $t1
lw $s3, $t2(1020) # $s3 = mem[i]

while:
   addi $s4, $s1, -1 # j = i -1
   slt $t0, $s4, $0
   beq $t0, 1, fim_while

   mul $s5, $s4, 4
   addi $s6, $s6, $s5
   lw $s7, $s6(1020) # $s7 = mem[j]

   sgt $t2, $s7, $s3
   bne $t2, 1, fim_while

   addi $s8, $s4,1
   sw $s7, $s8(1020) # mem[j+1] = mem[j]
   addi $s4, $s4, -1
   jmp while

   fim_while:
	  sw $s3, $s8(1020)
	  addi $s1, $s1,1
	  jmp for_1

fim:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.