|
TwojePC.pl © 2001 - 2025
|
 |
A R C H I W A L N A W I A D O M O Ś Ć |
 |
| |
|
[Assembler] 64-bitowa liczba na 32-bitowym procesorze. , GGTA 11/12/09 22:49 Mam taki problem. Na 32-bitowym procesorze musze pobrac z konsoli liczbe 64-bitowa i dodac do niej druga 64-bitowa. Wynik przedstawic w konsoli.
Wymyslilem ze pobieram liczbe jako tekst i zapisze do dwoch rejestrow/komorek pamieci, ale mam problem jak wlasnie rozdzielic ta liczbe.
Orientuje sie ktos moze?- wykrywam prace domowa na uczelni :) , ptoki 11/12/09 23:53
Pytanie zasadnicze:
W jakiej formie dostajesz te liczbe? Zwykly tekst? To dosyc dluga wyjdzie. Wtedy najprosciej sobie zrobic trzy obszary pamieci (w pascalu stringi) umiescic w jednym pierwsza liczbe, w drugim druga.
A do trzeciego wkladac dodane odpowiednie pozycje (dodawanie pisemne), potem po jednym znaku wypisac na konsoli.
Gorzej jesli dostajesz liczbe 64bitowa w postaci 8 bajtow. Ale i wtedy mozna tak samo dodawac (takie jak pisemne)tyle ze trzeba pilnowac bitu przeniesienia. Rezultat moze byc wiekszy niz 64bity ale nie wiekszy niz 65bitow. - A jak , myszon 12/12/09 10:39
Dodasz młodsze części a bit przeniesienia dodasz do sumy starszych części? - z tego co widze... , GGTA 12/12/09 15:44
... ptoki proponuje dodawanie poszczegolnych cyfr w stringu od prawej do lewej uwzgledniajac reminder. Takie troche malo komputerowe rozwiazanie aczkolwiek byc moze skuteczne. Takie dodawanie w slupkach.- pierwsze rozwiazanie to wlasnie dodawanie w slupkach, drugie to "normalne" procesorowe , ptoki 12/12/09 19:19
dodawanie.
Pierwsze mimo ze wyglada na dziecinne pozwala dodawac cyfry o dlugosci ograniczonej tylko pamiecia....
- ADC , RusH 12/12/09 18:57
ADC Add with carryI fix shit
http://raszpl.blogspot.com/ - takis cwany... , GGTA 13/12/09 00:14
... to najpierw powiedz jak te liczby zapisac w pamieci tak zeby mozna uzyc ADC ;)- pobierasz w hex , myszon 13/12/09 00:56
i normalnie zapisujesz młodszy bajt do jednej komórki pamięci a starszy do drugiej. Dodajesz młodsze potem dodajesz starsze z przeniesieniem i zwracasz kolejno 3 bajty: przeniesienie, suma starszych i suma młodszych.
- To jest żart nie problem , exmac 14/12/09 07:53
ADD EAX,ECX
ADC EDX,EBX- takis cwany to powiedz... , GGTA 14/12/09 16:11
...jak wprowadzic liczbe do rejestrow/pamieci jesli dostalem ja w postaci dziesietnej jako tekst?- Tak , exmac 15/12/09 08:06
Adres_ciągu: DD ??
LEA EDI,[Adres_ciągu]
MOV EDI,[EDI]
XOR ESI,ESI
XOR EBX,EBX
JMP @@00
@@01:
MOV EAX,10
MUL EBX
PUSH EDX
PUSH EAX
MOV EAX,10
MUL ESI
ADD ESI,EAX
POP EAX
ADD EBX,EAX
POP EAX
ADC ESI,EAX
SUB ECX,'0'
ADD EBX,ECX
ADC ESI,0
@@00:
MOVZX ECX,byte ptr [EDI]
INC EDI
OR ECX,ECX
JNE @@01
MOV EAX,EBX
MOV EDX,ESI
Wiem, że używanie mózgu kosztuje dużo energii, ale czasem można się wysilić, żeby nie zanikł....- MOV EDI,[EDI] , RusH 15/12/09 11:10
erm, wyglada jak prosto z IDA pro, w dodatku wcale nie wiem czy to ma prawo dzialac (a raczej jestem pewien ze nie bedzie) bo to jakis wyrwany z kontekstu kod :) np EDX pchasz na stos, chociaz nigdy nie jest zainicjalizowane zadna wartosciaI fix shit
http://raszpl.blogspot.com/ - ty znasz się cokolwiek na assemblerze ? , exmac 15/12/09 17:49
rozkaz MUL mnoży zawartość akumulatora (EAX) przez argument i wynik (64bitowy w tym przypadku) umieszcza w parze rejestrów EAX-EDX, więc EDX jest zainicjowane - naucz się czekoś zamiast liczyć, że wszystko znajdziesz i internecie.
Kod rzeczywiście nie zadziała poprawnie - w pośpiechu wkradł się mały błąd - sam sobie go znajdź- masz racje , RusH 16/12/09 02:30
problem w tym ze nie googlalem, gdybym szukal to bym sobie znalazl jak dziala mul 32bitowy. Ja jestem dinozaur 8 bitowy :) od C64 po mikrokontrolery obecnie.
co do bledu to tak na szybko zamiast
POP EAX
ADD EBX,EAX
POP EAX
ADC ESI,EAX
powinno byc
POP EAX
MOV EBX,EAX
POP EAX
ADC ESI,EAXI fix shit
http://raszpl.blogspot.com/
- w skrocie: , GGTA 14/12/09 16:47
dostaje input:
STRING zawierajacy DWIE duze liczby (nie do zapisania na 32-bitach).
program:
dodaje je
output
wynik dodawania w konsoli- daj fotke , RusH 14/12/09 19:36
to moze jeszcze znajdziesz kogos kto ci loda zrobiI fix shit
http://raszpl.blogspot.com/ - spytalem tylko... , GGTA 15/12/09 00:44
... jak ten string zapisac jako liczbe do pamieci, a wszyscy mega mistrzowie a nikt nie potrafi nic pomoc. Rzeczowe posty dal tylko ptoki. Reszta pseudointelektualizm tylko okazuje. Z Toba JAK ZWYKLE RusH na czele.- .:. , Shneider 15/12/09 01:33
spytaj prowadzacego....:: Live at Trance Energy ::. - no sory , RusH 15/12/09 03:40
jestes na studiach, nie potrafisz odebrac danej z stdin i masz do mnie pretensje? :)I fix shit
http://raszpl.blogspot.com/
|
|
|
|
 |
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL |
 |
|
|
|