«e¤@³¹¤w¸g³]©w¦n¼¶¼g Win64 ²Õ¦X»y¨¥ªºÀô¹Ò¤F¡A³o¤@³¹´N¥Î²Õ¦X»y¨¥¼g¤@ӯಣ¥Íµøµ¡ªº³Ì²³æ Win64 µ{¦¡¡C³oÓµ{¦¡¥u¦b¿Ã¹õ¤WÅã¥Ü¤@Óµøµ¡¡A¦p¥k¹Ï¡A¼ÐÃDÄæ¬O¡u²Ä¤@ÓWin64µ{¦¡¡v¡Aµøµ¡¤¤ÁÙ¦³¤@Ó¡u³o¬O¥Î²Õ¦X»y¨¥¼gªº64¦ì¤¸µ{¦¡¡C¡v¦r¦ê¤Î¡u½T©w¡v«ö¶s¡A¨Ï¥ÎªÌ¥i¥H«ö¡u½T©w¡v«ö¶sµ²§ôµ{¦¡¡C¦r¦êªº^¤å¬O string¡A¥i¥H§â¥¦·Q¦¨¤@¬q¥Ñ¤å¦r²Õ¦¨ªº¥y¤l¡A¤£½×¬O¤¤¤å©Î^¤å¤å¦r§¡¥i¡C
¤p¤ì°¸ºÉ¶qÅý©³¤Uªºµ{¦¡³æ¯Â¡A¤£²o¯A¨ì¥]§tÀÉ¡FÁöµM¥]§tÀÉ¥i¥H²¤Æµ{¦¡¡A¦ý¬O¹ï©óªì¾ÇªÌÁA¸Ñµ{¦¡«o¨S¤°»òÀ°§U¡C¥Î¥ô¦ó¤@Ó¤å®Ñ³B²z³nÅé¡A¨Ò¦p°O¨Æ¥»©Î UltraEdit 32 µ¥¡A¿é¤J¤U±¡uì©lµ{¦¡¡v¡]source code¡A¤]¥i½¬°ì©l½X©Î·½½X¡^¡AµM«á¥H¡uANSI¡v©Î¡uASCII¡vªº½s½X¤è¦¡¡]¤£n¥Î UTF-8 ©Î¨ä¥L½s½X¤è¦¡¦sÀÉ¡A§_«h»s§@¥X¨Óªºµ{¦¡µLªkÅã¥Ü¤¤¤å¡^¡AÀx¦s¦b¡uE:\HomePage\SOURCE\Win64\FIRST\FIRST.ASM¡vÀÉ®×ùØ¡G
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
21 22 23 24
25 26 27 28 |
OPTION CASEMAP:NONE
EXTRN MessageBoxA:PROC
EXTRN ExitProcess:PROC
INCLUDELIB e:\masm32\lib64\kernel32.lib
INCLUDELIB e:\masm32\lib64\user32.lib
MB_OK EQU 0
;***************************************************************************************************
.CONST
szCaption DB "²Ä¤@ÓWin64µ{¦¡",0
szText DB "³o¬O¥Î²Õ¦X»y¨¥¼gªº64¦ì¤¸µ{¦¡¡C",0
;***************************************************************************************************
.CODE
;---------------------------------------------------------------------------------------------------
main PROC
xor rcx,rcx
push rcx
mov rdx,OFFSET szText
lea r8,szCaption
mov r9,MB_OK
sub rsp,20h
call MessageBoxA
add rsp,20h
pop rcx
sub rsp,28h
call ExitProcess
main ENDP
;***************************************************************************************************
END |
ì©lµ{¦¡¬O¯Â¤å¦rÀÉ¡A¹q¸£¬O¬Ý¤£À´ªº¡C¥²¶·¸g¹L²ÕĶ»P³sµ²ªº¹Lµ{¡A¤~¯à¡u½Ķ¡v¦¨¹q¸£¬Ý±oÀ´¡A¤]¯à°õ¦æªº«ü¥O¡C¨Ì¤U±¨BÆJ²ÕĶ¡B³sµ² FIRST¡C
¦b Windows §@·~¨t²Îªº®à±¤W¡A©ó¿Ã¹õ¥ª¤U¨¤¡A«ö¡u¶}©l¡v¡÷¡uªþÄÝÀ³¥Îµ{¦¡¡v¡÷¡u©R¥O´£¥Ü¦r¤¸¡v¡]¦pªG¬O Windows 10¡A©R¥O´£¥Ü¦r¤¸¬O¦b Windows ¨t²Î¤º¡^¡AµM«á¿é¤J¤U±¥Î¶À¦â¦r¼Ð°_¨Óªº«ü¥O¡A°O±o¨C¿é¤J¤@¦æ«ü¥O«án«ö¡uEnter¡vÁä¡A´N¯à²£¥Í FIRST.EXE¡C³o¼Ë²ÕĶ¡B³sµ²´N§¹¦¨¤F¡C
Microsoft Windows [ª©¥» 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\wanker>E: E:\>cd HomePage\SOURCE\Win64\FIRST E:\HomePage\SOURCE\Win64\FIRST>path E:\masm32\bin64;%path% E:\HomePage\SOURCE\Win64\FIRST>set link=/subsystem:windows E:\HomePage\SOURCE\Win64\FIRST>ml64 first.asm /link /entry:main Microsoft (R) Macro Assembler (x64) Version 14.25.28614.0 Copyright (C) Microsoft Corporation. All rights reserved. Assembling: first.asm Microsoft (R) Incremental Linker Version 14.25.28614.0 Copyright (C) Microsoft Corporation. All rights reserved. /subsystem:windows /OUT:first.exe first.obj /entry:main E:\HomePage\SOURCE\Win64\FIRST>
¦pªG¨S¦³¿ù»~°T®§¡Aªí¥Ü¤w¦¨¥\»s§@¦n FIRST.EXE¡AFIRST.EXE ¬OÀɮצWºÙ¡A¨ä¤¤ FIRST ¬O¥DÀɦW¡AEXE ¬O¡A¤¤¶¡¥H¡u.¡v¹j¶}¡C¦pªGÀɦW¤¤¦³¦hÓ¡u.¡v¡A¥H³Ì«á¤@Ó¡u.¡v°µ¬°°Ï¹j¥DÀɦW»P°ÆÀɦW¡C°ÆÀɦW¥Î¨Ó¤À¿ëÀÉ®×ÄÝ©óþ¤@ºØÃþ«¬¡A¨Ò¦p .MP4 ¬O¼vµÀÉ¡A.RAR ¬OÀ£ÁYÀÉ¡K¡K¡A°ÆÀɦW¬° .EXE ªº¬O¥i°õ¦æÀÉ¡A¤]¥i¥H»¡¬O¥i°õ¦æªºµ{¦¡¡A¨ºn¦p¦ó°õ¦æ©O¡H
¦³¨âºØ¤èªk¯à°õ¦æµ{¦¡¡G①¦bÀÉ®×Á`ºÞ¥H·Æ¹«ÂùÀ»¨ä¹Ï¥Ü¡A②¦b©R¥O´£¥Ü¦r¤¸¤¤¿é¤J¥i°õ¦æµ{¦¡ªº¥DÀɦW¡A¿é¤J¥DÀɦW¥i¥H¤£°Ï¤À¤j¤p¼g¡C¿é¤J¡uFIRST¡v¡A´N¯à°õ¦æ¥¦¡AµM«áÅã²{¥X¥»³¹¤@¶}©lªºµøµ¡¨Ó¡C
¦b»¡©ú¤W±ªº²ÕĶ»P³sµ²ªº¹Lµ{«e¡A¥ý¤¶²Ð¤@ÓÆ[©À¡A¤u§@¥Ø¿ý¡]¤]¥s·í«eªº¥Ø¿ý©Î²{¦bªº¥Ø¿ý¡^¡C²³æ¨Ó»¡¡A¤u§@¥Ø¿ý´N¬O¦b©R¥O´£¥Ü¦r¤¸¤¤¡A¨C¤@¦æ³Ì«e±´£¥Ü²Å¸¹¡A¨Ò¦p¤W±ªº¡uC:\Users\wanker¡v¡B¡uE:\¡v¡B¡uE:\HomePage\SOURCE\Win64\FIRST¡v¡C°£¦¹¤§¥~ÁÙ¦³Ó·N¸q¡A¨º´N¬O¦pªG¨S¦³¯S§O«ü©wªº¸Ü¡A¦b©R¥O´£¥Ü¦r¤¸©Ò°õ¦æªºµ{¦¡¡A·|§â¤u§@¥Ø¿ýµø¬°¥Ø¼Ð¡C¹³¤U±ªº copy «ü¥O´N·|§â¡uC:¡vºÏºÐ¾÷¤Wªº README.TXT Àɽƻs¨ì D:\TEMP ¤º¡G
D:\TEMP>copy C:README.TXT
·íµM¤u§@¥Ø¿ý¬O¥i¥H§ïÅÜ¡A§Q¥Î«ü¥O¡ucd¡v´N¯à¹F¦¨¡Acd ¬O¡uchange directory¡vªº·N«ä¡An¤Á´«ªº¥Ø¿ý´N±µ¦b¡ucd¡vªºªÅ®æ¤§«á¡C
¤@³¡¹q¸£¤¤¡A¥i¯à¦³³\¦hºÏºÐ¾÷¡A§@·~¨t²Î·|¬°¨C¤@³¡ºÏºÐ¾÷¬ö¿ý¸ÓºÏºÐ¾÷ªº¤u§@¥Ø¿ý¡C¨Ï¥ÎªÌ¥i¥H¦b©R¥O´£¥Ü¦r¤¸¿é¤JºÏºÐ¾÷¦WºÙ¡A¤Á´«¨ì¸ÓºÏºÐ¾÷ªº¤u§@¥Ø¿ý¤W¡]ºÏºÐ¾÷¦WºÙ´N¬O^¤å¦r¥À¥[¤W¡u:¡v¡A¨Ò¦p¡uE:¡v¡A¤£°Ï¤À¤j¤p¼g¡^¡C
·í¶i¤J¡u©R¥O´£¥Ü¦r¤¸¡v®É¡AWindows ·|§â¡uC:\Users\±b¸¹¡v§@¬°·í«eªº¤u§@¥Ø¿ý¡C¦ý§Ú̧Ʊæ FIRST.EXE ¯à©M FIRST.ASM ¦b¦P¤@ӥؿýùØ¡A³£©ñ¦b¡uE:\HomePage\SOURCE\Win64\FIRST\¡v¡A³o¼Ë¤ñ¸û¦nºÞ²z¡C©Ò¥H¥ý¤U¹F²Ä¤@Ó«ü¥O¡A¡uE:¡v¡A³o¬OÅý¡u©R¥O´£¥Ü¦r¤¸¡v¤Á´«¨ì E: ºÏºÐ¾÷¡C³o®É E: ºÏºÐ¾÷ªº¤u§@¥Ø¿ý¬O E:\¡A³o¬O®Ú¥Ø¿ý¡C©Ò¥HÁÙn¦A¤U¹F²ÄÓ¤G«ü¥O¡ucd HomePage\SOURCE\Win64\FIRST¡v¥Î¨Ó¤Á´«¨ì»P FIRST.ASM ¦P¤@¥Ø¿ý¡C³o®É¤u§@¥Ø¿ý´NÅܦ¨¡uE:\HomePage\SOURCE\Win64\FIRST¡v¤F¡C©¹«á²£¥ÍªºÀɮסA´N·|Àx¦s¦b³oӥؿýùؤF¡C
¦pªG¥ý¤U¹F¡ucd E:\HomePage\SOURCE\Win64\FIRST¡v¡A¦A¤Á´«¦Ü¡uE:¡vºÏºÐ¾÷¡A¤]¬O¥i¥Hªº¡A¥i¥H¦Û¦æ¸Õ¸Õ¡C
²Ä¤TÓ«ü¥O¬O¡upath E:\masm32\bin64;%path%¡v¬O«ü©w°õ¦æÀɪº·j´M¸ô®|¡C·í¨Ï¥ÎªÌ¿é¤J°õ¦æÀɪº¥DÀɦW°õ¦æµ{¦¡®É¡A¹q¸£´N·|¥ý¦b·í«e¤u§@¥Ø¿ýùاä¨ì¸Ó°õ¦æÀÉ¡A¦pªG§äµÛ¤F´N°õ¦æ¥¦¡F¦pªG§ä¤£¨ì¡A´N·|¨Ì¾Ú¡upath¡v«ü¥O«á±ªº¸ô®|¥h´M§ä¡C¦b¤p¤ì°¸ªº¦w¸Ë¡uinstall64.zip¡v®É¡A²ÕĶ¾¹»P³sµ²¾¹³£©ñ¦b¡uE:\masm32\bin64¡v¡A¦Óì©l½X©ñ¦b¡uE:\HomePage\SOURCE\Win64\FIRST¡v¡A¦]¦¹¥Î¡upath E:\masm32\bin64;%path%¡v³]©w¦n·j´M¸ô®|¡A¤~¯à§ä¨ì²ÕĶ¾¹»P³sµ²¾¹¡C
¡upath¡v¥i¥H«ü©w³\¦hÓ·j´M¸ô®|¡A¤¤¶¡¥Î¡u;¡v¹j¶}¡C³Ì«á¤@Ó¡u%path%¡v¬O«üì¨Óªº·j´M¸ô®|¡A³o¼Ë¦b§ÚÌ«ü©w·sªº¡uE:\masm32\bin64¡v·j´M¸ô®|«á¡AÁÙ¯à«O¯dì¥ýªº·j´M¸ô®|¡A¤£·|¼vÅT¨ä¥Lµ{¦¡ì¨Ó·j´M¸ô®|¡C
²Ä¥|Ó«ü¥O¡A¡uset link=/subsystem:windows¡v¡A¬O¥Î¨Ó³]©w³sµ²¾¹ªº¿ï¶µ¡C¡u/subsystem:windows¡v«ü©w²£¥Íªº¥i°õ¦æÀɬOµøµ¡µ{¦¡ªº¡A¦b Win64 ùتºµ{¦¡¤j³¡¤À¬Oµøµ¡§Î¦¡¡F¥t¤@ºØ¬O¥D±±»Oµ{¦¡¡]console program¡^¡A¥i¥H¥Î¡u/subsystem:console¡v¡A²Ä¤T³¹¤¶²Ð¡C
²Ä¤Ó«ü¥O¡A¡uml64 first.asm /link /entry:main¡v¡A³o®É¤~¯u¥¿¶}©l²ÕĶ»P³sµ²¡A«e±¥|Ó«ü¥O¥u¬O³]©w¡C¡uML64.EXE¡v·|²ÕĶì©l½X¨Ï¨äÅܦ¨¥ØªºÀÉ¡Afirst.obj¡A¦pªG¦¨¥\¡AML64.EXE ·|¦Û°Ê°õ¦æ³sµ²¾¹¡]³sµ²¾¹´N¬O E:\masm32\bin64\LINK.EXE µ{¦¡¡^¨Ï³sµ²¾¹»P¶×¤Jµ{¦¡®w¶i¦æ³sµ²¡]FIRST.ASM ¤¤²Ä¥|¡B¤¦æªº kernel32.lib »P user32.lib ´N¬O¶×¤Jµ{¦¡®w¡^¡A¦pªG¦¨¥\´N·|²£¥Í FIRST.EXE ¥i°õ¦æÀÉ¡C
¦pªG¥unÅý ML64.EXE ²ÕĶ¦Ó¤£Åý¥¦¦Û°Ê°õ¦æ LINK.EXE ¶i¦æ³sµ²¡A¥i¥H¨Ï¥Î¡u/c¡v¿ï¶µ©Î¡u-c¡v¿ï¶µ¡C³\¦h¥D±±»Oµ{¦¡³£¦³¿ï¶µ¡A¤]¥iºÙ¬°°Ñ¼Æ¡A¿ï¶µ©Î°Ñ¼Æ³q±`¥H¡u/¡v©Î¡u-¡v°_ÀY¡C¥D±±»Oµ{¦¡´N¬O«ü¦b©R¥O´£¥Ü¦r¤¸¤U°õ¦æ¡A¦Ó¥B¤£²£¥Íµøµ¡ªºµ{¦¡¡C
¡u/link¡v¤]¬O ML64.EXE ªº¿ï¶µ¡A¦b¡u/link¡v«áªº¸ê®Æ³£·|¶Çµ¹³sµ²¾¹¡C«á±ªº¡u/entry¡v´N¬O¶Çµ¹³sµ²¾¹ªº¸ê®Æ¡A¡u/entry¡v¥Î¨Ó«ü©wµ{¦¡ªº¶i¤JÂI¡A¶i¤JÂI¬Oµ{¦¡²Ä¤@Ón°õ¦æªº«ü¥O¡A³oÓ«ü¥O¤£¤@©w¦bµ{¦¡ªº²Ä¤@¦æ¡C¦pªG¬O¼¶¼g 16 ¦ì¤¸©Î 32 ¦ì¤¸µ{¦¡¡A¥Î¡uML.EXE¡v²ÕĶ¾¹¡A¥i¥H¦bì©l½X³Ì«á±¥Î¡uEND ¶i¤JÂI¡v¨Ó«ü©w¶i¤JÂI¡AML.EXE ·|©¿²¤¡uEND ¶i¤JÂI¡v¤§«áªº©Ò¦³¤å¦r¡A¥i¥Î©óµ²§ôì©lµ{¦¡¡F¦ý¬O¡uML64.EXE¡v±N¶i¤JÂIªº¥\¯à§R°£¤F¡AEND ¥u¥Î©óì©lµ{¦¡ªí¥Üµ²§ô¤§·N¡A©Ò¥H¸U¤£±o¤w¥u¯à¦b³sµ²®É¡A¥Î¡u/entry¡v¨Ó«ü©w¶i¤JÂI¡C
ÁA¸Ñ¤F ML64.EXE ªº¡u/c¡v»P¡u/link¡v¿ï¶µªº§@¥Î¤§«á¡A¤£ª¾§A¬O§_·|·Q¡A¦pªG¹³¤U±¨BÆJ²ÕĶ»P³sµ²¬O§_¥i¥H¡H
ml64 -c first.asm link first.obj /entry:main
ªº½T¡A³o¼Ë¤]¬O¥i¥Hªº¡C¦ýnª`·Nªº¬O LINK.EXE n³sµ²ªº¬O first.obj »P¶×¤Jµ{¦¡®w¡A«eªÌ¬O ML64.EXE »s³y¥X¨Óªº¡A«áªÌ¬O¦b FIRST.ASM ¥H INCLUDELIB «ü©wªº¡C
¨Æ¹ê¤W¡A¨C¤@¦¸²ÕĶ¤Î³sµ²ì©l½X®É¡A³£¥²¶·¿é¤J«e¥|¦æ«ü¥O¡A¬°¤F§ïµ½®Ä²v¡A¥i¥H¥Î¤å®Ñ³B²z³nÅé¡A¨Ò¦p°O¨Æ¥»¡BUltraEdit 32 µ¥¡A¿é¤J¤U±«ü¥O¡A¨ÃÀx¦s¦b¡uC:\Users\±b¸¹\masm64.bat¡v§å¦¸ÀÉùØ¡C¨C¦¸¤@¶i¤J¡u©R¥O´£¥Ü¦r¤¸¡v¡A´N°õ¦æ¡umasm64.bat¡v¡A·|¤è«K³\¦h¡C©³¤U¬O¡umasm64.bat¡vªº¤º®e¡G
E: CD E:\HomePage\SOURCE\Win64 PATH E:\masm32\bin64;%path% SET LINK=/SUBSYSTEM:WINDOWS /ENTRY:main
¹³ masm64.bat ³o¼ËªºÀɮ׺٬°§å¦¸ÀÉ¡A¥¦¨ä¹ê´N¬O§â¦b©R¥O´£¥Ü¦r¤¸¤U¥i°õ¦æªº«ü¥O¶°¦X¦b¤@°_¡A§Î¦¨¤@ÓÀɮסA³o¼Ën°õ¦æ®É¥u®øÁä¤J§å¦¸Àɪº¥DÀɦW¡A´N¯à°õ¦æ³o¨Ç«ü¥O¡A«Ü¤è«K¡C
»s§@¥X°õ¦æÀÉ¥H«á¡AÁÙn°õ¦æ¬Ý¬Ý¬O§_¦p¹w´Áµ²ªG¡A¦pªG¬O¡A´Nªí¥Ü¦¹µ{¦¡¤w¼¶¼g§¹¦¨¡F¦pªG¤£¬O¡Aªí¥Üµ{¦¡¥i¯à¥Ç¤FÅÞ¿è¤Wªº¿ù»~©Î¨ä¥L¿ù»~¡A¥²¶·«·sÀˬdì©lµ{¦¡¡C¨Æ¹ê¤W¡A¦b²ÕĶ¹Lµ{©Î³sµ²¹Lµ{¡A¦pªG²£¥Í¿ù»~¡A³£n¦^¨ìì©lµ{¦¡¥J²ÓÀˬd¿ù»~¨Ã¤@¤@×¥¿¡Aª½¨ì¯à¥¿½T²ÕĶ¡B³sµ²¨Ã°õ¦æ¡A¦P®ÉÁÙ¯à²Å¦X¹w´Áµ²ªG¡A¤~ºâ¬O§¹¦¨¾ãÓ¼¶¼gµ{¦¡ªº¹Lµ{¡C¤U¹Ï¬O¨ä¬yµ{¡G¤W¹Ï¤¤ªº¡u³sµ²OBJÀÉ¡v¡Aªº¥Øªº¬On§â§Ú̼¶¼g¦¨ªºµ{¦¡¡A»P¨ä¥Lµ{¦¡®w³sµ²°_¨Ó¡C¤@¯ë¦Ó¨¥¡A¶}µoµ{¦¡ªº¤u¨ã¡A¹³ Visual Studio¡A³£·|´£¨Ñ³\¦hµ{¦¡¤ù¬q¨Ñµ{¦¡¶}µo¤Hû¨Ï¥Î¡C¨Ï¥Î¤è¦¡´N¬O§Q¥Î³sµ²¾¹¡A¨Ò¦p LINK.EXE¡A§â§ÚÌ»s§@¥X¨Óªº OBJ ÀÉ»P¥LÌ´£¨Ñªºµ{¦¡®w³sµ²¡C·í§Ú̥ΠML64.EXE ²ÕĶ®É¡A¦pªG²ÕĶ¦¨¥\»s§@¥X¨Ó OBJ ÀÉ¡AML64.EXE ·|¦Û°Ê°õ¦æ LINK.EXE¡A¤£¥²¾á¤ß¡C
©³¤U¤p¤ì°¸n¨Ó¸Ñ»¡ FIRST.ASM ¤¤ªº¨C¤@¦æµ{¦¡©Ò¥Nªíªº·N¸q¡C
¥ô¦ó¤@ºØµ{¦¡»y¨¥¡A³£¦³¦Û¤vªº«O¯d¦r¡A³o¨Ç«O¯d¦r¦bµ{¦¡»y¨¥³]p¤§®É´N¤w¸g©w¸q¤F¡A¥¦¨ã¦³¯S®íªº·N¸q¡A¥i¥H¬O¥Î¨Ó¿ëÃÑ«ü¥O¡B°j°é¡B»y¥y¶ô¡B±ø¥ó¡B¤À¤äµ¥µ{¦¡µ²ºcµ¥µ¥¡C²Õ¦X»y¨¥¤]¬O¦p¦¹¡A²Õ¦X»y¨¥ªº«O¯d¦r¥i¤À¬°¤Ãþ¡G
¦bì©lµ{¦¡¤¤¡A«O¯d¦r¥i¥H¥ô·N¨Ï¥Î¤j¼g©Î¤p¼g^¤å¦r¥À¡A¤£·|¦³¥ô¦ó°ÝÃD¡A¦Ó¨Ï¥ÎªÌ¦Û¦æ©R¦Wªº¦WºÙ¡A¦pÅܼƦW¡B°Æµ{¦¡¦Wµ¥¡A³£¤£¥i¨Ï¥Î«O¯d¦r¡A§_«h ML64 µLªk¤À¿ë¨ì©³¬O«O¯d¦r¡AÁÙ¬O¬YÓÅܼơC
¡uOPTION¡v¥i¥H³]©w¦h¨Æ±¡¡A¤£¹L¦b³oùضȤ¶²Ð¡uOPTION DOTNAME¡v»P¡uOPTION CASEMAP:maptype¡v¡C
¡uOPTION DOTNAME¡v¬OÅý ML64 ¤¹³\ÅܼơB±`¼Æ¦WºÙªº²Ä¤@Ó¦r¬O¡u.¡v¡F¦pªG¬O¡uOPTION NODOTNAME¡v¡A´N¤£¤¹³\ÅܼƦW©Î±`¼Æ¦Wµ¥¥H¡u.¡v¶}ÀY¡C¦pªGµ{¦¡¤¤¨S¦³³]©w¡A¨º»ò¤º©wȬO¡uNODOTNAME¡v¡C
¡uOPTION CASEMAP:maptype¡v«ü¥Ü ML64.EXE ²ÕĶ¾¹¬O§_§â¤j¼g¸ò¤p¼gªº^¤å¦r¥À¬Ý¦¨¬O¬Û¦Pªº¡Cª`·N¡A³oºØ¬O§_°Ï§O¤j¤p¼g¶È¾A¥Î©ó¨Ï¥ÎªÌ©w¸qªº¦WºÙ¡A¨Ò¦p Win64 API ¦WºÙ¡B°Æµ{¦¡¦WºÙ©ÎÅܼƦWºÙ¡K¡Kµ¥¡F¦Ó«O¯d¦r¬O¤£¨ü¡uOPTION CASEMAP¡vªº¼vÅT¡Cmaptype ¦³¨âºØ¿ï¾Ü¡G
¤W±¸ÑÄÀ¤F OPTION ªº¨âӥΪk¡A³£¬O©MÅܼƪº©R¦W¦³Ãö¡C¥H¡uOPTION DOTNAME¡v¬°¨Ò¡A´N¬O«ü¥Ü ML64.EXE ¬Ý¨ì¥H¡u.¡v°_ÀYªºÅܼơA¥i¥H±µ¨ü¡C¦]¦¹ OPTION ¤]¬O¤@ºØ¡u°²«ü¥O¡v¡C
FIRST.ASM ªº«e¤T¦æ¬O¡G
OPTION CASEMAP:NONE EXTRN MessageBoxA:PROC EXTRN ExitProcess:PROC
²Ä¤@¦æ¤w¸gÁ¿§¹¡A²Ä¤G¡B¤T¦æ³£¬O¡uEXTRN¡v°²«ü¥O¡A¬°¤FÁA¸Ñ¥¦¡A§ÚÌ¥ýÁ¿Á¿ MessageBoxA ¤Î ExitProcess ³o¨âÓ Windows API¡C¦ý¦b»¡©ú Windows API ¤§«e¡A¤SÀ³¸Ó¥ýÁA¸Ñ¤°»ò¬O¡u°Æµ{¦¡¡v¡C
§Ú̦b¼¶¼gµ{¦¡®É¡A³q±`·|¹J¨ì³o¼Ëªºª¬ªp¡A´N¬O¬Y¨Çµ{¦¡¤ù¬q·|±`±`°õ¦æ¨ì¡A¦pªGn«·s¼g¤@¹M¡A¤]«Ü³Â·Ð¡CÁ|¨Ò¨Ó»¡¡A«Ø¥ßµøµ¡´N¬O±`±`·|°õ¦æ¨ìªºµ{¦¡¡C«Ø¥ßµøµ¡®É¡A³£n°õ¦æø»s¼ÐÃDÄæ¡BÃä®Ø¡B³Ì¤j¤Æ³Ì¤p¤Æ«ö¶sµ¥°Ï°ìªºµ{¦¡½X¡A¨C¦¸«Ø¥ßµøµ¡®É¤j·§³£¬On°µ¬Û¦Pªº¨Æ¡A¦³©Ò®t§Oªº¬O¤£¦Pªº¼ÐÃDÄæ¤å¦r¡B¤£¦Pªºµøµ¡¦ì¸m¡B¤£¦Pªºµøµ¡¤j¤pµ¥¡A·íµM¤£¥u³o¨Ç¤u§@ÁÙ¦³¨ä¥L§óÁcÂøªº¨Æ¡C¤£½×¦p¦ó¡A°²¦p¯à§â«Ø¥ßµøµ¡ªºµ{¦¡½X¿W¥ß¥X¨Ó¡Aµ¥¨ì¨C¦¸n«Ø¥ßµøµ¡®É¡A¥u»Ý«ü©w¦n¼ÐÃDÄæ¤å¦r¡Bµøµ¡¦ì¸m¡Bµøµ¡¤j¤pµ¥¡AµM«á§â±±¨îÅvÂಾ¨ì¿W¥ß¥X¨Óªºµ{¦¡¥h°õ¦æ¡A´N¯à«Ø¥ß¦n¤@Óµøµ¡¡C
¹³³o¼Ë¡A¡u¦b¤j«¬µ{¦¡¤¤¡A¯à§¹¦¨¬Y¶µ¯S©w¤u§@¡A¦Ó¥B¤ñ¸û¨ã³Æ¿W¥ßªºµ{¦¡¤ù¬q¡v´NºÙ¬°°Æµ{¦¡¡]subroutine ©Î subprogram¡^¡A¦Óì¨Óªº¤j«¬µ{¦¡´NºÙ¬°¥Dµ{¦¡¡C¥Dµ{¦¡§â±±¨îÅvÂಾ¨ì°Æµ{¦¡ªº¹Lµ{¡A´NºÙ¬°©I¥s¡]call¡A¤j³°Â½Ä¶¦¨½Õ¥Î¡^¡C¥Dµ{¦¡¦b©I¥s°Æµ{¦¡®É¡A§â¬Y¨Ç¸ê®Æ¶Çµ¹°Æµ{¦¡¡A¦Ó¨Ï°Æµ{¦¡¨Ì¾Ú¦¹¸ê®Æ°õ¦æ¡C¨Ò¦p©I¥s«Ø¥ßµøµ¡ªº°Æµ{¦¡®É¡An§â¼ÐÃDÄæ¤å¦r¡B¤£¦Pªºµøµ¡¦ì¸m¡B¤£¦Pªºµøµ¡¤j¤pµ¥¶Çµ¹°Æµ{¦¡¡A°Æµ{¦¡¦n¨Ì¾Ú³o¨Ç¸ê®Æ°õ¦æ¤u§@¡C¹³³o¼Ë¥Dµ{¦¡¶Çµ¹°Æµ{¦¡ªº¸ê®Æ¡AºÙ¬°¡u°Ñ¼Æ¡v¡]parameter¡^©Î¡u¤Þ¼Æ¡v¡]argument¡^¡C¡]µùÄÀ¡^
°Æµ{¦¡°õ¦æ§¹²¦«á¡AÁÙ·|§â±±¨îÅv¥æÁÙµ¹¥Dµ{¦¡¡A¦³®É¤]·|§â°õ¦æµ²ªG¶Ç¦^µ¹¥Dµ{¦¡¡C³oÓ°õ¦æµ²ªG³q±`¬O¤@Ó¼ÆÈ¡AºÙ¬°¡u¦^¶ÇÈ¡v¡]return value¡^¡A§i¶D§Ú̪º°Æµ{¦¡°õ¦æªºµ²ªG¡A¨Ò¦p«Ø¥ßµøµ¡¬O§_¦¨¥\¡C¹³³oºØ¦bµ²§ô®É¡A·|§â¦^¶Çȶǵ¹¥Dµ{¦¡ªº°Æµ{¦¡ºÙ¬°¨ç¦¡¡]function¡A¥ç¦³Â½Ä¶¦¨¨ç¼Æ¡^¡C
¦³¤F¤W±¥Dµ{¦¡¡B°Æµ{¦¡¡B©I¥s¡B°Ñ¼Æ¡B¦^¶ÇÈ¡B¨ç¦¡µ¥Æ[©À«á¡A©³¤U´N¨Ó»¡¤@»¡¤°»ò¬O Windows API¡C
API ¬O Application Programming Interface ªº¬OÁY¼g¡A©Ò¥H Windows API ¥i¥H½Ķ¦¨ Windows §@·~¨t²ÎÀ³¥Îµ{¦¡¤¶±¡C§ÚÌ¥i¥H§â Windows API ¬Ý¦¨¬O³\¦hªº°Æµ{¦¡ªº¶°¦X¡A¨Æ¹ê¤W¡A·L³n¤w¸g¼¶¼g¦n¦h¹F¤W¤dºØ°Æµ{¦¡¡A·íµM¥]§t«Ø¥ßµøµ¡ªº°Æµ{¦¡¡C·L³n±N¥¦Ì¶°¦X°_¨Ó¡A¦s©ñ¦b Windows §@·~¨t²Î¤ºªº¦UºØ°ÊºA³sµ²µ{¦¡®w¡]dynamic-link library¡AÁY¼g¬° DLL¡A¨ä°ÆÀɦW¬°¡u.DLL¡v¡^¤¤¡C¥¦¤]¬O Windows §@·~¨t²Îªº¤@³¡¤À¡A¥ô¦óµ{¦¡³£¥i¥H©I¥s¥¦¡CWindows API ¦b°õ¦æ§¹²¦¡AÁÙ·|±N±±¨îÅvÂkÁÙµ¹¥Dµ{¦¡¡A¨Ã¥B±N°õ¦æµ²ªG¡A¤]´N¬O¦^¶ÇÈ¡A¦s©ñ©ó RAX ³qª¾¥Dµ{¦¡¡C©Ò¥H¡A©Ò¦³ªº Windows API ³£¬O¨ç¦¡¡C
Windows API ¬O±q¥Á°ê 74 ¦~¡]¦è¤¸ 1985 ¦~¡^µo°âªº Windows 1.0 ¶}©l¡A¤ä´©¬ù 450 Ө禡¡A¨ì²{¦b¥Á°ê 112 ¦~¤w¸g¦h¹F¤W¤dӨ禡¤F¡C¤jP¥i¥H¤À¦¨¤TÓ¶¥¬q¡G①Windows 1.0 ¨ì Windows 3.1 ³£¬O 16 ¦ì¤¸ªº§@·~Àô¹Ò¡A¤]ºÙ¬° Win16 API¡C②Windows NT 3.1/Windows 95 ¤Î¨ä«áÄòªºª©¥»³£¬O 32 ¦ì¤¸ªº§@·~¨t²Î¡A¬GºÙ Win32 API¡C③Windows XP ¤Î¨ä¤§«áªº Windows ³£¦³ 64 ¦ì¤¸ª©¥»¡A¨ä Windows API ºÙ¬° Win64 API¡C
±q Win16 API ¸g Win32 API ¨ì Win64 API¡AÁöµM·s¼W¤F³\¦h ¨ç¦¡¡A¦ý¬O¹ï¼¶¼gµ{¦¡ªº¤H¨Ó»¡¡A°ò¥»¬[ºc´X¥G¤£ÅÜ¡A®t§O¶È¶È¦b©ó¦³¨Ç°Ñ¼Æªø«×±q 16 ¦ì¤¸Åܦ¨ 64 ¦ì¤¸¡C¦Ó¤p¤ì-°¸¼gªº³o¥÷¡uWin64 ²Õ¦X»y¨¥¡v±Ð¾Ç¡A©Ò»¡ªº Windows API¡AYµL¯S§O»¡©ú¡A³£¬O«ü Win64 API¡C
EXTRN ¬O«ü¥Ü²ÕĶ¾¹¨Ï¥Î¥~³¡ÅܼƦWºÙ¡B¼Ð°O©Î°Æµ{¦¡¦WºÙ¡A¤]¥i¥H¼g¦¨ EXTERN¡A·N¸q¬Û¦P¡A¥u¤£¹L EXTERN ¾A¥Î©ó·sª©ªº²ÕĶ¾¹¡A¨ä»yªk¬O¡G
EXTRN name:qualifiedtype[,name:qualifiedtype[,...]]
°²¦p¬YÓµ{¦¡n¨Ï¥Î§Oªºµ{¦¡©Ò©w¸qªº¦WºÙ¡A¥i¥H¦b«eªÌ¥H EXTRN «Å§i¸Ó¦WºÙ¬O¥Ñ§Oªºµ{¦¡©Ò©w¸qªº¡Aname ´N¬O§Oªºµ{¦¡©Ò©w¸qªº¦WºÙ¡C³oºØ±¡§Î¡A¤j¦hµo¥Í¦b§ÚÌn©I¥sµ{¦¡¶}µo°Ó´£¨Ñªº°Æµ{¦¡¡A©Î¬O»s§@¤j«¬µ{¦¡¡C¤j«¬µ{¦¡¡A¨Ò¦p WORD¡BEXCEL µ¥¡A¥²©w¬O³\¦h¤H¤À¤u¦X§@¦Ó¨CÓ¤H¥ut³d¨ä¤¤¤@³¡¤À¡A¨CÓ¤Ht³dªº¨º¤@³¡¤Àªº¬Y¨Ç¥\¯à¤@©w·|¸ò¨ä¥L¤Hªºµ{¦¡¦³Ãö¡A³o´N¬O EXTRN µo´§¥\¯àªº®ÉÔ¡C
¨Ò¦p¦b¥Òì©lµ{¦¡¨S¦³©w¸q¬YÓ¦WºÙ¡A°²³]¬O xyz ¦n¤F¡A¤]¨S¦³¥H EXTRN «Å§i¥¦¬°¥~³¡¦WºÙ¡F¦ý¬O¦b¤Aì©lµ{¦¡¤w¸g©w¸q¹L xyz¡C³o®É¦pªGª½±µ²ÕĶ¥Ò¥²©w·|µo¥Í¿ù»~¡C¦ý¦pªG¦b¥Ò¤¤¦³«Å§i xyz ¬°¥~³¡¦WºÙ¡A±N¥Ò¡B¤A¤À§O²ÕĶ¦¨¥ØªºÀɳ£¤£·|µo¥Í¿ù»~¡A¦b³sµ²®É¡ALINK.EXE ¥i¥H¶¶§Qªº±NÅý¥Òµ{¦¡¨Ï¥Î¤Aµ{¦¡ªº xyz¡C
¤W±ªº»yªk¤¤¡Aname ¥i¥H¬OÅܼƦWºÙ¡B¼Ð°O©Î°Æµ{¦¡¦WºÙ¡Fqualifiedtype ¥i¥H¬O BYTE¡BWORD¡BDWORD¡BQWORD¡BNEAR¡BFAR¡BPROC¡A«e¥|ӥΩóÅܼơA²Ä¤¡B¤»Ó¥Î©ó¼Ð°O¡A«á¤TӥΩó°Æµ{¦¡¦WºÙ¡CEXTRN ¥i¥H¦P®É«Å§i¦hÓ¥~³¡¦WºÙ¡A¤¤¶¡¥H¡u,¡v¬Û¹j¡C
¦b FIRST.ASM ¤¤¡A·|©I¥s MessageBoxA »P ExitProcess ¨âÓ API¡A«eªÌ¬O¥Î¨ÓÅã¥Ü¤@Ó¹ï¸Ü²°¡A«áªÌ¥Î©óµ²§ôµ{¦¡¡C¥¦Ì¬O·L³n©Ò¼¶¼gªºµ{¦¡¡A¦b FIRST.ASM ¤¤§¹¥þ¨S¦³¥¦Ìªºµ{¦¡½X¡A©Ò¥Hn¥Î EXTRN «Å§i¥¦Ì¬O¡u¥~³¡¡vªºµ{¦¡¡C
¦]¬° Windows API ¼Æ¶qÃe¤j¡A©Ò¥H·L³n±N¤£¦PºØÃþªº API ¥]¸Ë¦b¤£¦Pªº DLL Àɮ׸̡A¦P®É¦b¥DÀɦW¤@¼Ëªº¶×¤Jµ{¦¡®w¡]°ÆÀɦW¬°¡u.LIB¡v¡^¦³¨ä©I¥s¸ê®Æ¡C¨Ò¦p FIRST.ASM ¤¤·|©I¥s ExitProcess API¡A¬d¾\ MSDN ±oª¾ MessageBoxA ¦b KERNEL32.DLL ¤¤¡A¦]¦¹¦b FIRST.ASM ¤¤¥²¶·§â»P¤§¬Û¦Pªº¥DÀɦW¦ý°ÆÀɦW¬°¡u.LIB¡v¡A¤]´N¬O KERNEL32.LIB ¶×¤Jµ{¦¡®w¤¤ªº¸ê®ÆÅn¬A¶i¨Ó¡C¨ä¤èªk¬O¨Ï¥Î¡uINCLUDELIB¡v°²«ü¥O¡C
INCLUDELIB ªº»yªk¬O¡G
INCLUDELIB ¶×¤Jµ{¦¡®wÀɦW
¶×¤Jµ{¦¡®wÀɦW¥i¥H¥]§tºÏºÐ¾÷¦WºÙ¡B¸ô®|¦W¡C
EQU »P = ¥Î¨Ó§â¤@ӲŸ¹«Å§i¬°¤@Ó¾ã¼Æ¡A¦Ó¨Ï±o¨ä«áªºµ{¦¡¯à¥Î¦¹²Å¸¹¥N´À¸Ó¾ã¼Æ¡C¥¦Ìªº»yªk¬O¡G
²Å¸¹ EQU ºâ³N¹Bºâ¦¡ ²Å¸¹ = ºâ³N¹Bºâ¦¡
¦¹³Bªººâ³N¹Bºâ¦¡¬O«ü¥i¥H¬O¥Îºâ³Npºâªº¼Æ¾Ç¦¡¤l¡A¨ä¹Bºâ¤¸À³¸Ó³£¬OÅܼƩμÆÈ¡C¹³©³¤Uªº¨Ò¤l¡A«Å§i¨âӲŸ¹¡A¤@Ó¯x§Îªº length¡]ªø¡^¬° 12¡Awidth¡]¼e¡^¬° 5¡G
length EQU 12 width EQU 5 area EQU length*width
¦]¬°Áä½L¤W¨S¦³¡Ñ²Å¸¹¡A©Ò¥H¥Î * ¥Nªí¼¸¹¡C³Ì«á area¡]±¿n¡^·|µ¥©ó 60¡C
EQU »P = ªº®t§O¦³¤G¡G
¦pªGn§â²Å¸¹«Å§i¬°¦r¦ê¡A¨ä»yªk¬O
²Å¸¹ EQU <¦r¦ê>
ÁöµM¥H EQU §â¬YӲŸ¹«ü©w¬°¬Y¼Æ¡A¸Ó²Å¸¹µLªkקאּ¥t¤@Ó¼ÆÈ¡F¦ý¬O¥H EQU §â¬YӲŸ¹«ü©w¬°¬Y¦r¦ê¡A«o¬O¥i¥Hק令¥t¤@Ó¦r¦ê¡C
¥H³o¨âÓ°²«ü¥O«Å§i²Å¸¹¡A¦³¨âÓ¦n³B¡G
¤Z¬O¦b¡u;¡v¤§«áªº¤å¦r³£·|³Q ML64.EXE ©Ò©¿²¤¡A¥i¥H·í¦¨µù¸Ñ¡C¡u;¡v¥i¥H¦b¤@¦æªº¶}ÀY¡A¤]¯à¦b¨ä¥L¦ì¸m¡C¤£½×¦bþ¨à¡A¦b¡u;¡v¤§«á¨ì¦¹¦æªºµ²§ô¡A³£·|³Q ML64.EXE ©¿²¤¦Ó·í¦¨µù¸Ñ¡C
µù¸Ñ¬OÅý¤H¡]¥]§t³oÓµ{¦¡ªº³]p¤H»P§O¤H¡^ª¾¹D¡A³o¤@¦æ©Î³o´X¦æµ{¦¡ªº§@¥Î¡AÁA¸Ñµ{¦¡¹B§@¡A¶i¦Óקï©Î°£¿ù¡Cµ{¦¡³]pªº¤HÀ³¾¨¶q¯d¤Uµù¸Ñ¡A¥H«K¤é«áקï¡C§Y¨Ï¦b§A½s¼gµ{¦¡ªº·í¤U¡A«Ü²M·¡¦UºØ²Ó¸`¡F¦ý¹L¤F´X¶g¡B´XÓ¤ë´N®e©ö²H§Ñ¡A¦]¦¹¤£¥i¤£¯d¤Uµù¸Ñ¡C¼g¤Uªºµù¸Ñ³Ì¦n¯à»¡©úºtºâªk¡B©Ò¥Îªºì²z¡BÅܼƩҥNªíªº·N¸q¡K¡K©Î¬O·í®Éªº·Qªkµ¥µ¥¡A¶V¸Ô²Ó¶V¦n¡F¤£n¼g¤@¨ÇµL·N¸qªºµù¸Ñ¡A¨Ò¦p¤U±ªºµù¸Ñ¬O¨S¦³·N¸qªº¡G
;*************************************** ;³o¬Oµù¸Ñ
¦³®Éµù¸Ñ¤Óªø¡A¥²¶·¨Ï¥Î¦n´X¦æ¤å¦r®É¡A¥i¥H¥Î COMMENT ¨Ó·í¦¨µù¸Ñ¡ACOMMENT ªº»yªk¬O¡G
COMMENT ¤À¹j¦r¤¸ µù¸Ñ¤å¦r ¤À¹j¦r¤¸
¤À¹j¦r¤¸¥i¥H¬O¥ô·N¦r¤¸¡A¦ý¬O¤£¥i¥H¥X²{¦bµù¸Ñ¤å¦r¤¤¡A°²¦p³o¼Ëªº¸Ü¡A²ÕĶ¾¹·|»{¬°µù¸Ñµ²§ô¤F¡A¦Óµo¥Í¿ù»~¡Cµù¸Ñ©ñ¦b¨âÓ¤À¹j¦r¤¸¤§¶¡¡A¥i¥H¦³³\¦h¦æ¡A¥B«e±¤£»Ýn¥[¤W¡u;¡v¡C
²{¥Nµ{¦¡¥]§t¤Fµ{¦¡½X»P¸ê®Æµ¥´X³¡¤À¡Aµ{¦¡½X¬O¥Î¨Ó³B²z¸ê®Æªº¡C¨Ò¦pÅý CPU ¹Bºâ 2¡Ï3¡×5¡A2 »P 3 ¬O¸ê®Æ¡A¡u¡Ï¡v©M¡u¡×¡v¬Oµ{¦¡½X¡C²{¦bªºµ{¦¡³£¬O§â¸ê®Æ©ñ¦b¤@ӰϬq¡]section¡^¡Aµ{¦¡½X©ñ¦b¥t¤@°Ï¬q¡C
¦b Win64 µ{¦¡¤¤¡A¥i¥H¤À¦¨¤TºØ°Ï¬q¡G¸ê®Æ°Ï¬q¡Bµ{¦¡½X°Ï¬q©M°ïÅ|°Ï¬q¡C¤@ӰϬq¶}©lªº¦a¤è¡A´N¬O¥t¤@ӰϬqªºµ²§ô¤§³B¡A¦]¦¹¤£¥²¼g¥X°Ï¬q¦bþ¨àµ²§ô¡C¨Ò¦p²Ä¤Q¤G¦æ¬O¡u.CODE¡v¡Aªí¥Üµ{¦¡½X°Ï¬q¶}©l©ó¦¹³B¡A¦P®É¤]¬O«e¤@ӰϬq¡A.CONST¡Aªºµ²§ô¡C
µ{¦¡½X°Ï¬q¥Î¡u.CODE¡v«Å§i¡F¸ê®Æ°Ï¬q¦³¤TºØ¡A¤À§O¥Î¡u.CONST¡v¡B¡u.DATA¡v©Î¡u.DATA?¡v«Å§i¡F°ïÅ|°Ï¬q¦b Win64 µ{¦¡¤¤¤£¶·«Å§i¡A¥Ñ¨t²Î³]©w¡C³o¨Ç«Å§i°Ï¬qªº°²«ü¥O¡A¤£°Ï¤À¤j¤p¼g¡A¥ç§Y«Å§iµ{¦¡½X°Ï¬q¥Î¡u.CODE¡v¥i¥H¡A¥Î¡u.code¡v¤]¥i¥H¡C¤Uªí¬O«Å§i°Ï¬qªº¤èªk¡A¥H³o¼Ëªº¤è¦¡«Å§i°Ï¬q¸û¬°Â²©ö¡AWin64 ¤¤±`¥H³oºØ¤è¦¡«Å§i¡A¤Uªí²Ä¤G¦æ¬O«Å§i«á°Ï¬q¦WºÙ¡C
«Å§i | ¦WºÙ | »¡¡@¡@©ú |
.CODE | _TEXT | µ{¦¡½X°Ï¬q¡A³q±`·|¦³³\¦h x86 «ü¥O¤Î»P¤§°t¦Xªº°²«ü¥O¡C |
.CONST | CONST | ¦s©ñ±`¼Æ¸ê®Æªº°Ï¬q¡A¦b³oºØ°Ï¬q¤ºªº¸ê®Æ¥u¯àŪ¨ú¤£¯à§ó§ï¡C |
.DATA? | _BBS | ¦s©ñÅܼƸê®Æªº°Ï¬q¡A¦b³oºØ°Ï¬q¤ºªº¸ê®Æ¥i¥HŪ¨ú¤]¥i¥H§ó§ï¡F¦pªG¦b³o°Ï¬q©w¸qÅܼơA¤£¥²³]©wªì©lÈ¡A§Y¨Ï³]©w²ÕĶ¾¹¤]·|¨Ï¨äÅܦ¨ 0¡C |
.DATA | _DATA | ¦s©ñÅܼƸê®Æªº°Ï¬q¡A¦b³oºØ°Ï¬q¤ºªº¸ê®Æ¥i¥HŪ¨ú¤]¥i¥H§ó§ï¡F¦pªG¦b³o°Ï¬q©w¸qÅܼơA¥i¥H³]©wªì©lÈ¡A¤]¥i¥H¤£³]¡C¦pªG³]©wªì©lÈ¡A²ÕĶ¾¹¤£·|§ïÅÜ¥¦¡C |
.STACK | °ïÅ|°Ï¬q¡Aì©l½X¤º¤£³]©w¡A§_«hµo¥Í¿ù»~¡A¥¦¥²¶·¥Ñ¨t²Î³]©w¡C |
FIRST.ASM ¤¤ªº²Ä¤C¡B¤Q¤@¡B¤Q¤T¡B¤G¤Q¤¦æ¬Oµù¸Ñ¡A¦Ó¥B¾ã¦æµù¸Ñ¡C³o¼Ë§@ªº¥Øªº¡A¥u¬O¬°¤F°Ï¹j¨âӰϬq©Î°Æµ{¦¡¡A¥H¤è«K¾\Ū¡A¨S¦³¯S§Oªº¥\¥Î¡C
FIRST.ASM ¤¤ªº²Ä¤E¡B¤Q¦æ¬O
szCaption DB "²Ä¤@ÓWin64µ{¦¡",0 szText DB "³o¬O¥Î²Õ¦X»y¨¥¼gªº64¦ì¤¸µ{¦¡¡C",0
³o¨â¦æ¤À§O©w¸q¤F¨âÓ¦r¦ê¡A¦r¦ê¬O¤@ºØ¡u¸ê®ÆÃþ«¬¡v¡A¥i¥H·Q¦¨¬O¤@¬q¤å¦r¡C¦]¦¹¡A³o¨â¦æ¥i¥H·Q¦¨¬O©w¸q¨â¬q¤å¦r¡C¹q¸£¤£¶È¥i¥H³B²z¼ÆÈ¡A·íµM¤]¯à³B²z¤å¦r¡A³o¨Ç¬O¤£¦Pªº¸ê®ÆºØÃþ¡A´NºÙ¬°¸ê®ÆÃþ«¬¡]Data type¡A¤]ºÙ¸ê®Æ«¬ºA¡^¡C©w¸q¦r¦ê¥i¥H¥Î°²«ü¥O¡uDB¡v¡]DB ¬O define byte ªº·N«ä¡^©Î¡uBYTE¡v¡A³o¨âÓ«ü¥O¨ä¹ê¬O¤@¼Ëªº¡C¡uDB¡v©Î¡uBYTE¡vªº»yªk¬O¡G
¦r¦ê¦W DB ¦r¦ê¤º®e ¦r¦ê¦W BYTE ¦r¦ê¤º®e
¦r¦êªº¤º®e¥²¶·¥Î¤@¹ï¡u"¡v©Î¡u'¡v¬A°_¨Ó¡C
¦pªGn©w¸q¾ã¼Æªº¸ê®ÆÃþ«¬¡A¥i¥H¥Î¡uDB¡v¡B¡uDW¡v¡B¡uDD¡v¡B¡uDQ¡v¥|ºØ°²«ü¥O¡A¨Ì·Ó©Ò¨Ï¥Îªº¾ã¼Æ½d³ò¦Ó©w¡A¦p¤Uªí¡G
°²«ü¥O | ¦P¸q°²«ü¥O | ¦WºÙ | ªø«× ¡]¦ì¤¸²Õ¡^ | ¦ì¤¸¼Æ | ©Ò¯àªí¥Üªº¥¿¾ã¼Æ½d³ò | ¤¤¤å |
DB | BYTE | ¦ì¤¸²Õ | 1 | 8 | 0¡ã255 | ¨â¦Ê¤¤Q¤ |
DW | WORD | ¦r²Õ | 2 | 16 | 0¡ã65,535 | ¤»¸U¤¤d¦h |
DD | DWORD | Âù¦r²Õ | 4 | 32 | 0¡ã4,294,967,295 | ¥|¤Q¤G»õ¦h |
DQ | QWORD | ¥|¦r²Õ | 8 | 64 | 0¡ã18,446,744,073,709,551,615 | ¤@¤d¤K¦Ê¨Ê¦h |
©³¤Uªº¨Ò¤l¬O©w¸q¡uminutes¡vÅܼƬ° 60¡A¡udays¡vÅܼƬ° 365¡A¡useconds_per_day¡vÅܼƬ° 15180h¡C¦b²Õ¦X»y¨¥¤¤¡Anªí¥Ü¤Q¤»¶i¦ì¼Æ¡A´N¦b¸Ó¼ÆȤ§«á¥[¤W¡uh¡v©Î¡uH¡v¡F¤Q¶i¦ì¼Æ«h¦b¼ÆÈ«á±¥[¤W¡ud¡v©Î¡uD¡v¡A¤]¥i¥H¬Ù²¤¡A³o¬O¤º©wªº¡F¤K¶i¦ì¼Æ«h¦b¼ÆÈ«á±¥[¤W¡uo¡v©Î¡uO¡v¡F¤G¶i¦ì¼Æ«h¥[¤W¡ub¡v©Î¡uB¡v¡C
minutes DB 60
days DW 365
seconds_per_day DD 15180h ; ¼Æȫᦳ¡uh¡v¡Aªí¥Ü¤Q¤»¶i¦ì¼ÆÈ
year DD ?
¦pªGÅܼƨS¦³ªì©lÈ¡A¤]¥i¥H¥Î¡u?¡vªí¥Ü¡A¦ý¥²¶·¦b¡u.DATA¡v©Î¡u.DATA?¡v°Ï¬q¤º¡A¨Ò¦p¤W±ªº¡uyear¡vÅܼơC
¤ñ¸û¯S§Oªº¬O¡uDB¡v¡A¥i¥H©w¸q 0¡ã255 ªº¥¿¾ã¼Æ¡]µù¤T¡^¡A¥¿¾ã¼Æ¬O¼Æ¾Ç¤Wªº³N»y¡A¦b¹q¸£¥Î»y¤W±`¨Ï¥ÎµL¸¹¼Æ¡]unsigned integer¡^¡A¨âªÌ¥iµø¬°¬Û¦P¡CDB °£¤F¯à©w¸q 0¡ã255 ¤§¶¡ªºµL¸¹¼Æ¥~¡A¤]¯à©w¸q¦r¦ê¡A©ó©w¸q¦r¦ê®É¡A¬O¥Î¤@¹ï¡u"¡v©Î¡u'¡v±N¦r¦ê¬A°_¨Ó¡C
¦b¹q¸£¤¤¡A¼ÆȤ£¶È¶È¬O¼ÆÈ¡A¦³®É¤]¬O¦r¤¸¡C¬ü°ê°ê®a¼Ð·Ç¨ó·|¡]American National Standards Institute¡A²ºÙ ANSI¡^¨î©wªº ASCII ½s½X¤è¦¡´N¥Î 41H ¥Nªí^¤å¦r¥Àªº¡uA¡v¡A42H ¥Nªí¡uB¡v¡K¡K¡]°Ñ¦Ò DOS ²Õ¦X»y¨¥ªþ¿ý¥|¡^¡C¹q¸£¬Ý¨ì 41H¡A´N·|¨Ì¾Ú¦¹¼ÆȨì¦r§ÎÀɤ¤¥h§ä¥Nªí 41H ªº¦r§Î¡C·íµM³oÓ¦r§Î¦¤w³]p¦¨¡uA¡vªº¼Ë¤l¤F¡A©Ò¥H´N¯à¦b¿Ã¥ú¹õ¤WÅã¥Ü¥X¡uA¡vªº¼Ë¤l¡C¥Ñ³\¦h¦r¤¸²Õ¦X°_¨Ó¡A´N§Î¦¨¦r¦ê¡C·íµM¨CÓ¤H©Î¹q¸£³£n¨Ï¥Î¦P¤@ºØ½s½X¤è¦¡¡A§_«h¦b¬Y³¡¹q¸£¥Í¦¨ªº¸ê®Æ©ÎÀɮסA®³¨ì¥t¤@³¡¹q¸£¤W¥h«KµLªk·¾³q¡C
¤@Ӧ줸²Õ¥i¥Hªí¥Ü 0¡ã255 Ó¼ÆÈ¡A¤@Ó¼ÆÈ¥Nªí¤@Ó¦r¥À¡C¦Ó^¤å¦r¥À¦@ 26 Ó¡A¦A¥[¤Wªü©Ô§B¼Æ¦r¡B¤@¨Ç²Å¸¹¡A©Ò¥H¥Î¤@Ӧ줸²Õ´N°÷¤F¡C¦ý¬O¡A±`¥Îªº¤¤¤å¦r´N¦³¼Æ¤d¡A©Ò¥H¥²¶·¥Î¨âӦ줸²Õªí¥Ü¡C¦´Á§Ų́ϥθê°T¤u·~µ¦¶i·|©Ò¨î©wªº Big5 ½s½X¤è¦¡¡A¨Ò¦p¡u0B2C4H¡v¥Nªí¡u²Ä¡v¡C
²Ä¤K¦æ¨ì²Ä¤Q¦æ¬O
.CONST szCaption DB "²Ä¤@ÓWin64µ{¦¡",0 szText DB "³o¬O¥Î²Õ¦X»y¨¥¼gªº64¦ì¤¸µ{¦¡¡C",0
·N«ä´N¬O»¡¡A¦¹³B¦³¤@Ó¸ê®Æ°Ï¬q¡A¦Ó¦¹¸ê®Æ°Ï¬q¬O¦s©ñ±`¼Æªº¸ê®Æ°Ï¬q¡A¦¹³B©Ò¦s©ñªº±`¼Æ¬O¨âÓ¦r¦ê¡AszCaption »P szText¡C¦bµ{¦¡°õ¦æ¹Lµ{¤¤¡A³£µLªk§ó§ï³o¨â¦r¦êªº¤º®e¡C·í²ÕĶ¾¹²ÕĶ«á¡A³o¨âÓ¦r¦ê³£·|Åܦ¨¤@¦ê¼ÆÈ¡A¹³ szCaption ªº²Ä¤@Ӧ줸²Õ¬O B2H¡B²Ä¤GӦ줸²Õ¬O C4H¡C
«e±¤w¸g»¡¹L¦³Ãö¥Dµ{¦¡»P°Æµ{¦¡ªº·§©À¡A©³¤U¨Ó¬Ý¬Ý¦p¦ó§â¬YÓµ{¦¡¤ù¬q«Å§i¦¨°Æµ{¦¡¡C«Ü²³æ¡A¨Ï¥Î PROC °²«ü¥O¡A¦Ó PROC ¥²©wn»P ENDP °²«ü¥O·f°t¡A¥¦Ìªº»yªk¬O¡G
label PROC [distance][language-type][visibility][USES ¼È¦s¾¹¦Cªí][°Ñ¼Æ¦Cªí][FRAME[:ehandler-address]] µ{¦¡¤ù¬q label ENDP
label ¬O°Æµ{¦¡ªº¦WºÙ¡A¦b Win64 ùجO°Ï¤À¤j¤p¼gªº¡A¦]¦¹©R¦W®Énª`·N¡C¥Î[]¬A°_¨Óªº¥i¥H¬Ù²¤¡A¡udistance¡v¡]¶ZÂ÷¡^©M¡ulanguage-type¡v¡]»y¨¥Ãþ«¬¡^¥u¦³¦b 16 ¦ì¤¸©Î 32 ¦ì¤¸ªº MASM ¤¤¤~¦³®Ä¡F¡uFRAME¡v ¥u¾A¥Î©ó ML64.EXE¡A¸Ô²Óªº±¡§Î¥i¥H°Ñ¦Ò·L³nªººô¶¡A¦ý¦¹³B¥Î¤£¨ì¥H«á¦³¾÷·|¦A»¡¡C¦¹³B¥u»¡©ú visibility¡BUSES¡B°Ñ¼Æ¦Cªí¤T¶µ¡G
PROC »P ENP ¤§¶¡ªºµ{¦¡¤ù¬q´N¬O label °Æµ{¦¡ªº¤º®e¡C·í¥Dµ{¦¡§â±±¨îÅv¥æµ¹°Æµ{¦¡®É¡A·|±q°Æµ{¦¡ªº²Ä¤@¦æ¶}©l°õ¦æ¡A³v¤@©¹¤U°õ¦æ¨C¤@¹D«ü¥O¦Ü°Æµ{¦¡³Ì«á¤@¦æ¡AµM«á§â±±¨îÅvÂkÁÙ¥Dµ{¦¡¡C
·í¨Ï¥ÎªÌn Windows °õ¦æ FIRST.EXE ®É¡AWindows ªº°µªk¨ä¹ê´N¬O©I¥s FIRST.EXE ¤¤ªº main °Æµ{¦¡¡A³o¼Ë´N¯à§â±±¨îÅv²¾¨ì main °Æµ{¦¡¤¤¡A¦]¬°³oÓ¹Lµ{ Windows ¨S¦³¶Ç»¼°Ñ¼Æ¡A¦]¦¹¡umain PROC¡v¤§«á¨S¦³¨ä¥L¸ê®Æ¡C¨Æ¹ê¤W¡AWindows °õ¦æÀ³¥Îµ{¦¡®É¡A³£¬O¾ú¸g³o¼Ëªº¹Lµ{¡C
FIRST.EXE ¥u¦³¤@ӰƵ{¦¡¡A¦ý¬O¦pªGn°õ¦æªºÀ³¥Îµ{¦¡«Ü¦h°Æµ{¦¡¡A¨º»òþ¤@Ó¤~¬Oµ¹ Windows ©I¥sªº©O¡Hì¨Ó²ÕĶ®É¡A¦b¡u©R¥O´£¥Ü¦C¡v¤¤¤U¹F¡uml64 first.asm /link /entry:main¡v«ü¥O¡A¦b³oùتº¡u/entry:¡v«á±©Ò±µªº°Æµ{¦¡¡A´N¬Oµ¹ Windows ©I¥sªº¡C¤]¥i¥H»¡¡Amain °Æµ{¦¡¬OÀ³¥Îµ{¦¡ªº¶i¤JÂI¡A·í Windows §@·~¨t²Î°õ¦æ FIRST.EXE µ{¦¡®É¡A¬O±q³oùض}©l°õ¦æ¡C©Ò¥H§ÚÌ¥i¥H³o¼Ë·Q¡A·í FIRST.EXE °õ¦æ®É¡A¬O¥Ñ Windows ¨t²Î©I¥s main¡AWindows ¨t²Î¬O¡u¥Dµ{¦¡¡v¡Amain ¬O¡u°Æµ{¦¡¡v¡C
¶i¤J main °Æµ{¦¡¤§«á¡A¦@¦³¤Q¤@¹D«ü¥O¡]FIRST.ASM ªº²Ä 15¡ã25 ¦æ¡^¡A³o¤Q¤@¹D«ü¥O·|Åã¥Ü¤@Óµøµ¡¡AµM«áÅý¨Ï¥ÎªÌ«ö¡u½T©w¡v«ö¶sµ²§ôµ{¦¡¡C³o¤Q¤@¹D«ü¥O¡A³£¬O«ü´§ CPU ¨Ï¨ä¶i¦æ¹Bºâ¡A¹³³o¼Ëªº«ü¥OºÙ¬° CPU «ü¥O¡A¦Ó Windows §@·~¨t²Î¤j³¡¤À³£¬O¦w¸Ë¦b x86 ®a±Úªº CPU¡A©Ò¥H³o¨Ç«ü¥O³£¬O x86 «ü¥O¡C©³¤U¤p¤ì°¸¥ý¸ÑÄÀ³o¨Ç«ü¥O¦p¦ó¹B§@¡AµM«á¦A»¡©ú¬°¦ó¨Ï¥Î³o¨Ç«ü¥O¡A´N¯àÅã¥Ü¤@Óµøµ¡¡AµM«áÅý¨Ï¥ÎªÌ«ö¡u½T©w¡v«ö¶sµ²§ôµ{¦¡¡C
XOR ¤¤¤åºÙ¬°¡u¤¬¥¸©Î¡v¡]exclusive or¡^¡A¬OÅÞ¿è¹Bºâªº¤@ºØ¡C¥ý¬Ý¬Ý¤é±`¥Í¬¡¤¤Ãþ¦üªº¨Ò¤l¡A¨Ò¦p°ª¤¤¤G¦~¯Å¾Ç¥Í±N±Á{¿ï¾ÜªÀ·|²ÕÁÙ¬O¦ÛµM²Õ¡A·íµM¦PÓ¤H¥u¯à¿ï¤@²Õ´NŪ¡C¦pªG¦³¦ì¾Ç¥Í¥u¿ï¾Ü¨ä¤¤¤§¤@¡A¥Nªí¥L¤w¿ï²Õ§¹¦¨¡F¦pªG¦³¥t¤@¦ì¾Ç¥ÍÁÙ¥¼¿ï¾Ü¡A·íµM´NÁÙ¨S§¹¦¨¡F¦pªGÁÙ¦³¥t¤@¦ì¾Ç¥Í¨â²Õ³£¿ï¡A¾Ç®Õ·íµM¤£·|¦P·N³o¼Ëªº¤è¦¡¡A¤]¥Nªí¥LÁÙ¨S§¹¦¨¡C³o¤]¬O¡u¤¬¥¸©Î¡vªº¦WºÙ¥Ñ¨Ó¡AŪªÀ·|²Õ»PŪ¦ÛµM²Õ¤£¯à¦P®Éµo¥Í¡A¬O¬°¡u¤¬¥¸¡v¡F¦Ó¨âªÌ¥u¯à¿ï¾Ü¤@ºØ¡A¥un¥ô¿ï¤@ºØ´N¥Nªí§¹¦¨¡A¬O¬°¡u©Î¡v¡C
¥H¤W±°ª¤G¾Ç¥Í¿ï²Õ¬°¨Ò¡A¿ï¾Ü¬Y¤@²Õ·í°µ¯u¡A¥H¡u1¡vªí¥Ü¡F¤£¿ï¬Y¤@²Õ·í°µ°²¡A¥H¡u0¡vªí¥Ü¡C¬Y¦ì¾Ç¥Í¤w§¹¦¨¿ï²Õ·í°µ¯u¡A¥H¡u1¡vªí¥Ü¡FÁÙ¥¼§¹¦¨·í§@°²¡A¥H¡u0¡vªí¥Ü¡C¥|¦ì¾Ç¥Í¤À§O¥Nªí¥|ºØ±¡§Î¡A¦C¦¨¤@±iªí¦p¤U¡C¾Ç¥Í¥Ò¥Nªí¥L³£ÁÙ¨S¿ï¾Ü¡A¬G¥¼§¹¦¨¿ï²Õ¡F¾Ç¥Í¤A¥Nªí¥L¿ïªÀ·|²Õ¡A¤w§¹¦¨¿ï²Õ¡K¡K¨ä¾l¨Ì¦¹Ãþ±À¡C
¾Ç¥Í | ¿ïªÀ·|²Õ | ¿ï¦ÛµM²Õ | ¬O§_¤w§¹¦¨¿ï²Õ |
¥Ò | 0 | 0 | 0 |
¤A | 1 | 0 | 1 |
¤þ | 0 | 1 | 1 |
¤B | 1 | 1 | 0 |
¦b¹q¸£¤¤n¹ê²{¬O§_§¹¦¨¿ï²Õªº¹Bºâ¡A´N¯à¨Ï¥Î¡u¤¬¥¸©Î¡v¹Bºâ¡C¦b¹q¸£¸Ì¡A¤¬¥¸©Î¹Bºâ¡B¥B¹Bºâ¡B©Î¹Bºâ¡B«D¹Bºâ¬O¥|ºØ±`¨£ªºÅÞ¿è¹Bºâ¡A¹q¸£³Ì¾Õªø³B²z¼ÆÈ¡A¤×¨ä¬O¤G¶i¦ì¡A¦]¦¹¦b¹q¸£¤¤¡A±`¥H 0 ¥Nªí°°¡B°²¡B§_©wªº¡F¥H 1 ¥Nªí¯u¡B¬O¡BªÖ©wªº¡C¦b³\¦hµ{¦¡¤¤¡A¤]·|«Å§i¡uTRUE¡v¥Nªí¡u1¡v¡B¡uFALSE¡v¥Nªí¡u0¡v¡C¨âÓ¤@¦ì¤¸ªº¹Bºâ¤¸°µ XOR ¹Bºâ¡A¦³¥|ºØ¤è¦¡¡A¦p¤Uªí¡]¹Bºâ¤¸¬O¤°»ò¡A½Ð¬ÝµùÄÀ¡^¡G
0 XOR 0¡×0 1 XOR 0¡×1 0 XOR 1¡×1 1 XOR 1¡×0
¹³³o¼Ë§âÅÞ¿è¹Bºâ¦C¦¨ªºªí®æ¡AºÙ¬°¯uȪí¡C¤W±´N¬O XOR ªº¯uȪí¡C¦pªG§A¥J²ÓÆ[¹î¡A´N·|µo²{¡G①¨âÓ¬Û¦Pªº¹Bºâ¤¸§@¤¬¥¸©Î¹Bºâ¡Aµ²ªG¬° 0¡F②¨âÓ¬Û²§¹Bºâ¤¸§@¤¬¥¸©Î¹Bºâ¡Aµ²ªG¬° 1¡C¡]A XOR B¡×R ¤¤¡AA¡BB ³£ºÙ¬°¹Bºâ¤¸¡AR ºÙ¬°µ²ªG¡^
¦b x86 «ü¥OùØ¡AXOR ªº»yªk¬O¡G
XOR ¥Øªº¹Bºâ¤¸,¨Ó·½¹Bºâ¤¸
XOR ªº¹Bºâ¬O¥Øªº¹Bºâ¤¸©M¨Ó·½ºâ¤¸§@¤¬¥¸©Î¹Bºâ¤§«á¡A¦A§âµ²ªG¼g¤J¥Øªº¹Bºâ¤¸ùØ¡C¥Øªº¹Bºâ¤¸¥i¥H¬O¼È¦s¾¹¡BÅܼơA¨Ó·½¹Bºâ¤¸¥i¥H¬O¼È¦s¾¹¡BÅܼƻP¥ß§YÈ¡C¼È¦s¾¹¬O CPU ¸Ì±¤@¶ô¼È®É¦s©ñ¼ÆÈ®e¶q«Ü¤pªº°O¾ÐÅé¡A¦ý¬O CPU ¥iª½±µ¹ï¨ä¹Bºâ¦Ó¥B³t«×«Ü§Ö¡A¦b²Õ¦X»y¨¥¤¤·|®É®É¹B¥Î¨ì¼È¦s¾¹¡C¥Øªº¹Bºâ¤¸»P¨Ó·½¹Bºâ¤¸¤£¯à¦P®É¬OÅܼơA¦Ó¥Bªø«×¥²¶·¬Û¦P¡A¨Ò¦p³£¬O 64 ¦ì¤¸¡A¦Ó¤£¯à¤@Ó¬O 64 ¦ì¤¸¥t¤@Ó¬O 16 ¦ì¤¸¡C
Á|Ó¨Ò¤l¡AY AL¡×6BH¡ABL¡×C2H¡A°õ¦æ¡uXOR AL,BL¡v«áªºµ²ªG¬O¤°»ò©O¡H½Ð°Ñ¦Ò¥k¹Ï¡G¡]¥k¹Ï¤w±N 6BH »P C2H ´«ºâ¦¨¤G¶i¦ì¼Æ¡A³o¼Ë¤~¯à¤@Ӧ줸¤@Ӧ줸¶i¦æ XOR ¹Bºâ¡^
AL ªº²Ä¹s¦ì¤¸»P BL ªº²Ä¹s¦ì¤¸§@¤¬¥¸©Î¹Bºâ¡A§Y¡u1 XOR 0¡v±o¡u1¡v¡]¬Û²§È°µ¤¬¥¸©Î±o 1¡^
AL ªº²Ä¤@¦ì¤¸»P BL ªº²Ä¤@¦ì¤¸§@¤¬¥¸©Î¹Bºâ¡A§Y¡u1 XOR 1¡v±o¡u0¡v¡]¬Û¦PÈ°µ¤¬¥¸©Î±o 0¡^
¨ä¾l¨Ì¦¹Ãþ±À¡Aì«h´N¬O¨C¤@¦ì¤¸©M¥t¤@¬Û¹ïÀ³ªº¦ì¤¸¹Bºâ¡C³Ì«áµ²ªG´N¬O¡u6B XOR C2¡×A9¡v¡C¦]¦¹¡uXOR AL,BL¡v¤§«á¡AAL Åܦ¨ A9¡ABL ¤´¬O C2¡C
°õ¦æ XOR «ü¥O«á¡A·|¨Ì¾Ú¹Bºâµ²ªG¼vÅT CPU ¤º³¡¤@ÓºÙ¬°ºX¼Ð¼È¦s¾¹ªº¼ÆÈ¡CºX¼Ð¼È¦s¾¹¤£¥Î©ó¹Bºâ¡A¦ý¬O¥¦ªº¨CӦ줸¦³¤£¦Pªº¦WºÙ¤Î¥\¯à¡A°O¿ý¹Bºâªºµ²ªG¨Ãªí¥Üª¬ºA¡A½Ð°Ñ¦Ò¡uDOS ²Õ¦X»y¨¥ªþ¿ý¤T¡v¡C¦¹³B¥ý¤¶²Ð¹sȺX¼Ð¡]zero flag¡A²ºÙ ZF¡^¡C
¹sȺX¼Ð¬OºX¼Ð¼È¦s¾¹ªº²Ä¤»¦ì¤¸¡C·í¹Bºâµ²ªG¬°¹s®É¡ACPU ·|§â¹sȺX¼Ð³]¬°¤@¡AºÙ¬°¡u³]©w¹sȺX¼Ð¡v¡A°£¿ùµ{¦¡·|¥H ZR ªí¥Ü¡FY¹Bºâµ²ªG¤£¬°¹s¡ACPU ·|§â¹sȺX¼Ð³]¬°¹s¡AºÙ¬°¡u²M°£¹sȺX¼Ð¡v¡A°£¿ùµ{¦¡·|¥H NZ ªí¥Ü¡C³o¸Ì«Ü¯S§O¡A¥i¯à¦³¤H·|¥H¬°¤p¤ì°¸¼g¿ù¡AÀ³¸Ó¡uºâµ²ªG¬°¹s®É¡ACPU ·|§â¹sȺX¼Ð³]¬°¹s¡v¤~¹ï¡A¨ä¹ê¤£µM¡C¦b¹q¸£¤¤¡A¹Bºâµ²ªG¬°¯u¬O¤@¡A¬°°²¬O¹s¡C¹sȺX¼ÐÀËÅçµ²ªG¬O§_¬°¹s¡A¬Gµ²ªG¬°¹s¡Aªí¥Ü¬°¯u¦]¦¹¹sȺX¼Ð³]¬°¤@¡F¦pªGµ²ªG¤£¬°¹s¡Aªí¥Ü¬°°²¦]¦¹¹sȺX¼Ð³]¬°¹s¡C
ºX¼Ð¼È¦s¾¹ªº²Ä¹s¦ì¤¸ªº¡u¶i¦ìºX¼Ð¡v¡]carry flag¡A²ºÙ CF¡^¡A¦ý XOR ¹Bºâ»Pɦì©Î¶i¦ìµLÃö¡A¦]¦¹ XOR ¤£¼vÅT¶i¦ìºX¼Ð¡A¤£½×µ²ªG«ç¼Ë³£·|³]¬°¹s¡C
XOR ¹Bºâ¦³¨âÓ«Ü©_§®ªº¯S©Ê¡A¨º´N¬O¡G①¡u¦pªG¬YӼƻP¦Û¤v§@¤¬¥¸©Î¹Bºâ¡A©Ò±oµ²ªG¬°¹s¡v¡F②¡u¬YӼƻP¦P¤@¼Æ³s°µ¨â¦¸¤¬¥¸©Î¹Bºâ¤´±o¨ìì¼Æ¡v¡C¦b FIRST.ASM µ{¦¡¤¤ªº²Ä¤Q¤»¦æ¡A´N¬O§Q¥Î②ªº¤èªk¡A¨Ï RCX Åܬ°¹s¡]xor rcx,rcx¡^¡C
±µ¤U¨Óªº«ü¥O¬O¡upush rcx¡v¡A¦ý¦b½Í¥¦¤§«e¡A±o¥ý¤¶²Ð¡u¦ì§}¡vªºÆ[©À¡C
¦b¥Á°ê 111 ¦~®É¡]¦è¤¸ 2022 ¦~¡^¡AÓ¤H¹q¸£©Ò¦w¸Ëªº°O¾ÐÅé¡]°ÊºA°O¾ÐÅé¡^¤j¬ù 8¡ã16 GB¡AGB ¬O¤Q»õ¦ì¤¸²Õªº·N«ä¡A©Ò¥H¥i¥H»¡¬O¤K¤Q»õ¨ì¤@¦Ê¤»¤Q»õӦ줸²Õ¡C·í¹q¸£¶}¾÷®É¡A¤£ºÞ¬Oµ{¦¡½X©Î¸ê®Æ¡A³£¬OÀx¦s¦b°O¾ÐÅ餧¤¤¡C¦b³o»ò¦hªº°O¾ÐÅ餤¡An§ä¨ì¸ê®Æ¤@©wn¥Î¯S§Oªº¤èªk¡A§_«h´N¹³¤j®ü¼´°w¯ë§xÃø¡C
°O¾ÐÅé¥H¤@Ó¤@Óªº¦ì¤¸²Õ¬°³æ¦ì¡A¥Ñ¹s¶}©l½s¸¹¡C²Ä¹sӦ줸²Õ½s¸¹¬O¹s¡B²Ä¤@Ӧ줸²Õ½s¸¹¬O¤@¡K¡K¡A¨Ì¦¹Ãþ±À¡A¤@ª½¨ì´X¤Q»õ©Î´X¦Ê»õ¬°¤î¡Aµø¹q¸£¤¤¸Ë¦³¦h¤Ö°O¾ÐÅé¨M©w¡C³oùتº 0¡B1¡B2¡B3¡Kµ¥½s¸¹¡AºÙ¬°¦ì§}¡C·í¹q¸£n§â¸ê®Æ¦s¤J°O¾ÐÅé¡A©Î¥Ñ°O¾ÐÅéŪ¨ú¸ê®Æ®É¡A³£n«ü©w¨ìþ¤@Ó¦ì§}ªº°O¾ÐÅé¥h¦s¨ú¡C¤]´N¬O»¡¡A¦b³o¯EÃvªº°O¾ÐÅé¸Ì¡ACPU ¬O¾a¦ì§}¨Ó§â¸ê®Æ¦s¤J°O¾ÐÅ餤¡A¤]¬O¾a¦ì§}±q°O¾ÐÅ餤Ū¨ú¸ê®Æ¡C
³oºØ±¡§Î´N¦n¤ñ¤@®y®ÈÀ]ªº¨Cөж¡¤@¼Ë¡A³o¨Ç©Ð¶¡³£¦³¦Û¤v¿W¤@µL¤Gªº©Ð¸¹¡C¾ã®y®ÈÀ]¦n¤ñ°O¾ÐÅé¡A¦U©Ð¶¡¦n¤ñ°O¾ÐÅ餤ªº¨CӦ줸²Õ¡A©Ð¸¹¦n¤ñ¬O¦ì§}¡A§ë±Jªº®È«È«h¬O°O¾ÐÅ餺ªº¸ê®Æ¡C·í®È«È§ë±J®É¡AªA°È¤Hû¤À°t¸Ó®È«È¨ìþ¤@өж¡¥h¡A®È«È¨Ì¾Ú¸Ó©Ð¸¹¶i¤J¸Ó©Ð¶¡¹L©]¥ð®§¡C³o®ÉÔ´N¦n¹³ CPU¡]¦n¤ñªA°È¤Hû¡^«ü©w¬Y¤@µ§¸ê®Æ¦s¤J¬YÓ¦ì§}ªº°O¾ÐÅ餺¡C
¤U¹Ï¬O§Q¥Î x64dbg ¸ü¤J FIRST.EXE «áªºµ²ªG¡]²Ä¤G³¹®É¡A¤p¤ì°¸·|¤@¨B¤@¨B»¡©ú¦p¦ó°µ¡^¡GÆ[¹î¤W¹Ï©³¤UªºÂŦâ®Ø®Ø¤º¡A³Ì¥kÃ䪺¤¤¤å¦r¦ê¡A³o´N¬O¦b FIRST.ASM ¤¤²Ä¤E¡B¤Q¦æ¥H¡uDB¡v©Ò©w¸qªº szCaption¡BszText ¨âÓ¦r¦ê¡C¦Ó¤¤¶¡«h¬O³o¨Ç¤¤¤å¦r©Î^¤å¦r¥À©Ò¥Nªíªº¼ÆÈ¡A§¡¥H¤Q¤»¶i¦ìªí¥Ü¡A§A¥i¥H¬Ý¨ì¡u²Ä¡vªº Big5 ½s½X¬O B2C4H¡B¡u¤@¡vªº Big5 ½X¬O A440H¡C³Ì¥ªÃä«h¬O¨ä¦ì§}¡C§A¥i¥H¬Ý¨£ szCaption ¦b¦ì§} 13F752020 ³B¡AszText ¦b 13F752030 ³B¡C
¤£¶È¶È¸ê®Æ¬O¦s©ñ¦b°O¾ÐÅ餺¡A¨C¤@µ§¸ê®Æ³£¦³¨ä¦ì§}¡Fµ{¦¡½X¤]¬O¦s©ñ¦b°O¾ÐÅ餺¡A¤]¦³¨ä¦ì§}¡C¨Ò¦p¤W¹Ïªºµµ¦â®Ø¤ºªº²Ä¤@¦æ¡A¬O¡uxor rcx,rcx¡v«ü¥O¡A¥ªÃ䪺¡u13F751000¡v´N¬O¨ä¦ì§}¡F¤]´N¬O»¡¡uxor rcx,rcx¡v«ü¥Oªº©Ò¦b¦ì§}¬O 13F751000¡C±q³o¨à¡A§AÀ³·í¥i¥H±o¨ì¡u¦bì©lµ{¦¡¤¤©w¸qªºÅܼƩΦr¦ê¡A¤D¦Ü¨ì¨C¹D«ü¥O¡A³£·|¦b°O¾ÐÅ餤ªº¬YÓ¦ì§}¤W¡v¡C
§A©Ò¬Ý¨ìªº³o¨Ç¦r¦ê©Î«ü¥Oªº¦ì§}¡A«D±`¦³¥i¯à·|»P¤W¹Ï¤£¤@¼Ë¡A³o«D±`¥¿±`¡C¦]¬° Windows ¦b¶}¾÷®É¸ü¤JªºÅX°Êµ{¦¡¡BªA°Èµ{¦¡ªº¦h¹è¡AÁÙ¦³¨Ï¥ÎªÌ°õ¦æµ{¦¡ªº¦h¹è¡A³£·|¼vÅT¨ì¨Ï¥Î°O¾ÐÅ骺±¡§Î¡C°õ¦æªºµ{¦¡¶V¦h¦û¥Î°O¾ÐÅé¶V¦h¡A§A¬Ý¨ìªº¦ì§}´N·|¶V©¹°ª¦ì§}²¾¡C
°ïÅ|¬O¤@¶ô¯S®íªº°O¾ÐÅé¡A³o¸ÌÁ¿ªº¯S®í¨Ã¤£¬O¦¹°O¾ÐÅé§÷®Æ¡B»s³y¤è¦¡¡A¦Ó¬O«ü¦s¨ú¤è¦¡¡C¯S®í¤§³B¦³¤G¡G①¦s¤J¸ê®Æ»PŪ¨ú¸ê®Æ®É±Ä¥Î¥ý¶i«á¥Xªº¤è¦¡¡F②¸ê®Æ¦s¤J°ïÅ|®É¥Ñ°ª¦ì§}©¹§C¦ì§}¤è¦V¤@µ§¤@µ§¦a¦s¤J¡C¥ý¶i«á¥Xªº·N«ä¬O«ü¡A¶V¥ý¦s¤Jªº¸ê®Æ¤Ï¦Ó¬O¶V«á±Åª¨ú¡C¦n¹³À\ÆU¸Ìªº½L¤l¤@¼Ë¡AÅ|¦b¶V©³¤Uªº½L¤l¬O¶V¥ý©ñªº¡A¶V¤W±ªº½L¤l¬O¶V±ß©ñªº¡C·í¤HÌn¥Î½L¤l®É¡A³£¬O¥ý¨ú¥X³Ì¤W±ªº½L¤l¡C°ïÅ|¤ºªº¸ê®Æ¡A´N¹³³o¨Ç½L¤l¡A¶V¥ý©ñªº½L¤l¡A¶V±ß¨ú¥Î¡C¸ê®Æ¥Ñ°ª¦ì§}¦V§C¦ì§}¦s¤J¬O«ü¡A¥ý¦s¤Jªº¸ê®Æ©ñ¦b°ª¦ì§}¡A¦Ó«á¦s¤Jªº¸ê®Æ«h¦b¤W¤@µ§¸ê®Æªº¸û§C¦ì§}³B¡C
¬°¤F¹F¨ì³o¨âӥتº¡A¦s¨ú°ïÅ|¤Wªº¸ê®Æ®É¡A¬O¥Ñ¨âÓ x86 «ü¥O PUSH¡BPOP ·f°t RSP ¼È¦s¾¹¦s¨ú¡CRSP ¼È¦s¾¹ºÙ¬°°ïÅ|«ü¼Ð¼È¦s¾¹¡]stack pointer register¡^¡ARSP ³£·|«ü¦V°ïÅ|³»ºÝ¡A¦b°ïÅ|³»ºÝ¥H¤Î§ó°ª¦ì§}³£¤w¦s¦³¸ê®Æ¡A¤ñ°ïÅ|³»ºÝ¦ì§}§Cªº°O¾ÐÅ餺ªº¸ê®Æ¬OµL¥Îªº¡A¤]¥i¥H»¡¡A°ïÅ|³»ºÝ¬O¦s¦³¸ê®Æªº³Ì§C¦ì§}¡C¦pªG¬Ý¤£À´¡Aµ¥¤@¤U¨Ò¤lÁ¿§¹´N·|À´¤F¡CPUSH »P POP ªº»yªk¬O¡G
PUSH ¹Bºâ¤¸ POP ¹Bºâ¤¸
¦]¬°¥»³¹½Í½×ªº³£¬O 64 ¦ì¤¸ªºµ{¦¡¡A©Ò¥H³o¸Ì PUSH »P POP ªº¹Bºâ¤¸¬O 64 ¦ì¤¸ªº¾ã¼Æ¡A¤]´N¬O¤KӦ줸²Õ¡CPUSH «á±±µµÛªº¹Bºâ¤¸¥i¥H¬O¼È¦s¾¹¡BÅܼƩα`¼Æ¡F¦Ó POP ªº¹Bºâ¤¸¥u¯à¬O¼È¦s¾¹©ÎÅܼơCPUSH ·|¥ý§â RSP ´î¥h¤K¡A¨Ï°ïÅ|³»ºÝ©¹§C¦ì§}²¾¤KӦ줸²Õ¡A¦A§â PUSH «á±±µµÛ¹Bºâ¤¸¦s¤J°ïÅ|¡A³oӰʧ@ºÙ¬°±À¤J°ïÅ|¡CPOP «ü¥O«h¬O¥ý±q RSP ©Ò«üªº°ïÅ|³»ºÝ¨ú¥X¼ÆÈ¡A¦s¤J¨ä«á±µµÛªº¹Bºâ¤¸¤º¡A¦A±N RSP ¥[¤K¡A³oӰʧ@ºÙ¬°¼u¥X°ïÅ|¡C
¥Ñ¦¹±oª¾¡APUSH ·|¨Ï°ïÅ|½d³òÂX¤j¡A°ïÅ|³»ºÝ©¹§C¦ì§}²¾°Ê¡F¦Ó POP «h¨Ï°ïÅ|½d³ò´î¤p¡A°ïÅ|³»ºÝ©¹°ª¦ì§}²¾°Ê¡C¥H©³¤Uªº¨Ò¤l»¡©ú¡G
mov rsp,2bfc38h mov r8,12CH push r8 push 190H pop rax
¤U¹Ï¤¤¡A¨CÓ¬õ¦âªº¤è¶ô¬O¤K¦ì¤¸²Õªº°O¾ÐÅé¡A°²³] RSP ¬° 2BFC38H¡A¥ç§Y°ïÅ|³»ºÝ¦ì©ó¦¹¦ì§}¡C¦b 2BFC38H ³B¥H¤Î¸û°ª¦ì§}ªº°ïÅ|¡A§¡¤w¦s¦³¸ê®Æ¡A¦]¦¹»¡ RSP «ü¦V¦s¦³¸ê®Æªº³Ì§C¦ì§}¡A¦p¤U¹Ï¤@¡C·í°õ¦æ¨ì¡uPUSH R8¡v®É¡A¥ý§â RSP ´î 8¡A«ü¦V 2BFC30H ³B¡A¦A§â R8 ¤§È¡A12CH¡]µ¥©ó¤Q¶i¦ìªº 300¡^¦s¤J¦¹¦ì§}ªº°O¾ÐÅ餺¡C³o¼Ëªº¸Ü¡ARSP ¤´¬O«ü¦V¤w¦s¦³¸ê®Æªº³Ì§C¦ì§}¡A°ïÅ|³»ºÝ¦V§C¦ì§}©µ¦ù¤KӦ줸²Õ¡A¦p¤U¹Ï¤G¡C±µµÛ PUSH 190H¡A¸ò¤W±¤@¼Ëªº¹Lµ{¡A§â RSP ´î¤K¡AÅܦ¨ 2BFC28H¡AµM«á§â 190H¡]¤Q¶i¦ì¬° 400¡^¦s¤J 2BFC28H ¦ì§}ªº°O¾ÐÅ餺¡C±µµÛªº«ü¥O¬O¡uPOP RAX¡v¡A¥¦·|§â RSP ©Ò«ü¦ì§}ªº°O¾ÐÅ餺®e¡A¦s¤J CPU ªº RAX ¼È¦s¾¹¸Ì±¡AµM«á¦A¨Ï RSP ¥[¤W¤K¡F©Ò¥H RAX ¤§È·|§ïÅܦ¨ 190H¡A¦P®É°ïÅ|³»ºÝÅܦ¨ 2DFC30H¡C
MOV «ü¥Oªº»yªk¬O
MOV ¥Øªº¹Bºâ¤¸,¨Ó·½¹Bºâ¤¸
¨ä¥\¯à¬O§â¨Ó·½¹Bºâ¤¸¤ºªº¼ÆȦs¤J¥Øªº¹Bºâ¤¸¸Ì¡C¥Øªº¹Bºâ¤¸¥i¥H¬OÅܼƩάO¼È¦s¾¹¡A¨Ó·½¹Bºâ¤¸¥i¥H¬OÅܼơB¼È¦s¾¹©Î±`¼Æ¡C¨Ò¦p
x dq ? ;©w¸q x ÅܼƬ°¥|¦r²Õ¾ã¼Æ ⁝ mov rcx,2 ;¨Ï RCX Åܬ° 2 mov x,rcx ;§â RCX ¤§È²¾¤JÅÜ¼Æ x ¸Ì¡A¬G«á¨Ó x¡×2
nª`·Nªº¦³¨âÂI¡C²Ä¤@¬O¨Ó·½¹Bºâ¤¸©M¥Øªº¹Bºâ¤¸¤j¤p¥²¶·¬Û¦P¡A¨Ò¦p³£¬O 64 ¦ì¤¸ªº¼È¦s¾¹©Î³£¬O 32 ¦ì¤¸ªº¼È¦s¾¹¡A¤£¥i¤@Ó¬O 64 ¦ì¤¸¡A¥t¤@Ó¬O 32 ¦ì¤¸¡C²Ä¤G¬O¥Øªº¹Bºâ¤¸»P¨Ó·½¹Bºâ¤¸¤£¯à¦P®É¬°ÅܼơC
¤W±ªº²Ä¤GÓ¨Ò¤l¡A¡umov x,rcx¡v¡A¬O§â¼È¦s¾¹¤§È¦s¤JÅܼƤ§¤¤¡A¦¹ÅܼƷíµM¬O¬YÓ¦ì§}ªº°O¾ÐÅé¡A
¦ý¬O¦b FIRST.ASM ªº²Ä¤Q¤C¦æ¬O¡umov rdx,OFFSET szText¡v¡AÅãµM¬O§â¡uOFFSET szText¡v¦s¤J RDX ¸Ì¡A¨º¤°»ò¬O¡uOFFSET szText¡v©O¡H¦b FIRST.ASM ¸Ì¡A²Ä¤Q¦æ©w¸q¤F szText ¬O¤@Ó¦r¦ê¡A¨º¤°»ò¬O¡uOFFSET¡v©O¡Hn¸ÑÄÀ¡uOFFSET¡vn¥ýÁA¸Ñ¦ì§}¡C
OFFSET ¹Bºâ¤lªº»yªk¬O
OFFSET ¹Bºâ¤¸
OFFSET ¬O«ü¥Ü ML64.EXE ²ÕĶ¾¹¦b²ÕĶªº®ÉÔ¡A§â¹Bºâ¤¸ªº¦ì§}pºâ¥X¨ÓµM«á¦A§@¬Y¨Ç³B²z¡A¦¹³Bªº¹Bºâ¤¸¥i¥H¬OÅܼƩμаO¡]label¡^¡C·í ML64.EXE ²ÕĶ¾¹pºâ±o¨ì¨ä¦ì§}«á¡A¨ä¹ê´N¬O¤@Ó±`¼Æ¡CFIRST.ASM ªº²Ä¤Q¤C¦æ¡A¡umov rdx,OFFSET szText¡v¡Aªº·N«ä¬O§â szText ¦r¦êªº¦ì§}¦s¤J RDX ¼È¦s¾¹¸Ì¡C¨Ì¾Ú¤W¹Ï¡A³Ì«á RDX ¬° 13FD92030¡C
LEA «ü¥O¬O¥Î¨Ó¨ú±o¦r¦ê¡BÅܼƩΰƵ{¦¡ªº¦ì§}¡A¨ä»yªk¬O
LEA ¼È¦s¾¹,¹Bºâ¤¸
¹Bºâ¤¸¥i¥H¬O¦r¦ê¡BÅܼƩΰƵ{¦¡¦WºÙ¡A°õ¦æ§¹ LEA «ü¥O«á¡A¼È¦s¾¹ªº¼ÆÈ´N·|Åܦ¨¨ä«á©Ò±µ¦r¦ê¡BÅܼƩΰƵ{¦¡ªº°_©l¦ì§}¡Cnª`·Nªº¬O¡A¦b Win64 ùØ¡A¦ì§}¬O 64 ¦ì¤¸¡A¦]¦¹¼È¦s¾¹¤]±on¥Î 64 ¦ì¤¸¡A¨Ò¦p RAX¡BRCX¡K¡Kµ¥¡A¤£¥i¥H¥Î EAX¡BAX ³o¨Ç 32 ¦ì¤¸©Î 16 ¦ì¤¸ªº¼È¦s¾¹¡C
¡uLEA¡v»P¡uMOV ·f°t OFFSET¡v¡A³£¬O¥Î¨Ó¨ú±o¦ì§}¡A¦ü¥G¤@¼Ë¡A¨ä¹ê¤£µM¡C¡uMOV ·f°t OFFSET¡v¥u¯à¥Î©ó²ÕĶ¶¥¬q´N¤w¸g½T©w¦ì§}ªº¹Bºâ¤¸¡F¦ý¬O¹³¥~³¡ÅܼơB¼Ð°Oµ¥¡A©Î¬O°Ï°ìÅܼơA³£¥u¯à¦b°õ¦æ¹Lµ{¤¤¤~¯à½T©w¦ì§}¡A³o®ÉÔ¥u¯à¥Î¡uLEA¡v«ü¥O¡C
¦b FIRST.ASM ªº²Ä¤Q¤K¦æ¬O¡ulea r8,szCaption¡v¡A´N¬O¨ú±o szCaption ªº¦ì§}¡A¦Ó«á±N¨ä¦s¤J R8 ¸Ì±¡C¨Ì¾Ú¤W¹Ï¡A³Ì«á R8 ¬° 13FD92020¡C
SUB «ü¥O¬O´îªk«ü¥O¡]subtract¡^¡A¥¦ªº»yªk¬O¡G
SUB ¥Øªº¹Bºâ¤¸,¨Ó·½¹Bºâ¤¸
SUB ·|§â¥Øªº¹Bºâ¤¸ùرªº¼ÆÈ´î¥h¨Ó·½¹Bºâ¤¸ùرªº¼ÆÈ¡A¦A§âµ²ªG¦s¤J¥Øªº¹Bºâ¤¸¡C¦]¦¹°õ¦æ§¹«á¡A¥Øªº¹Bºâ¤¸¤§È·|§ïÅÜ¡A¨Ó·½¹Bºâ¤¸¤§È¤£ÅÜ¡C¥Øªº¹Bºâ¤¸¥i¥H¬OÅܼƩμȦs¾¹¡A¨Ó·½¹Bºâ¤¸¥i¥H¬O±`¼Æ¡BÅܼƩμȦs¾¹¡A¦ý¬O¥Øªº¹Bºâ¤¸©M¨Ó·½¹Bºâ¤¸¤£¯à¦P®É¬°ÅܼơA¦Ó¥B¨âªÌªº¦ì¤¸¼Æ¥²¶·¬Û¦P¡C¨Ò¦p©³¤Uªº¨Ò¤l¡C
sub rax,rcx ;¥¿½T¡ARAX¡BRCX §¡¬° 64 ¦ì¤¸¡C¹Bºâ«á¡ARCX ¤£ÅÜ¡ARAX ·|§ïÅÜ sub rax,dx ;¿ù»~¡ARAX¬° 64 ¦ì¤¸¦Ó DX ¬° 16 ¦ì¤¸
¤W±²Ä¤@Ó¨Ò¤l¬O§â RAX ¼È¦s¾¹´î¥h RCX ¼È¦s¾¹¡A¦A§â©Ò±o¤§®t¦s¤J RAX ¸Ì±¡C
°õ¦æ SUB «ü¥O¤Î¤@¨Ç x86 ¹Bºâ«ü¥O«á¡A·|¼vÅT CPU ¤º³¡ªº¤@ÓºÙ¬°ºX¼Ð¼È¦s¾¹ªº¼ÆÈ¡CºX¼Ð¼È¦s¾¹¤¤ªº¨CӦ줸¡A°£¤F¨S¥Îªºªº¥H¥~¡A¦U¦³¦Û¤vªº¦WºÙ¡A¦ý¤p¤ì°¸¥u¤¶²Ð²Ä¹s¦ì¤¸ªº¡u¶i¦ìºX¼Ð¡v¡]carry flag¡A²ºÙ CF¡^»P²Ä¤»¦ì¤¸ªº¹sȺX¼Ð¡]zero flag¡A²ºÙ ZF¡^¡C
¶i¦ìºX¼Ð»P¶i¦ì¸òɦ즳Ãö¡Aɦ쪺Æ[©À¦b¤p¾Ç®É¾Ç²ß´îªk¤@¼Ë¡A¨Ò¦p 15¡Ð3¡A³Q´î¼ÆªºÓ¦ì¼Æ¬O 5¡A¤j©ó 3¡A¤£¥²É¦ì¡F¦ýY¬O 15¡Ð9¡A³Q´î¼ÆªºÓ¦ì¼Æ¬O 5¡A´î¼Æ¬O 9¡A¤£°÷´î´Nnɦì¡C
SUB ªºÉ¦ì»P§_¡A«h¬O¥Ñ¥Øªº¹Bºâ¤¸»P¨Ó·½¹Bºâ¤¸ªº¤j¤p¨M©w¡A¦pªG¥Øªº¹Bºâ¤¸¤j©ó©Îµ¥©ó¨Ó·½¹Bºâ¤¸´N¤£¶·É¦ì¡A¹Bºâ¤§«á¡A¶i¦ìºX¼Ð·|³Q CPU ³]¬°¹s¡A¦³®ÉÔ¤]ºÙ¡u²M°£¶i¦ìºX¼Ð¡v¡A¦Ó°£¿ùµ{¦¡·|Åã¥Ü NC¡F¦pªG¥Øªº¹Bºâ¤¸¤p©ó¨Ó·½¹Bºâ¤¸´N·|µo¥Íɦì¡ACPU ·|§â¶i¦ìºX¼Ð³]¬°¤@¡A¤]ºÙ¡u³]©w¶i¦ìºX¼Ð¡v¡A¦Ó°£¿ùµ{¦¡·|Åã¥Ü CY¡C
¶i¦ìºX¼Ð³oÓ¦WºÙ¬O¨Ì¾Ú¥[ªk¹Bºâ¨Óªº¡A¦pªG³Ì°ª¦ì¤¸¬Û¥[µ²ªGµo¥Í¶i¦ì¡A¶i¦ìºX¼Ð·|³Q CPU ³]¬°¤@¡A¤Ï¤§³]¬°¹s¡C
¹sȺX¼Ð¬OÀˬd SUB «áµ²ªG¬O§_¬°¹s¡A¦pªG¤£¬°¹s¡ACPU ·|§â¹sȺX¼Ð³]¬°¹s¡AºÙ¬°¡u²M°£¹sȺX¼Ð¡v¡A°£¿ùµ{¦¡Åã¥Ü NZ¡FY¹Bºâµ²ªG¬°¹s¡ACPU ·|§â¹sȺX¼Ð³]¬°¤@¡AºÙ¬°¡u³]©w¹sȺX¼Ð¡v¡A°£¿ùµ{¦¡Åã¥Ü ZR¡C°Ñ¦Ò«e±ªº XOR «ü¥O¡C
CALL ¬O©I¥s°Æµ{¦¡ªº«ü¥O¡ARET ¬O¦Û°Æµ{¦¡ªð¦^¥Dµ{¦¡ªº«ü¥O¡A¨ä»yªk¤À§O¬O
CALL °Æµ{¦¡¦W RET
CALL ·|§â¤U¤@Ón°õ¦æªº«ü¥O¦ì§}±À¤J°ïÅ|¡A¦¹¦ì§}ºÙ¬°ªð¦^¦ì§}¡AµM«á§â±±¨îÅvÂಾ¨ì°Æµ{¦¡©Ò¦b¦ì§}°õ¦æ¡CRET «ü¥O·|§â RSP ©Ò«ü°ïÅ|³»ºÝªºªð¦^¦ì§}¨ú¦^¡A¨Ã¨Ï RSP ¥[¤W¤K¡AµM«á±N±±¨îÅvÂಾ¨ìè¥Ñ°ïÅ|³»ºÝ¨ú¥Xªºªð¦^¦ì§}¤Wªº«ü¥O¡AÄ~Äò°õ¦æ¡C
¥k¹Ï¬O FIRST.EXE ©I¥s MessageBoxA Windows API ªº·Q¹³¹Ï¡C·í°õ¦æ¨ì¡ucall MessageBoxA¡v®É¡ACALL ·|§â¤U¤@¹D«ü¥O¡APOP RCX¡Aªº¦ì§}±À¤J°ïÅ|¡A¦¹¦ì§}´N¬Oªð¦^¦ì§}¡AµM«á§â±±¨îÅv¥æµ¹ MessageBoxA ªº¶i¤JÂI¡Cµ¥ MessageBoxA °õ¦æ³Ì«á¤@¹D«ü¥O¡ARET¡A¥¦·|±q°ïÅ|³»ºÝ¨ú¦^ªð¦^¦ì§}¡A¨Ï RSP ¥[¤K¡AµM«á§â±±¨îÅvÂkÁÙµ¹ªð¦^¦ì§}¤Wªº«ü¥O¡A¤]´N¬O POP RCX¡C
§Ú̦b¼¶¼g Win64 µ{¦¡¡AµL¥iÁקKn©I¥s Windows API ¨Ó²¤Æµ{¦¡¡C¦pªG¤£³o»ò°µ¡A¥i¥H·Q¹³±o¨ì¡A¥ú¬O«Ø¥ßµøµ¡¤Ö»¡´Nn¼g¼Æ¦Ê¦æµ{¦¡½X¤F¡C«e±´£¹L¡AWindows API ¥i¥H¬Ý¦¨¬O·L³n¼g¦n¡AÅý§ÚÌ©Ò¼¶¼gªºµ{¦¡©I¥sªº°Æµ{¦¡¡A¥i¥H¥Î CALL «ü¥O©I¥s¥¦Ì¡C
«e±¤w¤¶²Ð¹L«Å§i°Æµ{¦¡ªº¤èªk¡APROC/ENDP¡A«Ü¦h¤H·|¯Ç´e¡AENDP ¤£´N¬Oµ²§ô°Æµ{¦¡¶Ü¡H¬°¦óÁÙn¦³ RET «ü¥O©O¡H¹ê»Ú¤W¡APROC/ENDP ¥u¬O¥Î¨Ó§i¶D²ÕĶ¾¹©Î¬OÅý¤H̾\Ū¤è«K¡A¦b PROC/ENDP ¤§¶¡ªºµ{¦¡¤ù¬q¬O°Æµ{¦¡¡A¦ý¬O¯u¥¿ÂkÁÙ±±¨îÅvµ¹¥Dµ{¦¡ªº¬O RET¡C¦]¦¹ PROC/ENDP ¬O°²«ü¥O¡ARET ¤~¬OÅý CPU ¯u¥¿°õ¦æªº«ü¥O¡C
ADD «ü¥O¬O¨Ï CPU ¶i¦æ¥[ªk¹Bºâ¡C»yªk¬O¡G
ADD ¥Øªº¹Bºâ¤¸,¨Ó·½¹Bºâ¤¸
ADD ·|§â¥Øªº¹Bºâ¤¸ùرªº¼ÆÈ¥[¤W¨Ó·½¹Bºâ¤¸ùرªº¼ÆÈ¥H«á¡A¦A§âµ²ªG¦s¤J¥Øªº¹Bºâ¤¸¡C¦]¦¹°õ¦æ§¹«á¡A¥Øªº¹Bºâ¤¸¤§È·|§ïÅÜ¡A¨Ó·½¹Bºâ¤¸¤§È¤£ÅÜ¡C¥Øªº¹Bºâ¤¸¥i¥H¬OÅܼƩμȦs¾¹¡A¨Ó·½¹Bºâ¤¸¥i¥H¬O±`¼Æ¡BÅܼƩμȦs¾¹¡A¦ý¬O¥Øªº¹Bºâ¤¸©M¨Ó·½¹Bºâ¤¸¤£¯à¦P®É¬°ÅܼơA¦Ó¥B¨âªÌªº¦ì¤¸¼Æ¥²¶·¬Û¦P¡C
ADD «ü¥O·|¼vÅTºX¼Ð¼È¦s¾¹¡A¦b³o¸Ì¤p¤ì°¸¶È¤¶²Ð¶i¦ìºX¼Ð©M¹sȺX¼Ð¡C¦pªG¬Û¥[¤§©Mµo¥Í¶i¦ì¡A¨º»ò¶i¦ìºX¼Ð·|Åܬ°¤@¡A§_«h¬°¹s¡Cª`·N¡A³o¸Ìªº¶i¦ì¬O«ü³Ì°ª¦ì¤¸µo¥Í¶i¦ì¤~ºâ¡A¨ä¥L¦ì¤¸¶i¦ì¤£ºâ¡C¦pªG¬Û¥[¤§©M¬°¹s¡A¨º»ò¹sȺX¼Ð·|Åܬ°¤@¡A§_«h¬°¹s¡C
©³¤U¥»¸Ó¤¶²Ð©I¥s Windows API ªº³W«h¡AÁÙ¦³ FIRST.ASM ©I¥sªº¨âÓ API¡GMessageBoxA »P ExitProcess¡A«eªÌ²£¥Í¤@Ó¦³¼ÐÃDÄæ¤Î¦³¤@¬q¤å¦rªºµøµ¡¡A«áªÌ¬Oµ²§ôµ{¦¡¡C¦ý¥»³¹¤w¸gÁ¿±o¤Ó¦h¤F¡A¯d«Ý¤U¤@³¹Ä~Äò§a¡I
¦b¼Æ¾Ç¤W¡A¥[¡B´î¡B¼¡B°£¬O§Ú̳̦¾Çªº¹Bºâ¡A¥¦ªº¹ï¶H¦³³\¦hºØ¡A¥i¯à¬O±`¼Æ¡BÅܼơK¡K¡A³o¨Ç±`¼Æ¡BÅܼơK¡K³£ºÙ¬°¹Bºâ¤¸¡]operand¡^¡A¦Ó¹Bºâªº°Ê§@ºÙ¬°¹Bºâ¤l¡]operator¡^¡C¨Ò¦p¡u10¡Ð8¡×2¡v¤¤¡A10 ¬O³Q´î¼Æ¡A8 ¬O´î¼Æ¡A2 ¬O®t¡F¦b¹q¸£¤¤ªº³N»y¡A¦¹¤GªÌ¬Ò¬°¹Bºâ¤¸¡B¡u¡Ð¡vºÙ¬°¹Bºâ¤l¡C
¥|«h¹Bºâªº¹Bºâ¤¸³£¬O¨âÓ¡A¦ý¤]¦³¨Ç¹Bºâ¤l¥u¶·¤@Ó¹Bºâ¤¸¡A¬Æ¦Ü«Ü¦h¡C¨Ò¦pt¸¹¤]¥i¥H¬Ý¦¨¬O¤@ºØ¹Bºâ¡A¥¦´N¥u¦³¤@Ó¹Bºâ¤¸¡C¹³¥»³¹©Ò´£ªº¡uOFFSET¡v¤]¬O¹Bºâ¤l¡A¨ä¹Bºâ¤¸¤]¥u¦³¤@Ó¡C
°Ñ¼Æ©M¤Þ¼Æ¬O©I¥s°Æµ{¦¡®É¡A¥Ñ¥Dµ{¦¡¶Çµ¹°Æµ{¦¡ªº¸ê®Æ¡A±`±`²V¦b¤@°_¡AÅý¤H·d¤£²M·¡¡C¦³®É¤£°Ï¤À¥¦Ì¡A¤]¥¼¹Á¤£¥i¡C¦pªG¤@©wn°Ï¤À¡A¥i¥H³o¼Ë¤À¡G°Ñ¼Æ¬O¥Î¦b©w¸q°Æµ{¦¡®É©Ò¨Ï¥ÎªºÅܼơA¦Ó¤Þ¼Æ«h¬O©I¥s°Æµ{¦¡®É¡A¹ê»Ú¶Çµ¹°Æµ{¦¡ªº¼ÆÈ¡C
Á|Ó¨Ò¤l¨Ó»¡¡A°²³]¦³Ó°Æµ{¦¡¡]gcd¡^¬Opºâ¨âÓ¾ã¼Æªº³Ì¤j¤½¦]¼Æ¡A¨º»ò³oӰƵ{¦¡¥i¥H³o¼Ë©w¸q¡G
gcd PROC int1:QWORD,int2:QWORD ⁝ ret gcd ENDP
°²³]²{¦bnpºâ 48 ©M 18 ªº³Ì¤j¤½¦]¼Æ¡A¨º»ò·|³o¼Ë©I¥s¡]²Ä¤»³¹¤~·|¤¶²Ð INVOKE¡A²{¦b¥unª¾¹D¥¦¬O¥Î¨Ó©I¥s°Æµ{¦¡ªº¡u«ü¥O¡v§Y¥i¡A©I¥s®É int1 ·|¥H 48 ¥N¤J¡Aint2 ·|¥H 18 ¥N¤J¡AµM«á±N±±¨îÅvÂಾ¨ì gcd °Æµ{¦¡¥hpºâ³o¨â¼Æªº³Ì¤j¤½¦]¼Æ¡^¡G
INVOKE gcd,48,18
¦b¤W±ªº¨Ò¤l¤¤¡Aint1 ©M int2 ¬O°Ñ¼Æ¡A48 ©M 18 ¬O¤Þ¼Æ¡C
¦Û¤HÃþ¶}©lpºâ¼Æ¦r¥H¨Ó¡Aµo©ú¤F³\¦h°O¿ý¼Æ¦rªº¤èªk¡A³Ìª½±µªº¤èªk´N¬O¤@±ø½u¥Nªí¤@¡A¨â±ø½u²{¥Nªí¤G¡K¡K¡A¦ý¬OÁ`¤£¯à¥H¤QÓ½u±øªí¥Ü¤Q¡A¥H¤@¦ÊÓ½u±øªí¥Ü¤@¦Ê¡]¨Æ¹ê¤W¡A¦³¨Ç¦a°Ïªº¤H¡A¤@¶}©l¥u¯àpºâ¨ì¤T¡A¤T¥H¤W´N³Q»{¬°«Ü¦h¡A¤HÃþp¼Æ¡A¤]¬O¤@³¡¸g¾ú¼Æ¸U¦~ªº¾ú¥v¡^¡C¦³³\¦h¥Á±Ú·Q¥X¤F¸Ñ¨M¤§¹D¡Aù°¨¤H¬O¨ä¤¤¤§¤@¡A¥L̥Τ@ӲŸ¹¥Nªí¤¡A¥t¤@ӲŸ¹¥Nªí¤Q¡A
I ªí¥Ü¤@ X ªí¥Ü¤Q M ªí¥Ü¤@¤d II ªí¥Ü¤G L ªí¥Ü¤¤Q III ªí¥Ü¤T C ªí¥Ü¤@¦Ê V ªí¥Ü¤ D ªí¥Ü¤¦Ê
²{¦b¦³¨Ç®ÉÄÁÄÁ±¤W¡A¤´¥Îù°¨¼Æ¦rªí¥Ü¡C³oºØ¤è¦¡ÁöµM¬O«Ü¤jªº¶i¨B¡A¦ýnªí¥Ü¦Ê¡B¤d¡B¸U´N³Â·Ð¤F¡C¨Ò¦p¦b¹qª± 3A ¤j§@´cÆF¥j³ù 4 «»sª©¡]Resident Evil 4 Remaker¡^¤¤¡AÂļw°Ç®a±Úªº±VÃä¸O¤å¦~¥N¬O MDCCCXXVII¡A«ÜÃø¤@²´´Nª¾¹D¬O¦è¤¸ 1827 ¦~¡C
§Ú̲{¦b¥Îªº¼Æ¦r¨t²Î¬O¦L«×¤Hµo©úªº¡]¦³¤@»¡¬Oªü©Ô§B¤H¡^©M¤@¯ëªí¥Ü¼Æ¦rªº¤èªk¦³¨âÂI¤£¦P¡A¤@¬O¹sªºµo©ú¡A¤@¬O¥Î¦ì¸mªí¥Ü¦ì¼Æ¡C¥¦¥Î 1 ¥Nªí¤@¡B2 ¥Nªí¤G¡A¤@ª½¨ì¤F¤EÅܦ¨¤Qªº®ÉÔ´Nµo¥Í¶i¦ì¡A³o®É¥Î 1 ªí¥Ü¤Q¦ì¼Æ¡A«á±¥Î 0 ªí¥ÜÓ¦ì¼Æ¡Aªí¥ÜªÅ¦ì©Î¨S¦³ªº·N«ä¡A©ó¬O´NÅܦ¨¤F 10 ªí¥Ü¤Q¡C¦]¦¹¼Æ¦r©Ò¦bªº¦ì¸m¤£¦P¡A¥Nªíªº·N¸q´N¤£¦P¡A¤p¾Ç¥Í³£ª¾¹D 100 ³oӼƦ³¨âÓ 0¡A¦ý³o¨âÓ¹s¬O¤£¤@¼Ëªº¡C¹sªºµo©ú¡A¦bp¼Æ¤W¦³«Ü«nªº·N¸q¡C
©Î³\§A·|°Ý¡A¬°¤°»ò¨ì¤Q¤~µo¥Í¶i¦ì¡A¤£¦b¨ä¥L¼Æ¦rµo¥Í¶i¦ì©O¡H¤HÃþ±Ä¥Î¤Q¶i¦ìp¼Æ¡A¨Ã¨S¦³¤°»ò¯S®íªº²z¥Ñ¡A³o§¹¥þ¬O¦]¬°¤HÃþ¦³¤QÓ¤â«üÀY¡A§Aª¾¹D¶Ü¡H¦³¨Ç¦a¤è³s¸}³kÀY¤]¥Î¨Óp¼Æ¡A©Ò¥H¬O¤G¤Q¶i¦ì¡Aº¿¶®¤H´N¬O¦p¦¹p¼Æ¡C¦pªG¦³¥~¬P¤H¦³ 8 Ó¤â«üÀY¡A»¡¤£©w¥LÌ´N¬O¥Î¤K¶i¦ì¡C¦Ó¹q¸£¥u¦³¨âÓ¡u¤â«üÀY¡v¡A¤@Ó°O¾ÐÅ餤ªº¹qÀ£¥i¯à¬O°ª¹qÀ£©Î§C¹qÀ£¡A¦]¦¹¦pªG°ª¹qÀ£¥Nªí¤@¡B§C¹qÀ£´N¥Nªí¹s¡A©Ò¥H¹q¸£¥Î¡u¤G¶i¦ì¡v¡C
¦pªG¥u¦³¤@Ó°O¾ÐÅé¡A¨º»ò´N¥u¦³ 0 ¸ò 1 ¨âºØªí¥Ü¤è¦¡¡A¤]¥u¯àªí¥Ü 0 ¸ò 1 ¨âºØ¼Æ¡C¦pªG¦³¨âÓ°O¾ÐÅé¡A´N¦³¥|ºØªí¥Ü¤èªk¡A¤À§Oªí¥Ü 0¡B1¡B2¡B3 ¥|ºØ¼Æ¡G
00 ªí¥Ü 0 01 ªí¥Ü 1 10 ªí¥Ü 2 11 ªí¥Ü 3
¦pªG¦³¤TÓ°O¾ÐÅé¡A´N¦³¤KºØªí¥Ü¤èªk¡A¥i¥Hªí¥Ü 0 ¨ì 7 ªº¼Æ¡G
000 ªí¥Ü 0 001 ªí¥Ü 1 010 ªí¥Ü 2 011 ªí¥Ü 3 100 ªí¥Ü 4 101 ªí¥Ü 5 110 ªí¥Ü 6 111 ªí¥Ü 7
§A¥i¥H¬Ý±o¥X¨Ó¡A¦pªG¨C¥[¤J¤@Ó°O¾ÐÅé¡A¥i¥Hp¼ÆªºÓ¼Æ´NÅܦ¨ì¨Óªº¨â¿¡C¦b¹q¸£¤¤¥Î¤KÓ°O¾ÐÅé¡]¤]´N¬O¤K¦ì¤¸¡^ªí¥Ü 0 ¨ì 255 ¦@¦³ 256 ӼƦr¡]§Y 28¡^¡C
0000 0000 ªí¥Ü 0 0000 0001 ªí¥Ü 1 0000 0010 ªí¥Ü 2 0000 0011 ªí¥Ü 3 0000 0100 ªí¥Ü 4 ⁝ 1111 1111 ªí¥Ü 255
¨Æ¹ê¤W¡A¤W±³o¨Ç¨Ò¤lªº¥ªÃä¤@¤j°ïªº 0 ©M 1 ´N¬O©Ò¿×ªº¤G¶i¦ì¼Æ¡A¤]´N¬O¹q¸£¬Ý±oÀ´ªº¼Æ¡A¥kÃä´N¬O§ÚÌ©Ò¼ôª¾ªº¤Q¶i¦ì¼Æ¡C¨º¤G¶i¦ì©M¤Q¶i¦ì¤§¶¡n«ç»òÂà´«©O¡H
§ÚÌ¥ý¨Ó¬Ý¬Ý¤Q¦ì¼Æ§a¡I°²³]¦³¤@Ó¤Q¦ì¼ÆÈ¡A234¡A³o¤TÓ¼Æþ¤@ӳ̤j¡H§Ú·Q§A¤£·|»¡¬O¡u4¡v³Ì¤j§a¡H¨Æ¹ê¤W¡A¥¦Ì©Ò¦bªº¦ì¸m¤£¦P·N¸q¤]¤£¦P¡C2 ¨ä¹ên¼¥H 100 ¤~¬O¥¦©Ò¥Nªíªº¼ÆÈ¡F3 n¼¥H 10¡A¤~¬O¥¦©Ò¥Nªíªº¼ÆÈ¡K¡K¡A¦pªG¼g¦¨¼Æ¾Ç¦¡¡A¥i¥H¼g¦¨¬O
2¡Ñ102¡Ï3¡Ñ101¡Ï4¡Ñ100
¤]´N¬O¥ÑÓ¦ì¼Æ¶}©l¡A¨C¦ì¼Æ¨Ì¦¸¼¥H¤Qªº¾¦¸¤è¡C¤G¶i¦ì¼ÆÅܦ¨¤Q¶i¦ì¼Æ¤]¬O¦P¼Ëªº¹D²z¡A¤]´N¬O»¡¥Ñ³Ì¥kÃ䪺¨C¤@¦ì¼Æ¶}©l¡A¨Ì¦¸¼¥H¤Gªº¾¦¸¤è¡A¤]´N¬O 20¡×1¡B21¡×2¡B22¡×4¡B23¡×8¡K¡K¡CÁ|¨Ò¨Ó»¡¡A¤U¹Ïªº¤G¶i¦ì¼Æ
1010 1011 ¬Û·í©ó¤Q¶i¦ìªº 171¡]128+32+8+2+1=171¡^¡C¦pªGn¼g¦¨§¹¾ãªº¹Bºâ¦¡¡A´N¬O¹³¤U±ªº¦¡¤l¡G
1¡Ñ27¡Ï0¡Ñ26¡Ï1¡Ñ25¡Ï0¡Ñ24¡Ï1¡Ñ23¡Ï0¡Ñ22¡Ï1¡Ñ21¡Ï1¡Ñ20
¥Ñ¤W±ªº»¡©ú¥iª¾¡A¤@¼Æªº¥kÃä²Ä¤G¦ì¶}©l©¹¥ªÃ䪺¦ì¼Æ¡A¨äȧ¡¬°¤Gªº¿¼Æ¡A©Ò¥H³Ì¥kÃ䨺¦ì¼Æ¨M©w¤F¦¹¼Æ¬O©_¼ÆÁÙ¬O°¸¼Æ¡C°²¦p¬O¤@¡A¦¹¼Æ¥²¬°©_¼Æ¡F¬°¹s¡A¥²¬°°¸¼Æ¡C
¦pªG¼¶¼g²Õ¦X»y¨¥µ{¦¡¥Î¤G¶i¦ì¡A¦ì¼Æ·|Åܱo«Ü¤j¡A«D±`³Â·Ð¡A¦]¦¹¥Î§é°Jªº¤èªk¡A¥i¥Î¤Q¤»¶i¦ì¡C¤G¶i¦ì¨C¥|¦ì²Õ¦X°_¨Ó¡A«ê¦n¥i¥Hªí¥Ü¤Q¤»Ó¼Æ¡A±Ä¥Îªü©Ô§B¼Æ¦r 0¡ã9¡A¦A¥[¤W^¤å¦r¥À¡uA¡v¡ã¡uF¡v¡C¤]´N¬O»¡¡G
1010 ªí¥Ü A 1011 ªí¥Ü B 1100 ªí¥Ü C 1101 ªí¥Ü D 1110 ªí¥Ü E 1111 ªí¥Ü F
¦]¦¹¤G¶i¦ìªº 1010 1011¡A¬Û·í©ó¤Q¤»¶i¦ìªº AB¡A¤]´N¬O¤Q¶i¦ìªº 171¡C
¤Q¤»¶i¦ì¥i¥Hª½±µÂàÅܦ¨¤Q¶i¦ì¡Aì²z¸ò¤G¶i¦ìÂà´«¦¨¤Q¶i¦ì¤@¼Ë¡A¦ý³o¦¸¬On±Ä¥Î 16 ªº¾¦¸¤è¡C¨BÆJ¦p¤U¡G①¥ý§â¡uA¡v¡B¡uB¡v¡B¡uC¡v¡K¡Kµ¥Âà´«¦¨¡u10¡v¡B¡u11¡v¡B¡u12¡v¡K¡Kµ¥¤Q¶i¦ì¼Æ¡C②¥Ñ³Ì¥kÃä¶}©l¡A±N³o¨Ç¤Q¶i¦ì¼Æ¼¥H 16 ªº¾¦¸¤è¡A16 ªº¾¦¸¤è¥Ñ 160 ¶}©l¡C③¥þ³¡¥[°_¨Ó´N¬O³Ì«áªºµ²ªG¡C
¨Ò¦p§â¡uA4B¡vÅܤQ¶i¦ì¡A¡uA¡v¬O¤Q¶i¦ìªº¡u10¡v¡A¡uB¡v¬O¤Q¶i¦ìªº¡u11¡v¡A©Ò¥Hpºâ¹Lµ{¬O
10¡Ñ162¡Ï4¡Ñ16111¡Ñ160¡×2635