Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » cVas 17:22
 » slanter 17:19
 » JE Jacaw 17:18
 » ngP 17:18
 » PeKa 17:16
 » mravel 17:15
 » Carat 17:12
 » Kenjiro 17:08
 » KHot 17:08
 » Sherif 16:55
 » Wojtekar 16:46
 » Piwomir 16:45
 » AfiP 16:43
 » skalak23 16:41
 » wrrr 16:37
 » NWN 16:33
 » Liu CAs 16:32
 » elliot_pl 16:31
 » NimnuL 16:26
 » J@rek 16:25

 Dzisiaj przeczytano
 36876 postów,
 wczoraj 25433

 Szybkie ładowanie
 jest:
włączone.

 
ccc
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?

  1. 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.

  2. A jak , myszon 12/12/09 10:39
    Dodasz młodsze części a bit przeniesienia dodasz do sumy starszych części?

  3. 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.

    1. 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....

  4. ADC , RusH 12/12/09 18:57
    ADC Add with carry

    I fix shit
    http://raszpl.blogspot.com/

    1. takis cwany... , GGTA 13/12/09 00:14
      ... to najpierw powiedz jak te liczby zapisac w pamieci tak zeby mozna uzyc ADC ;)

      1. 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.

  5. To jest żart nie problem , exmac 14/12/09 07:53
    ADD EAX,ECX
    ADC EDX,EBX

    1. takis cwany to powiedz... , GGTA 14/12/09 16:11
      ...jak wprowadzic liczbe do rejestrow/pamieci jesli dostalem ja w postaci dziesietnej jako tekst?

      1. 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ł....

        1. 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 wartoscia

          I fix shit
          http://raszpl.blogspot.com/

          1. 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ź

            1. 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,EAX

              I fix shit
              http://raszpl.blogspot.com/

  6. 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

    1. daj fotke , RusH 14/12/09 19:36
      to moze jeszcze znajdziesz kogos kto ci loda zrobi

      I fix shit
      http://raszpl.blogspot.com/

      1. 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.

        1. .:. , Shneider 15/12/09 01:33
          spytaj prowadzacego...

          .:: Live at Trance Energy ::.

        2. 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