• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Asembler pod MIPS

0 głosów
251 wizyt
pytanie zadane 1 grudnia 2023 w Assembler przez hutsalo1998 Użytkownik (540 p.)

Mam do policzenia wartości pobrane od użytkownika według podanego niżej wzoru:

A+2B-5. Kod wygląda tak:

	.data
msg1: .asciiz  "Podaj liczbe A: \n"
answer: .asciiz  "Wprowadzona liczba to: \n"
msg2: .asciiz  "Podaj liczbe B: "
answer2: .asciiz "Wprowadzona liczba to: \n"
result: .asciiz "Wynik"

	.text
main:
	li $v0, 4
	la $a0, msg1
	syscall
	
	li $v0, 5
	syscall 
	move $s0, $v0
	
	li $v0, 4
	la $a0, answer
	syscall
	
	li $v0, 1
	move $a0, $s0
	syscall 
	
	li $v0, 4
	la $a0, msg2
	syscall
	
	li $v0, 5
	syscall 
	move $s0, $v0
	
	
	li $v0, 4
	la $a0, answer2
	syscall
	
	li $v0, 1
	move $a0, $s0
	syscall 
	
	add $t0, $a0, $a0 #$t0, 2B
	add $s0, $a0, $t0 #A + 2b
	
	li $v0, 4
	la $a0, result
	syscall
	
	li $v0, 1
	move $a0, $s0
	syscall 
	
	
	li $v0, 10
	syscall

Dane wyjściowe, które generuje mi ten program są nieprawidłowe:

A tutaj rozwiązanie tego samego problemu tylko nieco inaczej napisane:

.data
	labelA: .asciiz "Podaj luczbe A:"
	labelB: .asciiz "Podaj luczbe B:"
	labelC: .asciiz "Wynik: "

.text
	main:
	
	## Print first message  ##
	la $a0, labelA
	li $v0, 4
	syscall
	
	#Read first number
	li $v0, 5
	syscall
	move $s0,$v0
	
	## Print second message  ##
	la $a0, labelB
	li $v0, 4
	syscall
	
	#Read second number
	li $v0, 5
	syscall
	move $s1,$v0
	
	add $t1, $s1, $s1 #2B $t1
	
	add $s2, $s0, $t1 # A + 2B $s2
	
	
	## Print resust message  ##
	la $a0, labelC
	li $v0, 4
	syscall
	
	# Print result #
	move $a0, $s2
	li $v0, 1
	syscall
	
	
	
	
	
	

a tutaj dane wynikowe dla tych samych danych wejściowych:

i czemu są takie rozbieżności?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 793 wizyt
pytanie zadane 9 listopada 2019 w Assembler przez julka97 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 978 wizyt
pytanie zadane 12 maja 2020 w Assembler przez evela Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 609 wizyt
pytanie zadane 8 grudnia 2019 w Assembler przez Vlad Nowicjusz (120 p.)

93,778 zapytań

142,737 odpowiedzi

323,388 komentarzy

63,382 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...