Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit

Zdravím.
Řeším problém ohledně dělení:
1) konkrétně:
Potřebuji vydělit 2 čísla v assembleru.
dělenec: reprezentován 3bajty (24bitů), maximální hodnota 255*dělitel
dělitel: reprezentován 2bajty (16bitů), maximální hodnota 320
podíl se tedy vždy vejde do 1 bajtu (8bitů) (maximální hodnota 255)
Mám operaci DIV (tj. operátor celočíselného dělení), který ovšem umí podělit jen 2bajtové číslo jednobajtovým a výsledek pak uloží do jednoho bajtu.
2) obecně:
mám například číslo 387, které chci vydělit číslem 43 (výsledek je jednociferný = 9). Mám ovšem k dispozici pouze kalkulačku, která umí dělit pouze dvouciferné číslo jednociferným tj. např. provést výpočet 25/5=5.
(dále umí násobit, sčítat a odečítat libovolná čísla).
Offline
↑ centaurian:
-> neuveden typ assembleru;
Takhle pro Borland:
Maximální číslo v hex nebo dekadicky:
local integer 32, tedy l_i32_:
__int32 l_i32__re = 0x7FFFFFFF; // 2415919103
Nějaké prvočíslo:
__int32 l_i32__im = 2417;
Výsledek do:
__int32 l_i32_ret = 0;
Modulo výsledku do:
__int32 l_i32_edx = 0;
_asm {
push ecx
mov edx, 0
mov eax, l_i32__re // dělenec do registru eax
mov ecx, l_i32__im // dělitel do registru ecx
div ecx // vydělíš
mov l_i32_ret, eax // celé číslo do l_i32_ret ( return ) z registru eax
mov l_i32_edx, edx // celočíselný zbytek po dělení ( modulo ) z registru edx
pop ecx
};
a třeba vypsat do Editu.
Edit->Text = l_i32_edx;
//----------------------------------------- 13.9.2012 -------------------------------------------------------------
Vyvinul jsem matetatický engine ( program) na dělení libovolně velkých čísel, E ( exa) tedy e^18, deset na osmnástou v jednom kroku. Je prvotně určen na penetraci RSA metodou reverzní faktorizace prvočísla pomocí #include valarray z C++ STL.
"Prague Pie - Pražský koláč." na http://large-numbers-division.org/
Offline