Análise de pequenos exemplos em assembly

 

Exercícios

 

a) Dado um valor passado como parâmetro (reg0), somar 1 unidade se fôr menor que 0, senão subtrair uma unidade.

 

		Comparar reg0, 0
		SaltarSeMaior Senão
		Adicionar reg0, reg0, 1
		Saltar Fim
	Senão:
		Subtrair reg0, reg0, 1
	Fim:
		Terminar

 

Comentários

 

 

Escrever em C

 

 


b) Dado um valor passado como parâmetro (reg0), calcular a soma de todos os valores entre 1 e reg0.

 

		Carregar reg1, 0
	Ciclo:
		Comparar reg0, 0
		SaltarSeIgual Fim
		Adicionar reg1, reg1, reg0
		Subtrair reg0, reg0, 1
		Saltar Ciclo
	Fim:
		Terminar

 

Comentários

 

 

Escrever em C


c) Dado um valor passado como parâmetro (reg0), somar-lhe uma unidade se for menor que 0, subtrair uma unidade se for maior que 0. Repetir até ser igual a 0.

 

	Ciclo:
		Comparar reg0, 0
		SaltarSeIgual Fim
		Comparar reg0, 0
		SaltarSeMaior Senão
		Adicionar reg0, reg0, 1
		Saltar Ciclo
	Senão:
		Subtrair reg0, reg0, 1
		Saltar Ciclo
	Fim:
		Terminar

 

Comentários

 

 

Escrever em C

 


d) Copie um vector de inteiros diferentes de 0 para outro vector e calcule a dimensão do vector copiado. O vector termina com o valor 0. As localizações em memória dos vectores são passadas como parâmetros (reg0 e reg1).

 

		Carregar reg2, 0
	Ciclo:
		Carregar reg3, (reg0)
		Comparar reg3, 0
		SaltarSeIgual Fim
		Guardar reg3, (reg1)
		Adicionar reg0, reg0, 1
		Adicionar reg1, reg1, 1
		Adicionar	reg2, reg2, 1
		Saltar Ciclo
	Fim:
		Terminar

 

Comentários

 

Escrever em C