| ²é¿´: 416 | »Ø¸´: 2 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
sdlj8051½ð³æ (ÖøÃûдÊÖ)
|
[½»Á÷]
dz̸TC¡¢BCºÍ»ã±à»ìºÏ±à³ÌÁ¬½Ó¼¼Êõ¼°²ÎÊý´«µÝ·½·¨[תÌù]
|
||
|
dz̸TC¡¢BCºÍ»ã±à»ìºÏ±à³ÌÁ¬½Ó¼¼Êõ¼°²ÎÊý´«µÝ·½·¨ ×÷ÕߣºCCDebuger ÕªÒª£º±¾ÎÄÖ÷ÒªÌÖÂÛÈçºÎÓ¦ÓûìºÏ±à³Ì¼¼Êõ£¬Èûã±àÓïÑÔÓë¸ß¼¶ÓïÑÔÏà½áºÏ£¬ÒÔ¼ò»¯±à³Ì¹¤×÷¡£ ¹Ø¼ü´Ê£ºTurbo C++£»Borland C++£»Turbo Assembler£»»ìºÏ±à³Ì Ò»¡¢ÒýÑÔ ÔÚÆ½³£±àд³ÌÐòʱ£¬ÎÒÃÇÒ»°ã¶¼Ï£ÍûÑ¡ÔñC¡¢Pascal¡¢BasicµÈÕâÑùµÄ¸ß¼¶ÓïÑÔÀ´±àд£¬ÕâÑùµÄ»°³ÌÐò¿ª·¢ÖÜÆÚ±È½Ï¶Ì£¬Ê¡Ê±Ê¡Á¦¡£µ«ÔںܶàʱºòΪÁËÌá¸ß³ÌÐòµÄÖ´ÐÐЧÂÊ»òÆäËüÔÒò£¬ÎÒÃÇÈ´²»µÃ²»Óûã±à³ÌÐòÀ´±à³Ì¡£Èç¹ûÖ»Óûã±àÓïÑÔ±à³ÌµÄ»°ÊDZȽϷ±ËöµÄ£¬¶ÔÓÚÒ»¸ö±È½Ï´óµÄ³ÌÐòÀ´Ëµ±àдÆðÀ´½«·Ç³£ºÄʱ£¬¿ª·¢ÖÜÆÚ±È½Ï³¤¡£ÎªÁ˼ÈÄÜËõ¶Ì³ÌÐò¿ª·¢ÖÜÆÚ£¬ÓÖÄܱ£Ö¤³ÌÐòµÄÖ´ÐÐЧÂÊ£¬ÎÒÃÇͨ³£»á¿¼ÂÇÓø߼¶ÓïÑÔ±àдÖ÷³ÌÐò£¬¶ø°Ñ³ÌÐòÖÐÓëÖ´ÐÐЧÂʹØÏµÃÜÇеĹؼü²¿·ÖÓûã±àÓïÑÔÀ´±àд¡£ÕâÀï¾ÍÉæ¼°µ½ÁË»ìºÏ±à³ÌµÄÎÊÌâ¡£±¾ÎÄÑ¡ÔñTurbo C++ºÍBorland C++ÕâÖÖÒÔCÓïÑÔΪ»ù´¡µÄ³ÌÐò¿ª·¢¹¤¾ßÓëTurbo AssemblerÕâÑùµÄ»ã±à¿ª·¢¹¤¾ßΪÀý£¬À´ÌÖÂÛһϸ߼¶ÓïÑÔÓë»ã±àÓïÑÔ»ìºÏ±à³ÌµÄÏà¹ØÎÊÌâ¡£ TCÓë»ã±à»ìºÏ±à³Ì ½«CÓïÑԺͻã±àÓïÑÔ»ìºÏʹÓõĴ«Í³·½Ê½ÊÇ£¬ÏÈÍêÈ«ÓÃCÓïÑÔ»ò»ã±àÓïÑÔд³öµ¥¶ÀµÄÄ£¿é£¬±àÒëCÓïÑÔÄ£¿é²¢»ã±à»ã±àÓïÑÔÄ£¿é£¬È»ºó½«·Ö±ð±àÒë¹ýµÄÄ£¿éÁ¬½Óµ½Ò»Æð¡£°´ÕâÖÖ·½Ê½Turbo C++Ä£¿éºÍTurbo AssemblerÄ£¿é¿ÉÒԺܷ½±ãµØ½øÐÐÁ¬½Ó¡£ Óû§¿ÉÒÔ²ÉÓÃÒÔÏÂÃüÁʹCÔ´ÎļþÓë»ã±àÔ´Îļþ»ìºÏ²úÉú¿ÉÖ´ÐÐÎļþ£º tcc filenam1 filenam2.asm ¸ÃÃüÁîָʾTurbo C++Ê×ÏȽ«FILENAM1.C±àÒë³ÉFILENAM1.OBJ£¬ÔÙ¼¤»îTurbo Assembler½«FILENAM2.ASM»ã±à³ÉFILENAM2.OBJ£¬×îºó¼¤»îTLINKÁ¬½ÓFILENAME1.OBJÓëFILENAM2.OBJ²¢²úÉúFILENAM1.EXE¡£ ÕâÖÖ·Ö±ð±àÒëµÄ·½·¨¶ÔÓÚ¿ÉÈ·¶¨´óСµÄ»ã±à´úÂë³ÌÐò¼«ÎªÓÐÓã¬ÒòΪËü¿ÉÒÔÈÃÓû§Ê¹ÓÃTurbo AssemblerµÄÈ«²¿¹¦ÄÜ£¬ÔÚ´¿»ã±àÓïÑÔ»·¾³ÖнøÐлã±àÓïÑÔ³ÌÐòÉè¼Æ£¬²»ÐèÒªasm¹Ø¼ü×Ö¡¢¶îÍâµÄ±àÒëʱ¼äÒÔ¼°Ç¶Èëʽ»ã±àÖÐÓëCÏà¹ØµÄ¸¨Öú¿ªÏú¡£ Turbo C++ÓëTurbo AssemblerµÄ½Ó¿ÚÖУ¬ÓÐÁ½¸öÖØÒªµÄÎÊÌâÖµµÃ×¢Òâ¡£Ê×ÏÈ£¬C´úÂëÓë»ã±àÂëµÄ¸÷¸ö²»Í¬²¿·Ö±ØÐëÇ¡µ±µØÁ¬½ÓÔÚÒ»Æð¡£Æä´Î£¬»ã±àÂë±ØÐëÄÜÇ¡µ±µØ´¦ÀíC·ç¸ñµÄº¯Êýµ÷Ó㬰üÀ¨·ÃÎÊ´«µÝ¹ýÀ´µÄ²ÎÊý¡¢·µ»ØÖµÒÔ¼°×ñ´ÓCº¯ÊýËùÒªÇóµÄ¼Ä´æÆ÷±£´æ¹æÔò¡£ÎªÁ˽«Turbo C++ÓëTurbo AssemblerÄ£¿éÁ¬½ÓÔÚÒ»Æð£¬±ØÐëÍê³ÉÒÔϹ¤×÷£º £¨1£© Turbo C++ÓëTurbo AssemblerÄ£¿é±ØÐëÒÔTurbo C++¿ÉÒÔ½ÓÊܵķ½Ê½¹²ÏíÊʵ±µÄº¯ÊýºÍ±äÁ¿Ãû¡£ £¨2£© Turbo AssemblerÄ£¿é±ØÐëʹÓÃÓëTurbo C++¼æÈݵĶÎÃüÃû·½°¸¡£ ±ØÐëÓÃTLINK½«ÕâЩģ¿éÁ¬½Ó³É¿ÉÖ´ÐгÌÐò¡£´Ëʱ£¬ÎÒÃǹØÐĵÄÊÇÈçºÎ´´½¨Ò»ÖÖģʽ£¬ÒÔ±ã¿ÉÒÔ°´´Ëģʽ±àдÓëC¼æÈݵĻã±àÓïÑÔº¯Êý¡£Îª´Ë£¬ÎÒÃÇÐèÒªÀ´Á˽âÒ»ÏÂÒÔÏÂÄÚÈÝ£º 1¡¢ÄÚ´æÄ£Ê½ºÍ¶Î ¶ÔÓÚÒ»¸ö¸ø¶¨µÄ¿ÉÒÔÓÉCµ÷ÓõĻã±àÓïÑÔº¯Êý£¬¸Ãº¯Êý±ØÐë²ÉÓÃÓëCÓïÑÔÒ»ÖµÄÄÚ´æÄ£Ê½£¨tiny¡¢small¡¢compact¡¢medium¡¢large»òhuge£©£¬Í¬Ê±±ØÐëʹÓÃÓëC¼æÈݵĴúÂë¶Î¡£Í¬Ñù£¬ÎªÁËÈÃC´úÂëÄܹ»·ÃÎÊÔÚ»ã±àÓïÑÔÄ£¿éÖж¨ÒåµÄÊý¾Ý£¬»òÈûã±à´úÂëÄܹ»·ÃÎÊCÄ£¿éÖж¨ÒåµÄÊý¾Ý£¬»ã±àÓïÑÔ´úÂëÎñ±Ø×ñ´ÓCÓïÑÔµÄÊý¾Ý¶ÎÃüÃûÔ¼¶¨¡£ ͨ³££¬»ã±àÓïÑÔÄ£¿éÓÉÈý¸ö»ù±¾¶Î£¨´úÂë¶Î¡¢³õʼ»¯Êý¾Ý¶ÎºÍ·Ç³õʼ»¯Êý¾Ý¶Î£©×é³É¡£Ã¿×éÐÅÏ¢±»°²ÅÅÔÚ¸÷×ԵĶÎÖУ¬¶ÎÃûÈ¡¾öÓëC³ÌÐòËùʹÓõÄÄÚ´æÄ£Ê½¡£Turbo assembler£¨TASM£©ÌṩÁËÈýÖÖ¼ò»¯µÄ¶ÎαָÁ.CODE£¬.DATA£¬.DATA?£©À´¶¨ÒåÕâЩ¶Î¡£ÆäÖУ¬.CODE¶Î±êÖ¾×ųÌÐò´úÂë¶ÎµÄ¿ªÊ¼£¬¸æÖªTurbo AssemblerÓû§Ö¸Á¾¹·ÅÔÚÄĸö´úÂë¶ÎÖС£.DATA±êÖ¾Êý¾Ý¶ÎµÄ¿ªÊ¼£¬Óû§Ó¦½«ÄÚ´æ±äÁ¿·ÅÔÚÊý¾Ý¶ÎÖУ¬´Ë¶ÎÖаüº¬µÄÊÇÒѳõʼ»¯µÄÊý¾Ý¡£.DATA? µÄʹÓÃÓë.DATAÒ»Ñù£¬µ«.DATA? Êý¾Ý¶ÎÖаüº¬µÄÊÇδ³õʼ»¯µÄÊý¾Ý¡£ÕâЩ¼ò»¯µÄ¶ÎαָÁî²úÉúµÄ¶ÎÓëTurbo C++¼æÈÝ¡£ αָÁî.MODEL¸æËßTurbo Assembler£¬Óüò»¯µÄ¶ÎαָÁî´´½¨µÄ¶ÎÓëÑ¡¶¨µÄÄÚ´æÄ£Ê½¼æÈÝ£¬²¢¿ØÖÆÓÃPROCαָÁî´´½¨µÄ¹ý³ÌµÄÒþº¬ÀàÐÍ¡£ÓÉ.MODELαָÁÒåµÄÄÚ´æÄ£Ê½Óë¾ßÓÐͬÑùÃüÃûµÄTurbo C++ģʽÊǼæÈݵġ£ÈôC³ÌÐòÑ¡ÔñÁËСÄÚ´æÄ£Ê½£¬ÏÂÃæÁгöÁ˲ÉÓüò»¯µÄ¶ÎαָÁî×éÖ¯»ã±àÄ£¿éµÄÒ»ÖÖ·½Ê½£º ´úÂë:-------------------------------------------------------------------------------- .MODEL SMALL .CODE ¡´úÂë¶Î¡ .DATA ¡³õʼ»¯Êý¾Ý¶Î¡ .DATA? ¡·Ç³õʼ»¯Êý¾Ý¶Î¡ -------------------------------------------------------------------------------- 2¡¢»ã±àÓïÑÔÓëTurbo C++µÄ½»»¥ÐÔ ´Ë´¦×ÅÖØÌÖÂÛ²ÎÊý´«µÝ¡¢·µ»ØÖµ¼°¼Ä´æÆ÷ʹÓÃÔ¼¶¨¡£ ¼ÙÉèÎÒÃDZàдһ¸öÇó×îСÊýµÄº¯Êýmin£¬ÆäCÓïÑԵĺ¯ÊýÔÐÍΪ£º extern ¡°C¡± int min(int V1,int V2); ´Ëº¯Êý·µ»ØÁ½¸ö²ÎÊýÖеÄ×îСֵ¡£ÔÚ»ã±àÓïÑÔÖÐÆäÕûÌå¸ñʽÈçÏ£º ´úÂë:-------------------------------------------------------------------------------- PUBLIC C min min PROC C NEAR ¡ min ENDP -------------------------------------------------------------------------------- ÕâÀï¼Ù¶¨minΪnearº¯Êý£¬ÈôΪfarº¯Êý£¬¿É½«ÉÏÃæ¸ñʽÖеÄnear»»³Éfar¡£ £¨1£©´«µÝ²ÎÊý Ê×ÏÈ¿¼ÂÇʹÓÃÄÄÒ»ÖÖ²ÎÊý´«µÝ·½·¨¡£³ý·ÇÓÐÊʵ±µÄÀíÓÉ£¬·ñÔòÓ¦¸ÃʹÓÃC²ÎÊý´« µÝ·½·¨¶ø²»ÓÃPascal²ÎÊý´«µÝ·½·¨¡£¶ÔÓÚ16λµÄ³ÌÐò£¬µ±min±»µ÷ÓÃʱ£¬Õ»µÄÄÚÈÝÈçÏ£º SP+4: V2 SP+2: V1 SP: ·µ»ØµØÖ· ÈçÏë²»ÍËÕ»¾ÍÈ¡µÃ²ÎÊý£¬ÔòÐè±£´æ»ùÖ¸Õë¨BP£©£¬½«Õ»¶¥Ö¸Õ루SP£©ËÍBP£¬È»ºóÓÃBP×÷ΪϱêÖ±½Óµ½Õ»ÖÐÈ¡µÃ²ÎÊýÖµ¡£´ËʱÐè×¢Ò⣺Èô°ÑBPѹÈëÕ»ÄÚ£¬Ôò²ÎÊýµÄÆ«ÒÆÁ¿½«¼Ó2£¬ÒòΪÏÖÔÚÕ»ÄÚÓÖÔö¼ÓÁËÁ½¸ö×Ö½Ú¡£ £¨2£©·µ»ØÖµ ÕýÈçCº¯ÊýÒ»Ñù£¬¿ÉÓÉCµ÷ÓõĻã±àÓïÑÔº¯ÊýÒ²¿ÉÒÔ·µ»ØÖµ¡£º¯ÊýÖµµÄ·µ»ØÐÎʽÔÚͨ³£Çé¿öÏ£¬16λֵ·µ»Øµ½AXÖУ»32λֵ·µ»Øµ½DX:AXÖУ¬ÆäÖÐDX´æ·Å¸ß16λֵ£¬¶øAX´æ·ÅµÍ16λֵ£»¸¡µãÖµ·µ»Øµ½8087/80287Õ»¶¥£¨TOS£©¼Ä´æÆ÷£¬¼´ST(0)ÖУ»Èç¹ûʹÓÃ8087/80287·ÂÕæÆ÷£¬Ôò·µ»ØÖµ´æ·ÅÔÚ·ÂÕæÆ÷µÄTOS¼Ä´æÆ÷ÖС£½á¹¹µÄ·µ»ØÒªÉÔ¸´ÔÓһЩ¡£1¸ö×Ö½Ú³¤µÄ½á¹¹·µ»Øµ½ALÖУ»2¸ö×Ö½Ú³¤µÄ½á¹¹·µ»Øµ½AXÖУ»4¸ö×Ö½Ú³¤µÄ½á¹¹·µ»Øµ½DX:AXÖУ»3×ֽڵĽṹ»ò´óÓÚ5×ֽڵĽṹÔò±£´æÔÚ¾²Ì¬Êý¾ÝÇøÖУ¬È»ºó·µ»ØÖ¸Ïò´Ë¾²Ì¬Êý¾ÝµÄÖ¸Õ루СÊý¾ÝģʽÖÃÓÚAXÖУ¬´óÊý¾ÝģʽֻÓÐDX:AXÖУ©¡£µ÷ÓÃ×Ó³ÌÐòʱ±ØÐë°Ñ·µ»ØÖµ¿½±´µ½Õâ¸öÖ¸ÕëËùÖ¸µÄµ¥ÔªÖС£ ÀýÈ磬minº¯Êý·µ»ØµÄʱ16λÊýÖµ£¬ËùÒÔÆä·µ»ØÖµÔÚAXÖС£ÏÂÃæÊÇminµÄ»ã±à´úÂ룺 ´úÂë:-------------------------------------------------------------------------------- PUBLIC C min min PROC C NEAR PUSH BP ;±£´æBP MOV BP,SP ;½«SP¿½±´µ½BPÖÐ MOV AX,[BP+4] ;½«V1Ë͵½AXÖÐ CMP AX,[BP+6] ;ÓëV2±È½Ï JLE EXIT ;Èç¹ûV1>V2 MOV AX,[BP+6] ;½«V2ËÍAXÖÐ EXIT: POP BP ;»Ö¸´BP RET ;·µ»ØC min ENDP -------------------------------------------------------------------------------- Èç¹ûminÊÇfarº¯Êý£¬ÔòÖ÷ÒªÔÚÕ»µÄÈë¿Ú´¦·¢ÉúÁ˱仯£¬ÏÖÔÚÕ»ÄÚµÄÇé¿öÊÇ£º SP+6: V2 SP+4: V1 SP+2: ·µ»Ø¶ÎµØÖ· SP: ·µ»ØÆ«ÒÆÁ¿ Õâ¾ÍÒâζ×ÅÕ»µÄÆ«ÒÆÁ¿ÒÑÔö¼ÓÁËÁ½¸ö×Ö½Ú£¬ÒòΪÁ½¸ö¶îÍâ×Ö½Ú£¨·µ»Ø¶ÎµØÖ·£©±»Ñ¹½øÕ»ÄÚ¡£ÔÚminº¯ÊýµÄfar°æ±¾ÖУ¬V1½«ÔÚ[BP+6]ÖУ¬V2½«ÔÚ[BP+8]ÖС£ÕâÊÇÒòΪ·µ»Ø¶ÎµØÖ·±»Ñ¹ÈëÕ»ÄÚ£¬V1¡¢V2µÄÆ«ÒÆÁ¿Ôö¼ÓÁËÁ½¸ö×Ö½Ú¡£ Èç¹ûʹÓÃPascal²ÎÊý´«µÝ˳Ðò£¬ÔòÕ»ÄÚÇé¿ö±ä»¯ÈçÏ£¨¼ÙÉèminÊÇnearº¯Êý£©£º SP+4: V1 SP+2: V2 SP: ·µ»ØµØÖ· ´Ëʱ£¬±êʶ·ûmin±ØÐë×ñ´ÓPascalÀàÐ͵ÄÔ¼¶¨£ºÊ¹Óôóд×ÖĸºÍ²»¼Óǰ׺Ï»®Ïߵıêʶ·û¡£ ³ýÁËV1ºÍV2½»»»ÁËλÖÃÍ⣬´Ë·½·¨»¹ÐèÒªminÔÚ·µ»ØÊ±ÓÃretÖ¸ÁîÇåÕ»¡£ÔÚ±¾ÀýÖУ¬±ØÐ뵯³öV1ºÍV2µÄËĸö×Ö½Ú£¨·µ»ØµØÖ·ÓÉretÖ»ÄÜ×Ô¶¯µ¯³ö£©¡£ ÏÂÃæÊDzÉÓÃPascal²ÎÊý´«µÝ·½·¨µÄmin»ã±à´úÂ룺 ´úÂë:-------------------------------------------------------------------------------- PUBLIC PASCAL min min PROC PASCAL NEAR PUSH BP ;±£´æBP MOV BP,SP ;½«SP¿½±´µ½BPÖÐ MOV AX,[BP+6] ;½«V1Ë͵½AXÖÐ CMP AX,[BP+4] ;ÓëV2±È½Ï JLE EXIT ;Èç¹ûV1>V2 MOV AX,[BP+6] ;½«V2ËÍAXÖÐ EXIT: POP BP ;»Ö¸´BP RET 4 ;ÇåÕ»²¢·µ»Ø min ENDP -------------------------------------------------------------------------------- £¨3£©¼Ä´æÆ÷µÄʹÓÃÔ¼¶¨ ÔÚminº¯ÊýÖУ¬Ê¹ÓÃÁ˶à¸ö¼Ä´æÆ÷¡£ÏÖÔÚÌÖÂÛÔÚTurbo C++³ÌÐòÖн«Ê¹ÓÃÄÄЩ¼Ä´æÆ÷£¬ÒÔ¼°Ê¹ÓÃÖеÄһЩԼ¶¨¡£ ÔÚËùÓмĴæÆ÷ÖУ¬BPÓ¦Ê×ÏÈÒýÆð×¢Ò⣬ÒòΪһµ©½øÈë»ã±à³ÌÐò£¬BPµÄÄÚÈÝÔÚ×Ó³ÌÐòÈë¿Ú´¦±»Ñ¹ÈëÕ»ÄÚ£¬²¢ÇÒÕ»Ö¸Õ루SP£©µÄµ±Ç°Öµ±ØÐë·ÅÔÚBPÖУ¬ÔÚ×Ó³ÌÐò³ö¿Ú´¦BP±»µ¯³ö£¬»Ö¸´ÔÀ´µÄÖµ¡£ ÆäËûÐè×¢ÒâµÄÊÇSIºÍDI¼Ä´æÆ÷£¬ÕâÁ½¸ö¼Ä´æÆ÷±»Turbo C++ÓÃ×÷¼Ä´æÆ÷±äÁ¿¡£Èç¹ûÔÚÒ»¸ö»ã±àÓïÑÔ¹ý³ÌÖÐʹÓÃËüÃÇ£¬ÔòÓ¦ÔÚ½øÈëʱ±£´æËüÃÇ£¨¿ÉÄÜÔÚÕ»ÖУ©£¬ÔÚÍ˳öʱ»Ö¸´ËüÃÇ¡£ 3¡¢Turbo C++Öе÷Óûã±àÄ£¿éµÄ·½·¨ Ò»°ãÇé¿öÏ£¬Turbo C++Ï£ÍûËùÓеÄÍⲿ±êºÅ¾ùÒÔÏ»®Ïß¡°_¡±¿ªÍ·¡£Èç¹û»ã±àÄ£¿éÖж¨ÒåµÄº¯Êý¼°±äÁ¿×¼±¸¹©Turbo C++µ÷Óã¬Ó¦ÒÔÏ»®Ïß¿ªÍ·¡£Èô²»ÏëʹÓÃÏ»®Ïߵϰ£¬¿ÉÔÚPUBLICºó¼ÓC±êÃ÷µ÷ÓõÄÓïÑÔÀàÐÍ¡£ÈçÈôÓк¯ÊýXXX£¬Òª¶¨ÒåΪ¹©Turbo C++µ÷Óõĺ¯Êý£¬¿ÉÕâÑùдΪPUBLIC C XXX ¶ø²»ÐèдΪͨ³£µÄPUBLIC _XXX¡£»ã±à³ÌÐò¶Ô×ÖĸµÄ´óСд²¢²»Ãô¸Ð£¬ËùÒÔ²»Çø±ð¶Ô´ý´óд×ÖĸºÍСд×Öĸ£¬¶ø½ÔÒÔ´óд×Öĸ¶Ô´ý¡£ÒòΪCÓïÑÔÇø±ð¶Ô´ý´óСд×Öĸ£¬ËùÒÔÔÚ±àд׼±¸ÓëCÄ£¿éÏàÁ¬½ÓµÄ»ã±àÄ£¿éʱ£¬Ó¦¸Ã×¢Òâ·ûºÅÃûµÄ´óСд£¬ÒԱ㱣³ÖÒ»Ö¡£¶øÇÒ£¬ÒªÍ¨Öª»ã±à³ÌÐò¶Ô´óÐ¡Ð´Çø±ð¶Ô´ý£¬ÖÁÉÙ¶ÔÓÚCÄ£¿éºÍ»ã±àÄ£¿éËù¹²ÏíµÄÄÇЩ·ûºÅ¶øÑÔÓ¦¸ÃÈç´Ë¡£»ã±à³ÌÐòµÄÃüÁîÐпÉÑ¡Ïî /ml ºÍ /mx ¿ÉÒÔ×öµ½ÕâÒ»µã¡£»ã±à³ÌÐòµÄÃüÁîÐпÉÑ¡Ïî /ml ʹµÃ»ã±àÖ»¶Ô¹«¹²±êʶ·ûºÍÍⲿ±êʶ·ûµÈ°´´óÐ¡Ð´Çø±ð¶Ô´ý¡£°´±¾»úÅäÖñàдһ¸öTurbo C++ºÍ»ã±à»ìºÏ±à³ÌµÄ³ÌÐòµÄ²½ÖèÈçÏ£º £¨1£© ÒòΪÔÚ±¾»úÉÏTurbo C++ 3.0£¨ÒÔϼò³ÆTC£©ºÍTurbo Assembler 5.0£¨ÒÔϼò³ÆTASM£©¶¼°²×°ÔÚEÅÌ£¬Æä¿ÉÖ´ÐÐÎļþ·Ö±ðλÓÚE:\TC\BIN¼°E:\TASM\BINĿ¼Ï¡£ÓÚÊDZ༻·¾³±äÁ¿ÖеÄϵͳ±äÁ¿ÄÚµÄpathÖµ£¬Ìí¼ÓÒÔÏÂÄÚÈÝ£ºE:\TC\BIN; E:\TASM\BIN ¡£ÕâÑù×öµÄÄ¿µÄÊÇΪÁË¿ÉÒÔÔÚTCµÄ¼¯³É¿ª·¢»·¾³ÖÐÖ±½Óµ÷ÓÃTASMÀ´±àÒë»ã±àÎļþ£¬¶ø²»Ðèתµ½TASMĿ¼ÔÚÃüÁîÐÐϱàÒë»ã±àÎļþ¡£ £¨2£© Æô¶¯TC¼¯³É¿ª·¢»·¾³Ð½¨Ò»¸ö¹¤³Ì£¬ÃüÃûΪASMTEST.PRJ¡£Ìí¼ÓASMTEST.CPP¼°ADD.ASMÁ½¸öÎļþ£¬Ô´Âë·Ö±ðÈçÏ£¨ÒÑÔÚTCϵ÷ÊÔͨ¹ý£©£º ´úÂë:-------------------------------------------------------------------------------- // ³ÌÐòÃû£ºASMTEST.CPP #include "stdio.h" extern "C" //ÉùÃ÷ÔÚÍⲿģ¿éÖж¨ÒåµÄº¯Êý { int addnum( int , int ); } main() { int x,y; //¶¨Òå±äÁ¿ printf("Please input x,y,the space key to compart:=>" ;scanf("%d %d",&x,&y); printf("x+y=%d\n",addnum(x,y)); return (0); } -------------------------------------------------------------------------------- ´úÂë:-------------------------------------------------------------------------------- ;³ÌÐòÃû£ºADD.ASM DOSSEG .MODEL small ;ÉùÃ÷ÄÚ´æÄ£Ê½ ;.DATA ;Êý¾Ý¶Î䶨Ò壬´Ë´¦Îª¿Õ .CODE ;´úÂë¶Î PUBLIC C addnum ;¶¨Ò庯Êý addnum PROC C NEAR x:WORD,y:WORD ;¶¨Òå±äÁ¿ mov ax,x mov bx,y add ax,bx ret addnum ENDP END -------------------------------------------------------------------------------- ÒÔÉϵÄASMTEST.CPP³ÌÐòµ÷ÓÃADD.ASMÖеÄaddnumº¯Êý£¬À´ÊµÏÖÁ½¸öÊýÏà¼Ó¡£Íê³É´úÂëÊäÈëºó£¬±àÒëºó¼´¿ÉÔËÐС£ÁíÒ»ÖÖÔÚ»ã±à³ÌÐòÖж¨ÒåÒÔÏ»®Ïß¡°_¡±¿ªÍ·µÄº¯ÊýµÄ·½·¨¿É²Î¿¼¸½¼þÖÐTOTAL¹¤³ÌÄÚµÄÎļþ¡£ [ Last edited by sdlj8051 on 2006-12-24 at 23:32 ] |
» ²ÂÄãϲ»¶
284Çóµ÷¼Á
ÒѾÓÐ10È˻ظ´
һ־Ըɽ¶«´óѧҩѧѧ˶Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
07»¯Ñ§280·ÖÇóµ÷¼Á
ÒѾÓÐ4È˻ظ´
298-Ò»Ö¾Ô¸Öйúũҵ´óѧ-Çóµ÷¼Á
ÒѾÓÐ12È˻ظ´
Çó²ÄÁÏ£¬»·¾³×¨Òµµ÷¼Á
ÒѾÓÐ3È˻ظ´
335Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´
Çóµ÷¼Á
ÒѾÓÐ7È˻ظ´
Ò»Ö¾Ô¸¼ª´ó»¯Ñ§322Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
»·¾³Ñ§Ë¶288Çóµ÷¼Á
ÒѾÓÐ8È˻ظ´
341Çóµ÷¼Á(Ò»Ö¾Ô¸ºþÄÏ´óѧ070300)
ÒѾÓÐ6È˻ظ´
sdlj8051
½ð³æ (ÖøÃûдÊÖ)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 0.1
- ½ð±Ò: 1149.8
- ºì»¨: 3
- Ìû×Ó: 2254
- ÔÚÏß: 18.1Сʱ
- ³æºÅ: 71297
- ×¢²á: 2005-05-30
- רҵ: µç·Óëϵͳ
|
¶þ¡¢ Borland C++Óë»ã±àµÄ»ìºÏ±à³Ì ÔÚ±¾»úÉÏBorland C++£¨¼ò³ÆÎªBC£©°æ±¾Îª5.02£¬°²×°ÔÚF:\BC5Ŀ¼Ï£¬¿ÉÖ´ÐÐÎļþλÓÚF:\BC5\BINĿ¼¡£ÔÚ´ËÌÖÂÛÔÚBC¿ª·¢µÄWindows ³ÌÐòÖе÷Óûã±à³ÌÐò¡£ BCµ÷Óûã±àÄ£¿éÓëTCµ÷Óûã±àÄ£¿éµÄ·½·¨»ù±¾Ïàͬ£¬Ö»Óм¸¸öÐè×¢ÒâµÄµØ·½£º ÒòΪºÍ 16 λ Windows ϵİѴúÂë·Ö³É DATA£¬CODE µÈ¶ÎµÄÄÚ´æÄ£Ê½²»Í¬£¬WIN32 Ö»ÓÐÒ»ÖÖÄÚ´æÄ£Ê½£¬¼´ FLAT ģʽ£¬Òâ˼ÊÇ"ƽ̹"µÄÄÚ´æÄ£Ê½£¬ÔÙûÓÐ 64K µÄ¶Î´óСÏÞÖÆ£¬ËùÓÐµÄ WIN32 µÄÓ¦ÓóÌÐòÔËÐÐÔÚÒ»¸öÁ¬Ðø¡¢Æ½Ì¹¡¢¾Þ´óµÄ 4GB µÄ¿Õ¼äÖС£ÕâͬʱҲÒâζ×ÅÄúÎÞÐëºÍ¶Î¼Ä´æÆ÷´ò½»µÀ£¬Äú¿ÉÒÔÓÃÈÎÒâµÄ¶Î¼Ä´æÆ÷ѰַÈÎÒâµÄµØÖ·¿Õ¼ä£¬Õâ¶ÔÓÚ³ÌÐòÔ±À´ËµÊǷdz£·½±ãµÄ¡£ÔÚWin32ϱà³Ì£¬ÓÐÐí¶àÖØÒªµÄ¹æÔòÐèÒª×ñÊØ¡£ÓÐÒ»ÌõºÜÖØÒªµÄÊÇ£ºWindows ÔÚÄÚ²¿Æµ·±Ê¹Óà ESI£¬EDI£¬EBP£¬EBX ¼Ä´æÆ÷£¬¶øÇÒ²¢²»È¥¼ì²âÕâЩ¼Ä´æÆ÷µÄÖµÊÇ·ñ±»¸ü¸Ä£¬ÕâÑùµ±ÄúҪʹÓÃÕâЩ¼Ä´æÆ÷ʱ±ØÐëÏȱ£´æËüÃǵÄÖµ£¬´ýÓÃÍêºóÔÙ»Ö¸´ËüÃÇ¡£ ÔÚWIN32Ö¸¶¨ÄÚ´æÄ£Ê½²ÎÊýµ÷ÓùæÔòʱ¿ÉÕâÑù¶¨Ò壺 .MODEL FLAT£¬STDCALL ´Ë´¦µÄSTDCALL ¸æËß±àÒëÆ÷²ÎÊýµÄ´«µÝÔ¼¶¨¡£Ç°ÃæÎÒÃÇÒѾ̸µ½Á˵÷ÓÃÔ¼¶¨µÄÎÊÌ⣬ÕâÀïÎÒÃÇÔÙÀ´×ÐϸÌÖÂÛһϣºÔÚWin16ÏÂÓÐÁ½ÖÖÔ¼¶¨£ºC ºÍ PASCAL¡£C Ô¼¶¨¹æ¶¨²ÎÊý´«µÝ˳ÐòÊÇ´ÓÓÒµ½×󣬼´×îÓұߵIJÎÊý×îÏÈѹջ£¬Óɵ÷ÓÃÕ߻ָ´¶ÑÕ»Ö¸Õë¡£PASCALÔ¼¶¨ºÍCÔ¼¶¨ÕýºÃÏà·´£¬Ëü¹æ¶¨²ÎÊýÊÇ´Ó×óÏòÓÒ´«µÝ£¬Óɱ»µ÷ÓÃÕ߻ָ´¶ÑÕ»¡£Win16²ÉÓÃÁËPASCALÔ¼¶¨£¬ ÒòΪPASCALÔ¼¶¨²úÉúµÄ´úÂëÁ¿ÒªÐ¡¡£STDCALLÊÇCÔ¼¶¨ºÍPASCALÔ¼¶¨µÄ»ìºÏÌ壬Ëü¹æ¶¨²ÎÊýµÄ´«µÝÊÇ´ÓÓÒµ½×󣬻ָ´¶ÑÕ»µÄ¹¤×÷½»Óɱ»µ÷ÓÃÕß¡£ ÔÚBCËù½¨Á¢µÄ¹¤³ÌÖеĻã±àÄ£¿é£¬µ÷ÓÃCÄ£¿éÖеÄÍⲿ±äÁ¿Ê±¿É²»ÔÚ±äÁ¿Ç°¼ÓÏ»®Ïß¡°_¡±¡£ÓÉ´Ë£¬¿É½¨Á¢Ò»¸öµ÷Óûã±àÄ£¿éµÄ¼òµ¥Ê¾Àý³ÌÐòÈçÏ£¨ÒÑÔÚBCϵ÷ÊÔͨ¹ý£©£º ÔÚBCÖÐн¨Ò»¸öAsmInc¹¤³Ì£¬´Ë´¦Ê¹ÓÃSDK·½·¨£¬¼´²»Ê¹ÓÃOWL£¬Ö»Ê¹ÓÃWINAPI¡£ÉèÖÃΪ¾²Ì¬Á¬½Ó£¬Ìí¼ÓÒÔϼ¸¸öÎļþ£º ´úÂë:-------------------------------------------------------------------------------- //³ÌÐòÃû£ºAsmInc.cpp ////////////////////////////////////////////////////////////////////////////////////////////////// //Ô¤´¦Àí #include "windows.h" #include "stdio.h" #include "string.h" ///////////////////////////////////////////////////////////////////////////////////////////////// //È«¾Ö±äÁ¿ extern "C" { void Gen( void ); //¶¨ÒåÍⲿģ¿é char username[255] = ""; //¶¨ÒåÓû§ÃûºÍÃÜÂë char serial[255] = ""; } HINSTANCE hInst; //Ó¦ÓóÌÐò½ø³Ì¾ä±ú£¬Ò»°ã³ÌÐòÖо³£Óõ½´Ë±äÁ¿£¬¹ÊʹÓÃÈ«¾Ö±äÁ¿ HWND hwnd; //Ö÷´°¿Ú¾ä±ú£¬Ò»°ã³ÌÐòÖо³£Óõ½´Ë±äÁ¿£¬¹ÊʹÓÃÈ«¾Ö±äÁ¿ ///////////////////////////////////////////////////////////////////////////////////////////////// //º¯ÊýÉùÃ÷ LRESULT CALLBACK KeyGen(HWND, UINT, WPARAM, LPARAM); ///////////////////////////////////////////////////////////////////////////////////////////////// //Ö÷º¯Êý int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { DialogBox(hInst,MAKEINTRESOURCE( 1 ),NULL,(DLGPROC) KeyGen); return (FALSE); } ///////////////////////////////////////////////////////////////////////////////////////////////// //¶Ô»°¿òÖ÷º¯Êý LRESULT CALLBACK KeyGen(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { char *sn; //ÓÃÓÚÁÙʱ´æ·ÅÉú³ÉµÄÃÜÂë switch(message) { case WM_COMMAND: switch(LOWORD (wParam)) { case WM_INITDIALOG: LoadIcon( hInst , MAKEINTRESOURCE(1)); //ÉèÖóÌÐòͼ±ê break; case 105: //´¦ÀíÊäÈëµÄÓû§Ãû GetDlgItemText( hDlg, 103, username, 255); Gen(); //µ÷ÓÃÍⲿģ¿é sn = serial; SetDlgItemText( hDlg , 104 , sn); //°Ñ¼ÆËãºóµÄÃÜÂëÊä³ö break; case 106: { MessageBox( NULL, TEXT("********»ìºÏ±à³ÌʾÀý********\n\n*******By cao_cong********\n******2005Äê2ÔÂ5ÈÕ*****" ,TEXT("¹ØÓÚ" ,MB_OK);return 0; } break; case 107: EndDialog ( hDlg , 107); break; } default : return (FALSE); } return (TRUE); } -------------------------------------------------------------------------------- ´úÂë:-------------------------------------------------------------------------------- ;³ÌÐòÃû£ºGen.asm .386 .MODEL FLAT STDCALL ;¶¨ÒåʹÓõÄÄÚ´æÄ£Ê½¼°²ÎÊýµ÷Ó÷½Ê½ PUBLIC Gen ;ÉùÃ÷º¯Êý .DATA EXTERN username ;ÉùÃ÷ÔÚÆäËûÄ£¿éÖж¨ÒåµÄ±äÁ¿ EXTERN serial .CODE Gen PROC C ;Ö÷º¯Êý PUSH EBX ;±£´æEBX XOR EAX,EAX XOR EBX,EBX XOR ECX,ECX @LOOP: MOV EBX,[username+ECX] ;»ñµÃÓû§ÊäÈëµÄÐÕÃû MOV serial+ECX,EBX ;°ÑÐÕÃûË͵½ÃÜÂëÖÐ INC ECX CMP BYTE PTR ES:[username+ECX],0 ;¼ì²âÊÇ·ñÒÑËÍÍê JNZ @LOOP POP EBX ;»Ö¸´EBX ret Gen endp END -------------------------------------------------------------------------------- ´úÂë:-------------------------------------------------------------------------------- //×ÊÔ´Îļþ£ºAsmInc.rc£¨ÕªÂ¼£© #define IDI_ICON 1 #define IDD_KEYGEN 1 #define IDC_STATICTEXT1 101 #define IDC_STATICTEXT2 102 #define IDC_NAME 103 #define IDC_SN 104 #define IDEXIT 107 #define IDABOUT 106 #define IDGEN 105 IDD_KEYGEN DIALOG 0, 0, 208, 85 STYLE DS_MODALFRAME | DS_3DLOOK | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "»ìºÏ±à³ÌʾÀý" FONT 9, "ËÎÌå" LANGUAGE LANG_CHINESE , SUBLANG_CHINESE_SIMPLIFIED { CONTROL "ÐÕÃû£º", IDC_STATICTEXT1, "static", SS_CENTER | WS_CHILD | WS_VISIBLE, 8, 16, 36, 12 CONTROL "ÃÜÂ룺", IDC_STATICTEXT2, "static", SS_CENTER | WS_CHILD | WS_VISIBLE, 8, 40, 36, 12 CONTROL "", IDC_NAME, "edit", ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 44, 12, 156, 14 CONTROL "", IDC_SN, "edit", ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 44, 36, 156, 17 CONTROL "Éú³ÉÃÜÂë", IDGEN, "button", BS_PUSHBUTTON | BS_CENTER | BS_FLAT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 24, 60, 44, 17 CONTROL "¹Ø ÓÚ", IDABOUT, "button", BS_PUSHBUTTON | BS_CENTER | BS_FLAT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 90, 60, 44, 17 CONTROL "Í˳ö", IDEXIT, "button", BS_PUSHBUTTON | BS_CENTER | BS_FLAT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 156, 60, 44, 17 } -------------------------------------------------------------------------------- ÒÔÉϳÌÐò¹¦ÄÜÖ÷ÒªÊǰÑÄãÊäÈëµÄÐÕÃûÔÚÃÜÂë¿òÖÐÊä³ö£¬Ö÷ÒªÓÃÓÚ˵Ã÷µ÷Óûã±àÄ£¿éµÄ·½·¨¡£ ²Î¿¼ÎÄÏ×£º 1¡¢ÁÖºàÀû¡¢³ÂάÐË¡¢³ÉÓå ±àÒë£ºÃæÏò¶ÔÏóµÄ³ÌÐòÉè¼ÆÏµÍ³ TURBO C++Ó¦Óý̳̣¨ÖУ©£¬Ç廪´óѧ³ö°æÉ磬1992 2¡¢Ñî¼¾ÎÄ µÈ±àÖø£º80X86 »ã±àÓïÑÔ³ÌÐòÉè¼Æ½Ì³Ì£¬Ç廪´óѧ³ö°æÉ磬1998 3¡¢Çóʵ ±àÖø£º×îРBorland C++ ʵÓÃ½Ì³Ì 1£ºBorland C++ ÈëÃÅ£¬¿ÆÑ§³ö°æÉ磬1994 4¡¢ÍõËÉ ÕÅÁ¼ÖÎ ±à£ºBorland C++ ʵÓü¼ÊõÈëÞ«½â£¨3.1¡«4.0£©£¬µç×ӿƼ¼´óѧ³ö°æÉ磬1995 ¡¾°æÈ¨ÉùÃ÷¡¿ ±¾ÎÄ´¿Êô¼¼Êõ½»Á÷, ×ªÔØÇë×¢Ã÷×÷Õß²¢±£³ÖÎÄÕµÄÍêÕû, лл! |
2Â¥2006-08-23 13:07:59
sirenshen
ľ³æ (ÕýʽдÊÖ)
- Ó¦Öú: 1 (Ó×¶ùÔ°)
- ½ð±Ò: 4952.1
- Ìû×Ó: 691
- ÔÚÏß: 165.3Сʱ
- ³æºÅ: 86685
- ×¢²á: 2005-08-16
- ÐÔ±ð: GG
- רҵ: È˹¤ÖÇÄÜÓë֪ʶ¹¤³Ì
3Â¥2006-11-17 15:10:41













;
»Ø¸´´ËÂ¥