[ Príspevkov: 7 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Pomoc s assemblerom...

Registrovaný: 26.06.05
Prihlásený: 11.03.11
Príspevky: 5
Témy: 1 | 1
NapísalOffline : 11.03.2011 12:47 | Pomoc s assemblerom...

Dobry den chcem sa spytat ci je tu niekto kto by mi vedel pomoct s assemblerom...
assembler ako taky chapem,len neviem sa dostat cez jeden problem a ten je nasledovny

Nech má počítač nasledovné inštrukcie:
MOV <zdroj>, <destinacia>
SUB r1,r2
ADD r1,r2
JZ <adresa>
STOP
Napiste program v assembleri, ktory scita tri cisla na adresach a1 az a3 a odcita od nich sumu cisel na adresach a4 a a5. Porovna vysledok s cislom na adrese a5. a v pripade ak tento vysledok je rovny nule ulozi na adresu a6 obsah registra r1 ak nie tak obsah registra a2. po vykonani tychto instrukcii sa program zastavi...

no a problem nastava tu,presuny,scitanie,a odcitanie spravit viem ale neviem ako mam spravit to podovnanie a zistit ci je to nula,alebo nie... je tu niekto kto by mi to vedel vysvetlit ?

Dakujem za kazdu odpoved...


Offline

Skúsený užívateľ
Skúsený užívateľ
Pomoc s assemblerom...

Registrovaný: 11.01.09
Prihlásený: 12.01.20
Príspevky: 1290
Témy: 9 | 9
Bydlisko: HE
NapísalOffline : 11.03.2011 13:05 | Pomoc s assemblerom...

Na porovnavanie sa pouziva isntrukcia CMP ( ak sa bavime o 8086 platforme ):
Citácia:
CMP <A1>, <A2>

Od A1 sa odcita A2 a nastavia sa registre priznakov ( vysledok sa ale nikde neulozi! ). Cize ak je vysledok nula ( vysledok odciatnia jedneho cisla od takeho isteho cisla je nula ), register ZF ( zero flag ) sa nastavi na nulu. A tento stav sa zistuje pomocou instrukcie JZ. Ak je ZF rovny nule, skoc na navestie urcene v instrukcii JZ:
Citácia:
JZ <navestie>


Ak ale nemas k dispozicii tuto instrukciu, musis pouzit instrukciu SUB, ale pri tejto sa prepise premenna A1, takze si musis vytvorit kopiu tejto premennej a tu podat instrukcii SUB.


Offline

Užívateľ
Užívateľ
Pomoc s assemblerom...

Registrovaný: 26.06.05
Prihlásený: 11.03.11
Príspevky: 5
Témy: 1 | 1
Napísal autor témyOffline : 11.03.2011 13:17 | Pomoc s assemblerom...

dakujem, takze ked to spravne chapem moze to byt neako takto?
ADD a1,a2,a3
SUB a4,a5
JZ AX
STOP


v zadani som mal este pri instrukcii JZ napisane: ak je vysledok preschadzajucej operacie rovny nule,skok na adresu AX

takze mi to vychadza ze by to malo byt dobre


Offline

Skúsený užívateľ
Skúsený užívateľ
Pomoc s assemblerom...

Registrovaný: 11.01.09
Prihlásený: 12.01.20
Príspevky: 1290
Témy: 9 | 9
Bydlisko: HE
NapísalOffline : 11.03.2011 13:36 | Pomoc s assemblerom...

majosisk píše:
ADD a1,a2,a3


Takto nie. Instrukcia ADD moze mat maximalne dva parametre. Ak chces spocitat tri cisla, tak takto:
Kód:
ADD a1, a2      ; vysledok je ulozeny v a1
ADD a1, a3      ; celkovy vysledok je opat ulozeny v a1


Offline

Užívateľ
Užívateľ
Pomoc s assemblerom...

Registrovaný: 26.06.05
Prihlásený: 11.03.11
Príspevky: 5
Témy: 1 | 1
Napísal autor témyOffline : 11.03.2011 14:09 | Pomoc s assemblerom...

aha dakujem, takze po spravnosti...
ADD a1,a2
ADD a1,a3
SUB a4,a5
JZ ax
STOP
?
dakujem pekne ...


Offline

Skúsený užívateľ
Skúsený užívateľ
Pomoc s assemblerom...

Registrovaný: 11.01.09
Prihlásený: 12.01.20
Príspevky: 1290
Témy: 9 | 9
Bydlisko: HE
NapísalOffline : 11.03.2011 14:28 | Pomoc s assemblerom...

Aha, ty to uz chces cele skontrolovat. Tak potom to je este stale zle :)

Kód:
; scitanie a1 az a3
ADD a1, a2
ADD a1, a3

; suma cisel a4 a a5
ADD a4, a5

; odcitanie sumy od suctu
SUB a1, a4

; porovnanie vysledku ( ulozenom v a1 ) s hodnotou a5
SUB a1, a5

; ak je vysledok nula, cisla sa zhoduju, pokracuj na navestie DALEJ. Ak sa nezhoduju STOP
jz DALEJ
MOV a6, a2
STOP

DALEJ:
MOV a6, r1
STOP


Offline

Užívateľ
Užívateľ
Pomoc s assemblerom...

Registrovaný: 26.06.05
Prihlásený: 11.03.11
Príspevky: 5
Témy: 1 | 1
Napísal autor témyOffline : 11.03.2011 14:29 | Pomoc s assemblerom...

dakujem ti, mas u mna pivecko! :D no dufam ze to pochopim :D


 [ Príspevkov: 7 ] 


Pomoc s assemblerom...



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

pomoc s assemblerom

v Assembler, C, C++, Pascal, Java

0

224

14.06.2010 11:35

Majkl81

V tomto fóre nie sú ďalšie neprečítané témy.

prepojenie c s assemblerom

v Assembler, C, C++, Pascal, Java

1

683

22.12.2006 18:24

Alyx_Vance

V tomto fóre nie sú ďalšie neprečítané témy.

Pomozete mi prosim s assemblerom?

v Assembler, C, C++, Pascal, Java

2

552

15.01.2008 18:04

programator

V tomto fóre nie sú ďalšie neprečítané témy.

pomoc pomoc prosim nefunguje internet

v Ovládače

7

437

09.09.2017 20:37

Smith Wesson

V tomto fóre nie sú ďalšie neprečítané témy.

pomoc

v JavaScript, VBScript, Ajax

2

619

15.05.2009 20:15

firewall

V tomto fóre nie sú ďalšie neprečítané témy.

pomoc

v Monitory, televízory a projektory

2

623

19.02.2008 13:40

patqo_he

V tomto fóre nie sú ďalšie neprečítané témy.

pomoc !

v Ovládače

1

704

18.08.2007 16:07

johny128

V tomto fóre nie sú ďalšie neprečítané témy.

POMOC

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Ostatné

30

1788

27.09.2009 20:01

workoholik16

V tomto fóre nie sú ďalšie neprečítané témy.

Pomoc

v Operačné systémy Microsoft

3

461

29.12.2007 18:42

Dzimbo

V tomto fóre nie sú ďalšie neprečítané témy.

pomoc

v Ostatné

13

684

08.08.2009 22:16

malcolm

V tomto fóre nie sú ďalšie neprečítané témy.

Pomoc?

v HTML, XHTML, XML, CSS

1

212

09.08.2017 20:01

BX

V tomto fóre nie sú ďalšie neprečítané témy.

pomoc

v PHP, ASP

6

507

01.08.2008 16:27

Darkeye18

V tomto fóre nie sú ďalšie neprečítané témy.

Pomoc

v Zvuk

2

613

24.11.2007 17:30

optyx

V tomto fóre nie sú ďalšie neprečítané témy.

POMOC ???

v Delphi, Visual Basic

2

959

27.03.2008 14:32

Martinek6

V tomto fóre nie sú ďalšie neprečítané témy.

Pomoc

v Audio programy

4

731

05.02.2008 10:06

raikonen11

V tomto fóre nie sú ďalšie neprečítané témy.

Pomoc!

v Procesory

6

754

02.02.2008 18:27

Jaro



© 2005 - 2020 PCforum, edited by JanoF