Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.01.07
Prihlásený: 14.04.11
Príspevky: 239
Témy: 26
Príspevok NapísalOffline : 01.11.2007 10:10

Zaujímalo by ma či sú nejaké funkcie na násobenie a delenie. Ja som zatial skúšal niečo vymyslieť: (násobenie)
Kód:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,return:integer;
begin
a:= strtoint(edit1.Text);
b:= strtoint(edit2.Text);
asm
mov eax,a
mov ecx,b
@l:
add ecx,b
loop @l
mov return,ecx
end;
label1.Caption:= inttostr(return);
end;


ale po stlačení tlačítka som dlho čakal(~10sekúnd) a dočkal som sa... vyšlo to 0 :D

potom som skúšal namiesto ECX dať EBX - to nešlo spustiť vôbec apotom ešte EDX - to vyšlo nejaké pekne veľké číslo :lol:

na delenie nemám šajnu


Offline

Užívateľ
Užívateľ
Násobenie a delenie v assembleri

Registrovaný: 02.09.05
Prihlásený: 17.11.10
Príspevky: 154
Témy: 1
Príspevok NapísalOffline : 01.11.2007 15:18

Niee. Pre delenie/ nasobenie existuju instrukcie :
MUL - nasobenie
DIV - delenie

MUL ocakava cislo 1 v 8/16/32 bit registri al/ax/eax, druhe cislo moze byt z pamate tak isto 8/16/32 bit, alebo nejaky dalsi univerzalny register..
Vysledok je v al/ax/eax

DIV ocakava cislo 1 tak isto v 8/16/32 bit registri al/ax/eax, druhe cislo moze byt z pamate rovnako 8/16/32 bit, alebo nejaky dalsi univerzalny register..
Delenie je v al/ax/eax
Zvysok po deleni je v registri dl/dx/edx


napr. fciu nasobenia v delphi som spravil takto :
Kód:
function multiply(c1, c2 : integer) : integer; assembler;
asm
  pusha           // ulozime univerzalne registre na zasobnik
  mov eax, c1
  mul c2
  mov result, eax
  popa
end;


a podobne aj delenie...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.01.07
Prihlásený: 14.04.11
Príspevky: 239
Témy: 26
Príspevok Napísal autor témyOffline : 01.11.2007 15:37

diky moc. Ale teraz ma napadlo niečo na násobenie cez loop . Musím to skúsiť :lol:

//edit: nefungovalo to cez loop :D . Ten MUL ide ale DIV robí problémy.
delenie:
Kód:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,ret:integer;
asm
mov a,6
mov b,2

mov eax,a
div b
mov ret,eax
end;
showmessage(inttostr(ret));

end;

toto mi vyhodí chybu "Integer overflow"


Offline

Užívateľ
Užívateľ
Násobenie a delenie v assembleri

Registrovaný: 28.04.07
Prihlásený: 03.11.09
Príspevky: 133
Témy: 1
Príspevok NapísalOffline : 01.11.2007 19:30

Skús toto:
Kód:
procedure TForm1.Button1Click(Sender: TObject);
var a, b, ret, zv:integer;
asm
    mov a,7
    mov b,2
   
    mov edx, 0
    mov eax, a
    div dword b

    mov ret, eax
    mov zv,  edx
end;
showmessage(inttostr(ret));
showmessage(inttostr(zv));

end;

Pro hraní sa s assemblerom sa ti určite zíde aj zoznam inštrukcií s ich popisom - skús napríklad manuál k Nasm. Div počíta zároveň aj zvyšok; pri veľkosti operandu nad 8b sa navyše pri delení používa aj (e)dx.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.01.07
Prihlásený: 14.04.11
Príspevky: 239
Témy: 26
Príspevok Napísal autor témyOffline : 01.11.2007 20:01

aha. diky


Odpovedať na tému [ Príspevkov: 5 ] 


Podobné témy

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

v JavaScript, VBScript, Ajax

9

1023

24.02.2008 19:03

eiger33 Zobrazenie posledných príspevkov

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

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

8

472

15.06.2013 22:47

dany2281995 Zobrazenie posledných príspevkov

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

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

0

606

17.04.2010 10:54

pack Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Jednoduchá úloha v assembleri - pomozte

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

6

2129

15.11.2007 20:38

martinezb6 Zobrazenie posledných príspevkov

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

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

5

744

30.12.2009 12:32

josi Zobrazenie posledných príspevkov

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

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

0

335

04.10.2011 17:49

tomik858 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. jednoducha uloha v assembleri pls help

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

4

666

04.05.2008 11:42

snapshot Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Delay aneb mrhanie casom v assembleri

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

5

790

20.10.2009 23:53

stanke Zobrazenie posledných príspevkov

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

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

8

696

28.11.2008 16:14

suchy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. VHDL kód pre násobenie dvoch integerov

v Elektronika

3

550

06.01.2018 21:40

ado130 Zobrazenie posledných príspevkov

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

v ATI/AMD grafické karty

6

1219

27.01.2010 3:28

foxXx Zobrazenie posledných príspevkov

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

v Pevné disky a radiče

7

502

21.09.2015 4:45

branci6138 Zobrazenie posledných príspevkov

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

v Pevné disky a radiče

12

724

05.06.2013 21:52

sp33d Zobrazenie posledných príspevkov

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

v PHP, ASP

6

934

15.07.2008 16:18

vladooo Zobrazenie posledných príspevkov

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

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

v Pevné disky a radiče

43

2782

21.05.2008 16:24

tommy1104 Zobrazenie posledných príspevkov

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

v Ostatné programy

10

1058

27.12.2011 15:15

Ominous Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra