CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Asembler

Asembler

dział ogólny

Asembler

Nowy postprzez Kamil » piątek, 10 września 2010, 18:26

Witam i od razu przepraszam, że piszę na forum z c++, ale słyszałem ze tu otrzymam pomoc, a bardzo jej potrzebuje...no wiec:

_data
tab: .long 1,8,2,3,4
:text
_start
mov $1, %EBX
mov $16, %EDX
mov tab ( ,%EBX, 4), %EAX
mov tab (%EDX), %ECX
nop


to jest cale zadanie, musze znac jakie beda wyniki (wartosci) w wyniku w EAX, EBX, ECX, EDX

bede wdzieczny za pomoc i krotkie wyjasnienie (jak najprostsze)
Avatar użytkownika
Kamil
Bladawiec
Bladawiec
 
Posty: 4
Dołączył(a): piątek, 10 września 2010, 18:21
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Win XP Pro
Kompilator: C++ Builder 2007
Gadu Gadu: 9495014
    Windows XPFirefox

Re: Asembler

Nowy postprzez Cyfrowy Baron » piątek, 10 września 2010, 18:55

W c++ builder instrukcje asemblera włączasz w kod programu tak:

KOD cpp:     UKRYJ  
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  asm
  {
    _data
    tab: .long 1,8,2,3,4
    :text
    _start
    mov $1, %EBX
    mov $16, %EDX
    mov tab ( ,%EBX, 4), %EAX
    mov tab (%EDX), %ECX
    nop
  }
}
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Asembler

Nowy postprzez Kamil » piątek, 10 września 2010, 19:04

stety, niestety zaliczenie z tego mamy na kartce...i gosciu pisze nam tylko tyle :/

ktoś jeszcze w ogóle tego asm używa?
Avatar użytkownika
Kamil
Bladawiec
Bladawiec
 
Posty: 4
Dołączył(a): piątek, 10 września 2010, 18:21
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Win XP Pro
Kompilator: C++ Builder 2007
Gadu Gadu: 9495014
    Windows XPFirefox

Re: Asembler

Nowy postprzez Krzysiu555 » piątek, 10 września 2010, 19:16

assembler to chyba najwydajniejszy język (najniższy - najpodobniejszy do kodu maszynowego) ale też i najtrudniejszy (ja nie mam o nim zielonego pojęcia) na pewno stosuje sie go w operacjach gdzie jest duzo operacji matematycznych i potrzebna jest ogromna wydajnosc. np. w kalkulatorach Texas Instruments możesz programować w asmblerze
Avatar użytkownika
Krzysiu555
Intelektryk
Intelektryk
 
Posty: 161
Dołączył(a): sobota, 23 sierpnia 2008, 16:55
Podziękował : 2
Otrzymał podziękowań: 1
System operacyjny: Windows 7 Professional 64
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 0
    Windows 7Firefox

Re: Asembler

Nowy postprzez polymorphism » piątek, 10 września 2010, 20:38

Eee, paskudna składnia AT&T...

Obstawiam tak:
  • eax - 8
  • ebx - 1
  • ecx - 4
  • edx - 16

W c++ builder instrukcje asemblera włączasz w kod programu tak: (...)

To nie przejdzie, bo w Builder nie obsługuje składni AT&T, chyba że coś się zmieniło (do szóstki była tylko składnia intelowska).
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Asembler

Nowy postprzez Kamil » piątek, 10 września 2010, 20:41

a moge wyjasnienie do EAX i ECX??
Avatar użytkownika
Kamil
Bladawiec
Bladawiec
 
Posty: 4
Dołączył(a): piątek, 10 września 2010, 18:21
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Win XP Pro
Kompilator: C++ Builder 2007
Gadu Gadu: 9495014
    Windows XPFirefox

Re: Asembler

Nowy postprzez Cyfrowy Baron » piątek, 10 września 2010, 20:48

W pliku pomocy prawie nic o tym nie ma, więc trzeba poszukać innych źródeł.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Asembler

Nowy postprzez polymorphism » piątek, 10 września 2010, 20:49

Najszybciej będzie jak zapiszę to w C:
KOD cpp:     UKRYJ  
long tab_long[] =  { 1, 8, 2, 3, 4 }; // <--- to jest ta właściwa tablica
byte* tab = (byte*)tab_long;


/* mov tab ( ,%EBX, 4), %EAX  */
EAX = *((long*)(tab + EBX * 4)); /* lub */ EAX = ((long*)tab)[EBX];

/* mov tab (%EDX), %ECX */
ECX = *((long*)(tab + EDX));
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Asembler

Nowy postprzez Kamil » piątek, 10 września 2010, 21:00

a jak zmienie wartosci w tablicy to wynik bedzie inny....wazna jest ilosci elementów tablicy czy wartosci?
Avatar użytkownika
Kamil
Bladawiec
Bladawiec
 
Posty: 4
Dołączył(a): piątek, 10 września 2010, 18:21
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Win XP Pro
Kompilator: C++ Builder 2007
Gadu Gadu: 9495014
    Windows XPFirefox

Re: Asembler

Nowy postprzez polymorphism » piątek, 10 września 2010, 21:05

I jedno, i drugie. Wartości eax i ecx czytane są z tablicy, co zresztą pokazałem w kodzie przetłumaczonym na C.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 4 gości