On Sun, Oct 17, 2004 at 12:14:15AM +0300, Dimitar Terziev wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> ÐÐÐÐ ÐÐ ÐÐÐÐÑÐ ÐÐ ÐÐÐÑÐÐÑ ÐÑÐÐÑÐÐÐÐ ÐÐ 
> ÐÑÐÐÐÐÐÑ, ÐÐÑÐ ÐÑ ÑÑÐ ÑÐÑÐÐ
> ÐÐÐÐÐÐÐ ÐÐÐ-ÐÐÐÑÐÐÑÐ. Ð ÐÐÑÐÐÐÑÐ ÐÐ ÐÐÐÐ ÐÑÐÐÑ 
> ÐÑÐÐÐÐÐ - ÐÐÑÐÑ ÐÐ
> ÐÑÐ Visual C++ Ð ÐÐÐÐÑÐ. ÐÐÐ ÐÐÑÑÐ ÐÑÐÐÐ ÐÐÐÐ.... ÑÐ 
> ÐÑÐÑÐÑÐ Ð ÐÐÐ
> ÐÑÐ KDevelop ÐÐÐÑÐÐÐÑ ÑÐ ÐÑÐÐÐÐÐÑ ÐÑÐÐÐÐÐÑÑÐÐ 
> ÐÐÑÑÑÑÐÑÐÐ? ÐÐÐÐ Ð
> ÑÐÐÐÐÐÑÑ:

ÐÑÐÑÐÑÑÑ ÐÐ Ð ÐÑÑÐÐ ÑÐÑÑÐÐÐ Ñ KDevelop, Ð Ñ 
ÐÐÐÐÐÐÐÑÐÑÐ, ÐÐÐÑÐ
ÐÐÐÐÐÐÐÐÑ.  ÐÐÐÐ, ÐÐÐÑÐ ÑÐ ÐÐÑÐÑÐÑÑÐÐ Ð ÐÐÐ ÑÐ 
ÐÐÐÐÐÐÐÐ inline
assembly Ñ GCC[1].  Ð google ÑÐ ÐÐÐÐÑÐÑ ÐÐÑÑÐÑÑÑÐÐ 
ÐÐÐÑÐÐÐÑÐÑÐÑ ÐÐ
ÐÑÐÑÐÑÐ.


> <Cut>
> ÐÐÐÐ ÐÐÑÐ ÐÐÑÐÐ Ð ÐÐÐÐÑÐ. ÐÐÐÑÐ ÑÐÑ ÐÐ ÐÐ ÑÐ 
> ÐÑÐÐ ÐÐ ÑÐ ÐÐÑÑÐÐÐÑÐÐ
> ÐÐÐÐ ÑÐÐÐ ÐÐ ÐÐ ÐÐÑÐ ÐÑÐÑÑÐÑÐÐ ÐÐ ÐÑÐÐÐÐÐÐÑ, Ð 
> ÐÑÐÐÐ ÐÐ ÑÐ ÐÐ ÐÑÐÐÑ
> Ð ÐÐÐÑÐÑ. ÐÑÐÑÐÑÐ ÐÐ Ð ÐÐÐ? ÐÑÐÐÐÐÑ ÐÐ ÐÐÐÐÑÐ 
> ÐÐÑÑÑÑÐÑÐÐÑÐ ÐÐ
> ÑÐÐÐÐÐÑ ÐÐÑÐÐ:
> 
> __asm__ (
> 
> "mov eax,a"
> .....
> .....
> .....
> );

ÐÐÑÑÐ ÑÐ ÑÐÑÑÐÐ ÑÐÐÑÐÐÑÐÑÐ ÐÐ GCC :) ÐÐÐÐÐÐ GCC 
ÐÐÐÐÐÐÐÐ gas[2] (GNU
assembler) ÐÐ ÐÑÐÐÐÐÐÑ, ÑÐ ÑÑÑÐÐÐ ÐÐ ÐÐÐÐÐÐÑ ÐÐÐÐÐÐÑ 
ÑÐÐÑÐÐÑÐÑ.
ÐÑÐÐÑÐÐÐÑÐ, ÐÐÑÑÐ ÑÐ ÐÑÐÐÐÐÐÐ Ð ÐÐÑÐÐÐ ÐÐ MASM 
(Microsoft assember),
ÐÐÐÑÐ ÐÐÐÐÐÐÐÐ Intel ÑÐÐÑÐÐÑÐÑ, ÐÐÐÐÑÐ gas 
ÐÐÐÐÐÐÐÐ ÐÐ&Ð ÑÐÐÑÐÐÑÐÑ.
ÐÑÐ ÐÐÐÐ ÐÑÐÐÐÑ[3] ÐÐ GCC:

  __asm__ ("
          movl $1, %eax         // exit syscall
          xor  %ebx, %ebx       // exit status 0
          int  $0x80            // call kernel
          ");

ÐÑÐÐÐ ÑÐÐÐ, ÐÑÐ inline assembly Ñ GCC ÐÐ ÐÐÐÐÑ ÐÐ ÑÐ 
ÐÐÑÑÑÐÑ ÐÑÐ
ÐÑÐÑÐÐÐÑÐÑÐ ÐÐ ÑÑÐÐÑÐÑÑÐ ÐÐ ÐÐÑÐÐÐ, ÐÐ ÐÐÐÑÐ ÐÐ 
ÐÑÐÐÐÑ Ñ VC++ (mov
eax,a). ÐÑÑÐÐÐ ÐÐ ÐÑÐÐÐÑÐÑ Ð ÐÐÐÐÐ 
ÐÐÑÐÐÐÐÐÐÑÐÐÐÐÑÑ ÐÑÐÑÐÐÐÑÐÑÐ ÐÐÐÐÑ
ÐÑÑÐÐÐ Ð ÑÑÐÐÐ, ÐÐ ÐÐ ÐÐÐÐÑ ÐÐ ÐÐ ÐÑÐÐÐÑÑÐÑ 
ÐÐÑÐÐ Ð ÑÐÐÐÑÑÑÐ. 
ÐÐÐÐÐÐÐÐÐÐ ÑÐÐÐ ÑÑÐÐÐ Ð ÐÐÑÐÑÐÐ ÑÐÐÑÐÐÑÐÑÐÐ 
ÑÐÐ, ÐÐ ÐÐ ÐÐÐÐ
ÐÐÑÐÐ ÐÐ ÐÐ ÐÐÐÐÐÐÑ. ÐÐÐ ÐÐÐÑ 

  foo(int bar, char *baz, float *moo)

ÐÐ ÑÑÑÐÐÐÐÐ ÐÐÐÐÑÐÑÐ ÑÑÐÐÑÐÑ ÐÐ ÐÐÐÑÐ (pushl) Ð 
ÑÑÐÐÐ ÐÑÑÐÐ moo, ÐÐÑÐÐ
baz Ð ÐÐÐÑÐÑ bar, ÐÐ ÐÐ ÐÐÐÐ ÐÑÐ ÑÑÐÐÑÐÑ foo Ñ popl %eax 
ÐÐ ÐÐÐÐÐ
ÐÑÑÐÐÑ ÐÑÐÑÐÐÐÑ - bar.  ÐÑÐÐÐÐ - ÐÑÐÐÐÑÐ Ð 
ÐÐÐÑÐÐÐÑÐÑÐÑÑÐ ÐÐÐÐÐ
ÐÐÐÐÐÐÑÐÑ ÑÐ ÐÐÐÐÐÐÐÐ ÐÐÐ ÐÐÐÑÐÐÐÐÐÑÐÐ ÐÑÐÐÑ 
ÐÑÐÐÑÐÐÐÐ Ð ÐÐÐ Ñ ÐÑÐÑÐ
ÑÐ :)

ÐÐÐ ÐÐÐÐÐÐÐÐÑ ÑÐÑÑÐÐÐÐ ÐÐÐÐÐÐÐÐÐÑ[4], 
ÐÐÐÐÐÐÑÐÑÑÐ ÐÐ ÐÐÐÐÐÐ Ð ÑÐÐÐÐÐÑÐ:
ÐÐÐÐÑÑÑ ÐÐ ÐÐÐÐÐÐÐÐÐÑÐ ÑÐ ÑÐÐÐÐ Ð EAX, a 
ÐÑÐÑÐÐÐÑÐÑÐ ÐÑÐÐÐÑ ÐÐÐÑÐÐ Ð 
ÑÐÐÐÑÑÑÐÑÐ EBX, ECX, EDX, ESI, EDI Ð EBP.  Ð.Ð. ÐÐÐ ÐÐÐÑ

  write(int d, const void *buf, size_t nbytes)

'int d' ÐÑÐÐÐ Ð EBX, 'const void *buf' Ð ECX Ð 'size_t nbytes' Ð EDX.
ÐÐÐ ÐÐÐÑ ÑÐÑÑÐÐÐÐ ÐÐÐÐÐÐÐÐÐ Ñ ÐÐÐÐÑÐ ÐÑ 6 
ÐÑÐÑÐÐÐÑÐ ÑÐ ÑÑÑÐÐÐ ÐÐ
ÐÑÐÐÐÑ ÐÐÐÐÐ ÑÑÑ ÑÑÐÐÐ :)

ÐÐ-ÐÐÐÐÑÐÑÐÐ Ð ÑÐÐÑÐÑÐÐÐÑ ÑÐÐÑÐÐÑÐÑ ÐÐ GCC inline 
assembly:

  __asm__("<asm routine>" : output : input : modify);

ÐÑÐ ÐÐÐÐ ÐÐÐÐ ÐÐ ÐÐÐÐÐÐÑ ÐÐÐ ÐÑÐÐÐÐÐÐÐÐ ÑÐ 
ÑÐÑÐÐÑ ÐÐ ÐÑÐÐ Ð ÐÐÑÐÐ,
ÐÐÐÑÐ Ð ÐÐÐ ÑÐ ÐÑÐÐÑ ÐÑÐÐÐÐÐÐÐ.  ÐÑÐÐÐÐÐÐÐ 
ÐÐÐÑÐÐÐÑÐÑÐÑÑÐ ÐÐ ÑÐÐÐÑÐ.


ÐÐÐÐ ÐÐÑÐ ÐÐÐÑÐÐÑ ÐÑÐÑÐÐ ÑÐÐÐ, ÐÐ ÑÐ ÐÐÐ Ð ÐÐÐÐ 
ÐÑÐÐÐÐÐÐÐÐÐ, ÐÐÐÑÐ
ÐÐÐÐ ÐÐ ÑÐ ÑÐÐÑÑÐ ÑÐÐÐÐÐÑÐ ÐÐ ÐÑÐÐÑÐ Ñ gas.  ÐÐÐ 
ÑÐ ÐÐÑÑÐÐÐÑÐÑ NASM
(Netwide assembler) ÑÐ ÐÐÐÐÑ ÐÐ ÐÐÑÐÑ ÐÐ ÐÑÐÐÐÐÐÑ Ñ Intel 
ÑÐÐÑÐÐÑÐÑ,
ÐÐÐÑÐ ÑÐ ÐÑ ÑÐÐÐÐÐÐ ÑÐÐÐ.  Ð ÐÐÐÑÑÐ ÐÐ ÐÐÐÐÐÐÐÐÑ 
inline assembly,
ÐÐÐÐÑ ÐÐÐÑÐÐÐ ÐÐ ÑÐ ÐÐÐÐÑÐÑ ÐÐ ÐÑÐÐÐÐÐÑ 
ÐÑÐÐÐÐÐ ÑÑÐÐÑÐÑ, ÐÐÑÐÐ ÐÐ Ñ 
ÐÐÐÐÐÐÐÑÐÑ Ð ÐÐÐÐÐÐÑ Ñ ÐÐÐÐÐÐÑÐ ÐÑÐÐÑÐÐÐ.


ÐÐÐÐÑÐÐÐ,
ÐÐÐÑÐÑ


[1]http://gcc.gnu.org/onlinedocs/gcc-3.4.2/gcc/
[2]http://sources.redhat.com/binutils/docs-2.15/as/index.html
[3]http://nuieee.fe.up.pt/~ee97034/la/linasm.html
[4]http://www.win.tue.nl/~aeb/linux/lk/lk-4.html
-- 
Linux is for those who hate Windows.
FreeBSD is for those who love UNIX.
============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================

Reply via email to