NepřihlášenKSP fórum
Fórum Hlavní stránka Nápověda Hledat Přihlásit
Nahoru Téma KSP / Úložky / 30-1-7 Assembler
- - Od rasic Dne 01. 11. 2017 22:04
Ahoj,
myslím si, že v ukázce kódu počítajícího součin čísel chybí jeden řádek.
Následkem toho se r0 násobí nulou a r1 je po průchodu cyklem záporné - program se zacyklí.
Navíc i po přidání tohoto řádku bude program fungovat jen pro r0 > 1 (bez rovnosti).

  MOV   r0, #2
  SUB r1, r0, #1 @ <-- chybějící řádek
cyklus:
  MUL   r0, r1 
  SUBS  r1, #1
  BNE   cyklus  @ skoč, pokud r1 není 0.

Díky,
Ondra
Nadřazený - Od Karolína Karryanna Hořeňovská (Org) Dne 01. 11. 2017 22:16
Ahoj,

> myslím si, že v ukázce kódu počítajícího součin čísel chybí jeden řádek.
> Následkem toho se r0 násobí nulou a r1 je po průchodu cyklem záporné - program se zacyklí.


přísně vzato tam nechybí, v odstavečku nad kódem je poznámka "(pokud je
r1 >= 1)". To se může stát tak, že před počítáním do r1 něco uložíme (jak
ukazuješ Ty), ale také to tam může být „nějak“ z dřívějška.

Ovšem souhlasím, že ta poznámka není zrovna nápadná a že je snadné pokusit
se jen pustit kód, a tím se na předpoklad nachytat.
Nahoru Téma KSP / Úložky / 30-1-7 Assembler

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill