[תÌù]linuxÏÂcÓïÑÔǶÈë»ã±à
ÍøÉÏ¿´µ½µÄÕâÆª¹ØÓÚLinuxÏÂCÓïÑÔǶÈë»ã±àµÄÎÄÕÂдµÄ·Ç³£È«£¬×ªÔعýÀ´¡£
Using Assembly Language in Linux.
IntelºÍAT&T»ã±àÓï·¨²îÒ죺
1¡£Ç°×º£º
Intel»ã±à¼Ä´æÆ÷ºÍÁ¢¼´ÊýÎÞÐèǰ׺¡£ºóÕ߼ĴæÆ÷ǰ׺Ϊ%£¬Á¢¼´Êýǰ׺Ϊ$¡£
eg£º
Intex Syntax
mov eax,1
mov ebx,0ffh
int 80h
AT&T Syntax
movl $1,%eax
movl $0xff,%ebx
int $0x80
2¡£¶þÕß¶Ô²Ù×÷Êý´¦Àí·½Ïò²»Í¬£º
eg£º
Intel »ã±àÓï·¨£º
instr dest,source
mov eax,[ecx]
AT&T »ã±àÓï·¨£º
instr source,dest
movl (%ecx),%eax
3¡£ÄÚ´æ±äÁ¿Óï·¨²îÒ죺
IntelÓ﷨ʹÓÃÖÐÀ¨ºÅ[]£¬ºóÕßʹÓÃСÀ¨ºÅ()
eg£º
Intex Syntax
mov eax,[ebx]
mov eax,[ebx+3]
AT&T Syntax
movl (%ebx),%eax
movl 3(%ebx),%eax
4¡£ºó׺£º
AT&T»ã±àÖ¸ÁîÓкó׺£¬ÒÔ±íÃ÷Êý¾ÝÀàÐÍ£¨8λ¡¢16λµÈ£©£»IntelÔò¸ù¾Ý¼Ä´æÆ÷×Ô¶¯Ê¶±ð¡£
eg£º
Intel Syntax
mov al,bl
mov ax,bx
mov eax,ebx
mov eax, dword ptr [ebx]
AT&T Syntax
movb %bl,%al
movw %bx,%ax
movl %ebx,%eax
movl (%ebx),%eax
5¡£
Intel£ºsegreg:[base+index*scale+disp]
AT&T£º %segreg:disp(base,index,scale).
Àý×Ó£º
1 #include <stdio.h>
2
3 int main(void) {
4 long eax=4;
5 long ebx=2;
6
7 __asm__ __volatile__ ("addl %1, %0"
8
Ïà¹ØÎĵµ£º
(ËÄ)¡¡ÍøÂçÆª¡¡
¡¡¡¡LinuxµÄ×éÍøÄÜÁ¦·Ç³£Ç¿´ó£¬ËüµÄTCP/IP´úÂëÊÇ×î¸ß¼¶µÄ¡£LinuxÌṩÁ˶ÔÓÚµ±Ç°µÄTCP/IPÐÒéµÄÍêȫ֧³Ö£¬²¢ÇÒ°üÀ¨Á˶ÔÏÂÒ»´úInternet¡£ÐÒéIpv6µÄÖ§³Ö¡£LinuxÄں˻¹°üÀ¨ÁËIP·À»ðǽ´úÂë¡¢IP·Àα¡¢IP·þÎñÖÊÁ¿¿ØÖƼ°Ðí¶à°²È«ÌØÐÔ¡£ÕâÐ©ÌØÐÔ¿ÉÒÔºÍÏñCiscoÕâÑùµÄ¹«Ë¾ÌṩµÄ¸ß¶Ë·ÓÉÉ豸µÄÌØÐÔÏàæÇÃÀ¡£´ËÍ ......
LinuxµÄÎļþ²Ù×÷APIÉæ¼°µ½´´½¨¡¢´ò¿ª¡¢¶ÁдºÍ¹Ø±ÕÎļþ¡£
1.linux API
¡¡¡¡´´½¨
int creat(const char *filename, mode_t mode);
¡¡¡¡²ÎÊýmodeÖ¸¶¨Ð½¨ÎļþµÄ´æÈ¡È¨ÏÞ£¬ËüͬumaskÒ»Æð¾ö¶¨ÎļþµÄ×îÖÕȨÏÞ£¨mode&umask£©£¬ÆäÖÐumask´ú±íÁËÎļþÔÚ´´½¨Ê±ÐèҪȥµôµÄһЩ´æÈ¡È¨ÏÞ¡£umask¿Éͨ¹ýϵͳµ÷ÓÃumask()À´¸ ......
³ÉΪһÃûÓÅÐãµÄºìñÆóÒµLinuxÓû§£¬¿ÉÒÔʹÓúͶ¨ÖÆÒ»¸öºìñϵͳÀ´½øÐÐÆÕͨÃüÁîÐд¦ÀíºÍÌá¸ß×ÀÃæÏµÍ³µÄÉú²úÁ¦£¬ÎªÑ§Ï°ÏµÍ³¹ÜÀí£¨RH131£©¿Î³Ì×öºÃ³ä·ÖµÄ×¼±¸¡£
±¾¿Î³ÌÊʺÏLinux ÐÂÊÖÒÔ¼°ÒÔǰûÓÐʹÓÃLinux »ò UNIX ÃüÁîÐеľÑ飬ÏëÕÆÎÕºÍÁ·Ï°Ê¹ÓúͿØÖÆLinuxϵͳËùÐè»ù±¾¼¼ÄܵÄÓû§¡£
Ö÷ҪĿ±êÎ ......