·ÒëÒ»°ëµÄDelphi»ã±à°ïÖú
The built-in assembler allows you to write assembly code within Delphi programs. It has the following features:
ÄÚǶµÄ»ã±àÆ÷ÔÊÐíÔÚdelphi³ÌÐòÖÐÊéд»ã±à´úÂ룬ËûÓÐÈçÏÂÌØÐÔ£º
Allows for inline assembly
ÔÊÐíÄÚǶ»ã±à
Supports all instructions found in the Intel Pentium III, Intel MMX extensions, Streaming SIMD
Extensions (SSE), and the AMD Athlon (including 3D Now!)
Ö§³ÖËùÓÐÖ¸ÁÈçÓ¢ÌØ¶û±¼Èý´¦ÀíÆ÷£¬Ó¢ÌضûMMXÀ©Õ¹£¬Streaming SIMDÀ©Õ¹£¨SSE£©£¬ÒÔ¼°AMD Athlon´¦ÀíÆ÷£¨°üÀ¨3D£©
Provides no macro support, but allows for pure assembly function procedures
²»ÌṩºêÖ§³Ö£¬µ«ÔÊÐí´¿»ã±àº¯Êý¹ý³Ì
Permits the use of Delphi identifiers, such as constants, types, and variables in assembly statements
ÔÊÐíʹÓÃdelphi±êʶ·û£¬ÖîÈçÔÚ»ã±à¶ÎÄڵij£Á¿£¬ÀàÐͺͱäÁ¿
As an alternative to the built-in assembler, you can link to object files that contain external procedures and functions. See External declarations for more information.
µ±Ìæ´úÄÚÖûã±àµÄʱºò£¬Äã¿ÉÒÔÁ´½Óµ½Ò»¸ö°üº¬ÓÐÍⲿ¹ý³ÌºÍº¯ÊýµÄÄ¿±êÎļþ¡£¸ü¶àµÄÐÅÏ¢²é¿´ÍⲿÉùÃ÷¡£
Note
×¢Ò⣬Èç¹ûÄãÓÐÍⲿ»ã±à´úÂ룬ÄãÏë°ÑËüÃÇÓÃÔÚÄãµÄÓ¦ÓóÌÐòÖУ¬ÄãÒª¿¼ÂÇÔÚDelphiÖÐÖØÐ´Ëû£¬»òÕß×îµ×Ï޶ȵÄʹÓÃÄÚǶ»ã±àÀ´ÊµÏÖ¡£
If you have external assembly code that you want to use in your applications, you should consider rewriting it in the Delphi language or minimally reimplement it using the inline assembler.
The built-in assembler is accessed through asm statements, which have the form
ÄÚǶ»ã±àͨ¹ýasm±êʶ·ûÀ´´æ´¢£¬Ê¹ÓÃend¶ÎÀ´½áÊø¡£
asm statementList end
where statementList is a sequence of assembly statements separated by semicolons, end-of-line characters, or Delphi comments.
»ã±à¶ÎʹÓ÷ֺÅÀ´·Ö¸î»ã±à´úÂë¶Î£¬×Ö·ûµÄĩβ¿ÉÒÔʹÓÃdelphi×¢ÊÍ¡£
Comments in an asm statement must be in Delphi style. A semicolon does not indicate that the rest of the line is a comment.
ÄÚǶ»ã±àµÄ×¢ÊͱØÐëÊÇdelphiµÄ·ç¸ñ£¬·ÖºÅ²¢²»Äܱíʾµ±Ç°ÐÐÊ£Óಿ·Ö¾ÍÊÇ×¢ÊÍ¡£
The reserved word inline and the directive assembler are
Ïà¹ØÎĵµ£º
´ó¼Ò¶¼ÈÏΪ£¬CÓïÑÔÖ®ËùÒÔÇ¿´ó£¬ÒÔ¼°Æä×ÔÓÉÐÔ£¬ºÜ´ó²¿·ÖÌåÏÖÔÚÆäÁé»îµÄÖ¸ÕëÔËÓÃÉÏ¡£Òò´Ë£¬ËµÖ¸ÕëÊÇCÓïÑÔµÄÁé»ê£¬Ò»µã¶¼²»Îª¹ý¡£Í¬Ê±£¬ÕâÖÖ˵·¨Ò²ÈúܶàÈ˲úÉúÎó½â£¬ËƺõÖ»ÓÐCÓïÑÔµÄÖ¸Õë²ÅÄÜËãÖ¸Õë¡£Basic²»Ö§³ÖÖ¸Õ룬Ôڴ˲»ÂÛ¡£Æäʵ£¬PascalÓïÑÔ±¾ÉíÒ²ÊÇÖ§³ÖÖ¸ÕëµÄ¡£´Ó×î³õµÄPascal·¢Õ¹ÖÁ½ñµÄObject Pascal£¬¿ÉÒÔ˵ÔÚÖ¸ÕëÔËÓ ......
¹¹½¨ Windows SOAP ·þÎñÆ÷Ó¦ÓóÌÐò
Ê×ÏÈÔÚ Windows ÉϹ¹½¨·þÎñÆ÷£¬È»ºóÔÚ Linux ÉϹ¹½¨¿Í»§»ú¡££¨Èç¹ûÐèÒª£¬¿ÉÒÔʹÓÃÆäËü·½·¨ — »òÕß½«ËüÃÇÈ«²¿¹¹½¨ÔÚ Windows »ò Linux ÉÏ¡££©¶ÔÓÚ Windows SOAP ·þÎñÆ÷£¬Æô¶¯ Delphi 7 Enterprise£¬Ö´ÐÐ File -> New -> Other£¬×ªÖÁ¶ÔÏó×ÊÔ´¿â£¨Object Repository£©µÄ ......
¸ñʽ£º²Ù×÷Êý Shl/Shr ÒÆ¶¯Î»Êý
˵Ã÷£º²Ù×÷ÊýÓë·µ»ØÖµ¶¼ÊÇÕûÊý
Àý×Ó£º16(10) = 10000(2)
16(10) Shr 1 = 10000(2) Shr 1 = 1000(2) = 8(10)
16(10) Shr 2 = 10000(2) Shr 2 = 100(2) = 4(10)
˵Ã÷£ºÒ»¸öÕûÊý(I)°´Î»×óÒÆÒ»Î»£¬Ï൱ÓÚ°ÑËü³ËÒÔ2£¬¼´ I * 2
&n ......
Ò»¡¢ÕûÊýÀàÐÍ
ÀàÐÍ ËùÕ¼×Ö½ÚÊý ȡֵ·¶Î§
byte 1 0-255
word 2 0-65535
shortint 1 -128-127
smallint 2 -32768-32767
integer 4 -214748648-214748467
longint 4 -214748648-214748467
cordinal 4 0-2147483647
¶þ¡¢ÊµÊýÀàÐÍ
ÀàÐÍ Ëùµã×Ö½ÚÊý ȡֵ·¶Î§
Real 6 ±2.9×10µÄ¸º39´Î·½µ½1.7× ......
ÔÀ´ÊÇÒªÔÚFormCreateÖмÓÈëÒÔÏ´úÂë:
procedure TTntForm1.TntFormCreate(Sender: TObject);
begin
//Õâ¾äºÜ¹Ø¼ü.¶ÔÓÚÆ½Ì¨µÄÖ§³Ö.
if Win32Platform = VER_PLATFORM_WIN32_NT then
Font.Name := 'MS Shell Dlg 2'
else
Font.Name := 'MS Shell Dlg';
......