Linux »ã±àÆ÷£º¶Ô±È GAS ºÍ NASM
±¾ÎĽâÊÍÁ½ÖÖ×îÁ÷ÐÐµÄ Linux® »ã±àÆ÷ —— GNU Assembler£¨GAS£©ºÍ Netwide
Assembler£¨NASM£© ——
Ö®¼äһЩ±È½ÏÖØÒªµÄÓï·¨²îÒìºÍÓïÒå²îÒ죬°üÀ¨»ù±¾Óï·¨¡¢±äÁ¿ºÍÄÚ´æ·ÃÎÊ¡¢ºê´¦Àí¡¢º¯ÊýºÍÍⲿÀý³Ì¡¢¶ÑÕ»´¦ÀíÒÔ¼°Öظ´Ö´ÐдúÂë¿éµÄ¼¼Êõ·½ÃæµÄ²îÒì¡£
ÓëÆäËûÓïÑÔ²»Í¬£¬»ã±àÓïÑÔ
ÒªÇ󿪷¢ÈËÔ±Á˽â±à³ÌËùÓûúÆ÷µÄ´¦ÀíÆ÷Ìåϵ½á¹¹¡£»ã±à³ÌÐò²»¿ÉÒÆÖ²£¬Î¬»¤ºÍÀí½â³£
³£±È½ÏÂé·³£¬Í¨³£°üº¬´óÁ¿´úÂëÐС£µ«ÊÇ£¬ÔÚ»úÆ÷ÉÏÖ´ÐеÄÔËÐÐʱ¶þ½øÖÆ´úÂëÔÚËٶȺʹóС·½ÃæÓÐÓÅÊÆ¡£
¶ÔÓÚÔÚ Linux
ÉϽøÐлã±à¼¶±à³ÌÒѾÓÐÐí¶à²Î¿¼×ÊÁÏ£¬±¾ÎÄÖ÷Òª½²½âÓï·¨Ö®¼äµÄ²îÒ죬°ïÖúÄú¸üÇáËɵØÔÚ»ã±àÐÎʽ֮¼ä½øÐÐת»»¡£±¾ÎÄÔ´ÓÚÎÒ×Ô¼ºÊÔͼ¸Ä½øÕâÖÖת»»µÄ³¢ÊÔ¡£
±¾ÎÄʹÓÃһϵÁгÌÐòʾÀý¡£Ã¿¸ö³ÌÐòÑÝÊ¾Ò»Ð©ÌØÐÔ£¬È»ºóÊǶÔÓï·¨µÄÌÖÂۺͶԱȡ£¾¡¹Ü²»¿ÉÄÜÌÖÂÛ NASM ºÍ GAS
Ö®¼ä´æÔÚµÄÿ¸ö²îÒ죬µ«ÊÇÎÒÊÔͼÌÖÂÛÖ÷Òª·½Ã棬¸ø½øÒ»²½Ñо¿Ìṩһ¸ö»ù´¡¡£ÄÇЩÒѾÊìϤ NASM ºÍ GAS
µÄ¶ÁÕßÒ²¿ÉÒÔÔÚÕâÀïÕÒµ½ÓÐÓõÄÄÚÈÝ£¬±ÈÈçºê¡£
±¾ÎļÙÉèÄúÖÁÉÙ»ù±¾Á˽â»ã±àµÄÊõÓï£¬Ôø¾Ó÷ûºÏ Intel® Óï·¨µÄ»ã±àÆ÷±àд¹ý³ÌÐò£¬¿ÉÄÜÔÚ Linux »ò
Windows ÉÏʹÓùý NASM¡£±¾ÎIJ¢²»½²½âÈçºÎÔÚ±à¼Æ÷ÖÐÊäÈë´úÂ룬»òÕßÈçºÎ½øÐлã±àºÍÁ´½Ó£¨µ«ÊÇÏÂÃæµÄ±ßÀ¸¿ÉÒÔ°ïÖúÄú ¿ì
ËÙ»ØÒäÒ»ÏÂ
£©¡£ÄúÓ¦¸ÃÊìϤ Linux ²Ù×÷ϵͳ£¨ÈκΠLinux ·¢Ðа涼¿ÉÒÔ£»ÎÒʹÓõÄÊÇ Red Hat ºÍ
Slackware£©ºÍ»ù±¾µÄ GNU ¹¤¾ß£¬±ÈÈç gcc ºÍ ld£¬»¹Ó¦¸ÃÔÚ x86 »úÆ÷ÉϽøÐбà³Ì¡£
ÏÖÔÚ£¬ÎÒÃèÊöһϱ¾ÎÄÌÖÂ۵ķ¶Î§¡£
¹¹½¨Ê¾Àý
»ã±à£º
GAS£º
as –o program.o program.s
NASM£º
nasm –f elf –o program.o program.asm
Á´½Ó£¨¶ÔÓÚÁ½ÖÖ»ã±àÆ÷ͨÓã©£º
ld –o program program.o
ÔÚʹÓÃÍⲿ C ¿âʱµÄÁ´½Ó·½·¨£º
ld –-dynamic-linker /lib/ld-linux.so.2 –lc –o
program program.o
±¾ÎÄÌÖÂÛ£º
NASM ºÍ GAS Ö®¼äµÄ»ù±¾Óï·¨²îÒì
³£ÓõĻã±à¼¶½á¹¹£¬±ÈÈç±äÁ¿¡¢Ñ»·¡¢±êÇ©ºÍºê
¹ØÓÚµ÷ÓÃÍⲿ C Àý³ÌºÍʹÓú
Ïà¹ØÎĵµ£º
ÔÚlinuxÏÂʹÓù²ÏíÄÚ´æÊ±£¬ÕÕ×ÅÊéÉÏ»òÕßÍøÉϵķ½·¨£¬Ê¹ÓÃshmatº¯Êýʱ£¬ÀÏÊÇ»áÅöµ½Ò»¸öÎÊÌâ
Ìáʾ:
shmat error
permission denied
ÿ´ÎÐèÒªsudoһϲÅÄܹ»Õý³£ÔËÐУ¬²¢ÇÒÈç¹ûÆÕͨÓû§Ê¹ÓÃipcs²é¿´µÄ»°£¬ÊÇ¿´²»¼ûÒѾ·ÖÅäµÄ¹²ÏíÄÚ´æµÄ£¬ÐèÒªÔÚrootÓû§Ï²ÅÄÜ¿´¼û£¬ ×ʼÒÔΪÊÇshmatÐèÒªrootÓû§µÄȨÏÞ£¬ºóÀ´·¢ÏÖ²»ÊÇÕâÑ ......
linux arp ÃüÁî³£ÓòÎÊýÏê½â
ÏÔʾºÍÐ޸ĵØÖ·½âÎöÐÒé(ARP)ʹÓõēIP µ½ÎïÀ픵ØÖ·×ª»»±í¡£
ARP -s inet_addr eth_addr [if_addr]
ARP -d inet_addr [if_addr]
ARP -a [inet_addr] [-N if_addr] [-v]
-a ͨ¹ýѯÎʵ±Ç°ÐÒéÊý¾Ý£¬ÏÔʾµ±Ç° ARP Ïî¡£Èç¹ûÖ¸¶¨ ......
[/home/brimmer/src]$ ctags -R
"
-R"±íʾµÝ¹é´´½¨£¬Ò²¾Í°üÀ¨Ô´´úÂë¸ùĿ¼ÏµÄËùÓÐ×ÓĿ¼ÏµÄÔ´³ÌÐò¡£"
tags"ÎļþÖаüÀ¨ÕâЩ¶ÔÏóµÄÁÐ±í£º
l
ÓÃ
#define¶¨ÒåµÄºê
l
ö¾ÙÐͱäÁ¿µÄÖµ
l  ......
/boot:ÕâÀï´æ·ÅµÄÊÇÆô¶¯LINUXʱʹÓõÄһЩºËÐÄÎļþ¡£
/dev:devÊÇdevice(É豸)µÄËõд¡£Õâ¸öĿ¼ÏÂÊÇËùÓÐLINUXµÄÍⲿÉ豸£¬Æä¹¦ÄÜÀàËÆDOSϵÄ.sysºÍWinϵÄ.vxd¡£ÔÚLINUXÖÐÉ豸ºÍÎļþÊÇÓÃͬÖÖ·½·¨·ÃÎʵġ£ÀýÈç:/dev/hda´ú±íµÚÒ»¸öÎïÀíIDEÓ²ÅÌ¡£
/etc:Õâ¸öĿ¼ÓÃÀ´´æ·ÅËùÓеÄϵͳ¹ÜÀíËùÐèÒªµÄÅäÖÃÎļþºÍ×ÓĿ¼¡£
/bin:bin ......