¨C·íÀ³¥Îµ{¦¡©I¥s°Æµ{¦¡®É¡A¦p¦³¥²n·|¦b°ïÅ|¤W«Ø¥ß¤@¶ô°O¾ÐÅéªÅ¶¡¡A¨Ñ¨ä°õ¦æ´Á¶¡¨Ï¥Î¡C³o¶ôªÅ¶¡³q±`¥]§tªð¦^¦ì§}¡B©I¥sªÌª¬ºA¡]¦pì¥ýªº RBP ©Î³Q«O¦sªº¼È¦s¾¹¡^¡B°Æµ{¦¡©Ò»Ýªº°Ï°ìÅܼƥH¤Î»P¬ÛÃöªº¸ê®Æ¡A³o¼Ëªº°O¾ÐÅéªÅ¶¡ºÙ¬°°ïÅ|®Ø¡]stack frame¡^¡C¦b«e´X³¹¤w¸g´£¨ì¹L°Ñ¼Æ¡Bªð¦^¦ì§}¡Bì¥ýªº RBP ³o¤TÓ°ïÅ|®Ø¡A¦Ó³o¨â³¹¤p¤ì°¸¥´ºâÁ|ªº¨Ò¤l»¡©ú§ó§¹¾ãªº°ïÅ|®Ø¡C
¦b¶}©l»¡©ú°ïÅ|®Ø¤§«e¡A¦³¨â¥ó¨Æ±o¥ýÁn©ú¡G①·Ó©¹¨Ò¥ý»¡©ú¥»³¹¥Î±o¨ìªº Win64 API¡Bx64 «ü¥O»P°²«ü¥O¡C③¥»³¹ªº¨Ò¤l¬O GCD.ASM¡A¤£¥Î MASM64 SDK ªº¥¨¶°¡A¦Ó¬O¯Â¤â¤u¥´³y»Ppºâ¦ì§}¡A³o¬O¬°¤F³æ¯Â¡A¤£Åý MASM64 SDK ¥[ªo²K¾L¦h¤F¤@¨Ç¤£»Ýnªº«ü¥O©Î®ö¶O°ïÅ|ªÅ¶¡¡C
¦b¤é±`¥Í¬¡¤¤¡A±`¨Ï¥Î¡©©Î¡ª³oÓ´yz¡C¨Ò¦p±ß¶º«á¡A¶ý¶ý»¡¡G¡u¬~§¹¸J¡©©Î¡ªË§¹¼p¾l´N¯à¥´¹q°Ê¡C¡v·N«ä´N¬O¬~¸J¸ò˼p¾l¨â¥ó¨Æ¡A¥un§¹¦¨¥ô·N¤@¥ó´N¯à¥´¹q°Ê¡C§â°µ§¹¨Æ±¡·í§@¯u¡A¥H¡u1¡vªí¥Ü¡F¨Æ±¡¥¼°µ§¹¡A¬°°²¡A¥H¡u0¡vªí¥Ü¡C¯àª±¹q°Ê¬°¯u¡A¥H¡u1¡vªí¥Ü¡F¤£¯àª±¹q°Ê¬°°²¡A¥H¡u0¡vªí¥Ü¡Cµ²ªG¦p¤Uªí¡G¨Æ¥ó¥Ò¥Nªí¨S¬~¸J¤]¨S˼p¾l¡A©Ò¥H¤£¯àª±¹q°Ê¡F¨Æ¥ó¤Aªí¥Ü¬~¸J¦ý¨S˼p¾l¡A¥i¥H¥´¹q°Ê¡K¡K
| ¨Æ¥ó | ¬~§¹¸J | ˧¹¼p¾l | ¬O§_¯àª±¹q°Ê |
| ¥Ò | 0 | 0 | 0 |
| ¤A | 1 | 0 | 1 |
| ¤þ | 0 | 1 | 1 |
| ¤B | 1 | 1 | 1 |
¦b¹q¸£¤¤¡A¡©©Î¡ª¹Bºâ¤]¹³¤W±¡u¯à§_¥´¹q°Ê¡vªº¨Ò¤l¤@¼Ë¡C¤]´N¬O»¡¡A¨âÓ¤@¦ì¤¸ªº¹Bºâ¤¸°µ¡©OR¡ª¹Bºâ¡A¥un¦³¤@Ó¹Bºâ¤¸¬°¤@¡Aµ²ªG´N¬O¤@¡F¥u¦³¨âÓ¹Bºâ¤¸³£¬O¹s¡Aµ²ªG¤~¬O¹s¡COR ¹Bºâªº¯uȪí¦p¤U¡G
0 OR 0¡×0 1 OR 0¡×1 0 OR 1¡×1 1 OR 1¡×1
OR «ü¥Oªº»yªk¬O
OR ¥Øªº¹Bºâ¤¸,¨Ó·½¹Bºâ¤¸
OR «ü¥O¬O±N¨Ó·½¹Bºâ¤¸ªº¨CӦ줸»P¥Øªº¹Bºâ¤¸¬Û¹ïÀ³ªº¦ì¤¸§@ OR ¹Bºâ¡A¦A±N¨äµ²ªG¦s¤J¥Øªº¹Bºâ¤¸¤¤¡C¥Øªº¹Bºâ¤¸¥i¥H¬O¼È¦s¾¹¡BÅܼơA¨Ó·½¹Bºâ¤¸¥i¥H¬O¼È¦s¾¹¡BÅܼƻP¥ß§YÈ¡A¥Øªº¹Bºâ¤¸»P¨Ó·½¹Bºâ¤¸¤£¯à¦P®É¬OÅܼơA¥Bªø«×¥²¶·¬Û¦P¡A¨Ò¦p³£¬O¤K¦ì¤¸¡A¤£¥i¤@Ó¬O¤K¦ì¤¸¥t¤@Ó¬O¤Q¤»¦ì¤¸¡C
¦¹¥~¡AOR «ü¥O¤]·|¨Ì¾Úµ²ªG³]©wºX¼Ð¼È¦s¾¹¤¤ªº¹sȺX¼Ð¡C°²¦pµ²ªG¬°¹s¡A·|¨Ï¹sȺX¼ÐÅܬ°¡u1¡v¡A§_«h¹sȺX¼Ð¬°¡u0¡v¡COR ¤£·|µo¥Íɦì©Î¶i¦ì¡A¦]¦¹¶i¦ìºX¼Ð³£·|³]¬°¹s¡C
¨Ò¦p¡AAL¡×32H¡A°õ¦æ¡uOR AL,0C3H¡v«áªºµ²ªG¦p¥k¹Ï¡A³Ì«áµ²ªG¬° F3¡A¦]¦¹ AL ¤]·|Åܦ¨ F3¡C
OR «ü¥O¦³´X¶µ¯S©Ê¡G①¦pªG¬Y¼Æ¹ï¦Û¨¶i¦æ OR ¹Bºâµ²ªG¤´¬°¦Û¨¡C②¦pªG¦Û¤v¥»¨¬O¹s¡Aµ²ªG¤]¬O¹s¡F¤Ï¹L¨Ó¡A¦pªG¨â¼Æ¶i¦æ OR ¹Bºâ¡Aµ²ªG¬O¹s¡A¨º»ò³o¨â¼Æ¥²¬Ò¬°¹s¡C¦b²Õ¦X»y¨¥ùØ¡A±`±`§Q¥Î³oºØ©Ê½è¥hÀˬd¬YӼȦs¾¹¬O§_¬°¹s¡C
nÁA¸Ñ TEST «ü¥O¡AÀ³¥ý»¡©ú AND «ü¥O¡A¦]¬°¥¦Ì´X¥G¤@¼Ò¤@¼Ë¡CAND «ü¥Oªº»yªk¬O
AND ¥Øªº¹Bºâ¤¸,¨Ó·½¹Bºâ¤¸
³oÓ«ü¥O¬O±N¥Øªº¹Bºâ¤¸»P¨Ó·½¹Bºâ¤¸°µ AND ¹Bºâ¡A¦A±Nµ²ªG¦s¤J¥Øªº¹Bºâ¤¸¡CAND ½Ķ¦¨¡u¥B¡vªº·N«ä¡A³oºØ¹Bºâ¬O¥u¦³·í¨âÓ±ø¥ó³£¦¨¥ß®É¤~¬°¯u¡C
¨Ò¦p§A©ñ¾Ç¦^®a¡A¶ý¶ý»¡¡G¡un¼g§¹¤µ¤Ñªº§@·~¨Ã¥B¹w²ß§¹©ú¤éªº¥\½Ò¤~¯àª±¹q¸£¡C¡v·N«ä´N¬O¦pªG§A¡u¼g§¹¤µ¤Ñªº§@·~¡v©M¡u¹w²ß©ú¤é¥\½Ò¡v¥un¦³¤@¶µ¨S°µ§¹¡A´N¤£¯à¡uª±¹q¸£¡v¡A¥u¦³·í¨â¶µ³£§¹¦¨¤F¤~¥i¥Hª±¹q¸£¡C
¦b¹q¸£¤¤¡A¡u1¡vªí¥Ü¯u©Î¦¨¥ßªº·N«ä¡A¡u0¡vªí¥Ü°°©Î¤£¦¨¥ßªº·N«ä¡C©Ò¥H¡A¥u¦³·í¨âӼƳ£¬°¤@¡A°µ AND ¹Bºâ®É¡A¨äµ²ªG¤~¬°¤@¡F¥un¹Bºâªº¨â¼Æ¦³¤@Ó¬°¹s¡Aµ²ªG´N¬°¹s¡CAND ¹Bºâªº¯uȪí¦p¤U¡G
0 AND 0¡×0 0 AND 1¡×0 1 AND 0¡×0 1 AND 1¡×1
AND «ü¥O¤¤ªº¥Øªº¹Bºâ¤¸¥i¥H¬O¼È¦s¾¹©ÎÅܼơA¨Ó·½¹Bºâ¤¸¥i¥H¬O¥ß§YÈ¡B¼È¦s¾¹©ÎÅܼơA¦ý¬O¨Ó·½¹Bºâ¤¸»P¥Øªº¹Bºâ¤¸¤£¥i¦P¬°ÅܼơC¨Ó·½¹Bºâ¤¸»P¥Øªº¹Bºâ¤¸ªºªø«×¥²¶·¤@P¡A°µ AND ¹Bºâ®É¡A¬Û¹ïÀ³ªº¦ì¤¸¶i¦æ AND ¹Bºâ¡A§âµ²ªG¼g¤J¥Øªº¹Bºâ¤¸¹ïÀ³ªº¦ì¤¸¡C
°µ§¹¡u¥B¡v¹Bºâ¤§«á¡ACPU ·|²M°£¶i¦ìºX¼Ð»P·¸¦ìºX¼Ð¡A¨Ã®Ú¾Ú¹Bºâµ²ªG§ïÅܲŸ¹ºX¼Ð»P¹sȺX¼Ð¡A¦Ó»²§UºX¼Ð¤§ÈµL·N¸q¡C
Á|Ó¨Ò¤l»¡©ú¡C¦p¥k¹Ïªº AL ¼È¦s¾¹¤§È¬° 92h¡A°õ¦æ¡uAND AL,0F0h¡v®É¡A§â¨CӦ줸¹ï»ô«á¡A¨CӦ줸°µ AND ¹Bºâ«á¡Aµ²ªG¬° 90h¡A§Y³Ì¤U±¶À¦r©Ò¥Ü¡C¦]¬°³Ì«áµ²ªG¤£¬O¹s¡A¬G CPU ·|²M°£¹sȺX¼Ð¡C
ȱo¤@´£ªº¬O¡A0F0h ³oÓ¼ÆÈ¡A²Ä 4¡ã7 ¦ì¤¸§¡¬° 1¡A¦]¦¹¤£ºÞ AL ªº²Ä 4¡ã7 ¦ì¤¸¬O¤°»ò¡A»P¨ä°µ AND ¹Bºâ«á§¡¬°ì¨Ó AL ªº²Ä 4¡ã7 ¦ì¤¸¤§È¡F0F0h ªº²Ä 0¡ã3 ¦ì¤¸§¡¬°¹s¡A¤£ºÞ AL ²Ä 0¡ã3 ¦ì¤¸¬O¤°»ò¡A»P¨ä°µ AND ¹Bºâ«áµ²ªG¬°¹s¡C¹³³o¼Ë¡A§â¤@Ó¾ã¼Æªº¬Y¨Ç¦ì¤¸²M°£¡]²M°£ªº·N«ä¬OÅܬ° 0¡^¡A¦Ó«O¯d¨ä¥L¦ì¤¸ªº¹Lµ{ºÙ¬°¡u¾B¸n ( mask )¡v¡C¤èªk«Ü²³æ¡A¥ý³]©w¤@¼Æ¡AÅýn¾B¸nªº¦ì¤¸³£³]¬°¹s¡AµM«á±N¸Ó¼Æ©Mì¾ã¼Æ°µ AND ¹Bºâ´N¥i¥H¤F¡C
TEST «ü¥Oªº»yªk¬O¡G
TEST ¥Øªº¹Bºâ¤¸,¨Ó·½¹Bºâ¤¸
TEST «ü¥O·|¨Ï¥Øªº¹Bºâ¤¸»P¨Ó·½¹Bºâ¤¸°µ¡u¥B¡v¹Bºâ¡C¨Æ¹ê¤W¡ATEST »P AND «ü¥O´X¥G¬Û¦P¡A®t§O¶È¦b©ó TEST ¨Ã¤£·|±N¹Bºâµ²ªG¼g¤J¥Øªº¹Bºâ¤¸ùر¡C¥i¯à·|¦³¤H²£¥ÍºÃ°Ý¡A¦pªG¤£«O¦s¹Bºâµ²ªG¡A¨º»ò¡ATEST «ü¥O¦³¬Æ»ò¥Î©O¡H©³¤UÁ|¨âÓ¨Ò¤l¡G①ÀËÅç¤@¼Æ¬O¥¿¼ÆÁÙ¬Ot¼Æ¡]¨£ DOS ²Õ¦X»y¨¥²Ä¤Q¥|³¹¡^¡B②ÀËÅç¤@¼Æ¬O©_¼ÆÁÙ¬O°¸¼Æ¡C
¦]¬°¤@¼Æªº²Ä¹sӦ줸¨M©w¤F¦¹¼Æ¬O©_¼ÆÁÙ¬O°¸¼Æ¡A¤£½×¬O¥H¤G¶i¦ì¡B¤Q¶i¦ì©Î¤Q¤»¶i¦ìªí¥Ü¡A³£¬O¤@¼Ë¡C¤@¼Æªº²Ä¹s¦ì¤¸¬°¹s®É¡A¸Ó¼Æ¬°°¸¼Æ¡F¬°¤@®É¡A¸Ó¼Æ¬°©_¼Æ¡C¨Ò¦pnÀËÅç AL ¼È¦s¾¹¤§È¬O©_¼ÆÁÙ¬O°¸¼Æ¡A¥i¥H¥Î©³¤Uªºµ{¦¡¡G
test al,1
jz even
odd: ⁝ ;AL¬°©_¼Æ
⁝
even: ⁝ ;AL¬°°¸¼Æ
¥ý»¡ JB/JC¡C³o¨âÓ«ü¥O¬O¤@¼Ëªº«ü¥O¡A¥¦ªº»yªk¬O¡]¦]¬°¬O¬Û¦Pªº«ü¥O¡A¶È¥H JB ¥N´À¡^¡G
JB ¼Ð°O
JB ©Î JC ·|Àˬd¶i¦ìºX¼Ð¡A¦pªG¶i¦ìºX¼Ð¤w³]©w¡A¨º»ò´N·|¸õÅD¦Ü¼Ð°O³B¡F¦pªG¶i¦ìºX¼Ð³Q²M°£¡A´N¤£¸õÅD°õ¦æ JB ©Î JC ©³¤Uªº«ü¥O¡C³o¨âÓ«ü¥O³q±`·|·f°t CMP¡BADD¡BSUB¡K¡Kµ¥«ü¥O¡A¤×¨ä¬O CMP¡C
JB ªºì¤å¬O¡ujump if below¡v¡A¤¤¤å·N«ä¬OY§C©ó´N¸õÅD¡CJC ì¤å¬O¡ujump if carry¡v¡A¤¤¤å·N«ä¬OY¶i¦ì´N¸õÅD¡C¥H©³¤Uªºµ{¦¡»¡©ú¡G
mov al,10
cmp al,20
jb below
CMP «ü¥O·|¶i¦æ´îªk¹Bºâ¡A¦ý¤£±Nµ²ªG¼g¶i AL ùØ¡C¦]¬° AL ¤p©ó 20¡A©Ò¥H·|ɦì¡A¶i¦ìºX¼Ð·|³Q³]¬°¤@¡Cµ¥°õ¦æ¨ì JB below ®É¡A´N·|µo¥Í¸õÅD¦Ü below ¼Ð°O³B¡C¦]¬°³o¼Ëªº½t¬G¡A©Ò¥H·í¶i¦ìºX¼Ð³Q³]©w®É¡A¬Û·í©ó¥Øªº¹Bºâ¤¸¤ñ¨Ó·½¹Bºâ¤¸¤p¡Aµ²½×´N¬O JB »P JC ¬O¬Û¦Pªº«ü¥O¡C
©Î³\²Ó¤ßªº¤Hª`·N¨ì¡A¦¹³B¬°¦ó¨Ï¥Î below¡]§C©ó¡^¡A¦Ó¤£¥Î less¡]¤p©ó¡^©O¡H¦b x64 ²Õ¦X»y¨¥»â°ìùØ¡A¤ñ¸ûµL¸¹¼Æ¥Î below¡]§C©ó¡^©Î above¡]°ª©ó¡^¡A¤ñ¸û¦³¸¹¼Æ¤~¥Î less¡]¤p©ó¡^©Î greater¡]¤j©ó¡^¡CµL¸¹¼Æ¬OµL²Å¸¹¼ÆªºÂ²ºÙ¡A©Ò¦³¦ì¤¸³£¥Î©óªí¥Ü¤j¤p¡A¤£ªí¥Ü²Å¸¹¡]³oùتº²Å¸¹«ü¥¿¡Bt¸¹¡^¡A©Ò¥H¥u¯àªí¥Ü¹s©Î¼Æ¾Ç¤Wªº¥¿¾ã¼Æ¡F¦³¸¹¼Æ¬O¦³²Å¸¹¼ÆªºÂ²ºÙ¡A¥Î³Ì°ª¦ì¤¸ªí¥Ü¥¿¡Bt¸¹¡A©Ò¥H¯àªí¥Üt¾ã¼Æ¡B¹s¡B¥¿¾ã¼Æ¡C
JBE »P JNA ¬O¬Û¦Pªº«ü¥O¡A¥¦Ìªº»yªk¬O¡G
JBE ¼Ð°O
«eªÌì¤å¬O¡ujump if below or equal¡v¡A¤¤¤å·N«ä¬OY§C©ó©Îµ¥©ó´N¸õÅD¡F«áªÌ¬O¡ujump if not above¡v¡A·N«ä¬OY¤£°ª©ó´N¸õÅD¡F¬Ý¤¤¤å»Pì¤åªº»y¸q¡A´Nª¾¹D¥¦Ì¬O¬Û¦Pªº¡C¦b¹ê°È¤W¡ACPU ·|Àˬd¶i¦ìºX¼Ð»P¹sȺX¼Ð¡A¨âºX¼Ð¥un¦³¤@Ó³Q³]©w¡A´Nµo¥Í¸õÅD¡C
JA «ü¥O»P JAE «ü¥Oªº»yªk¦p¤U¡G¡]JA¡BJNBE ¬O¬Û¦Pªº«ü¥O¡FJAE¡BJNB¡BJNC ¤TÓ«ü¥O³£¬O¬Û¦Pªº¡^
JA ¼Ð°O JAE ¼Ð°O
³o¨âÓ«ü¥O¡A³£¬O¥Î¨Ó¤ñ¸ûµL¸¹¼Æªº°ª§C¡]¥i¥H·Q¹³¦¨µL¸¹¼Æªº¤j¤p¡^¡CJA ¬O«üY°ª©ó´N¸õÅD¡C¤ñ¸û¨â¼Æ®É¡AY¥Øªº¹Bºâ¤¸°ª©ó¨Ó·½¹Bºâ¤¸¡A«eªÌ´î¥h«áªÌ¡A´N¤£·|µo¥Íɦì¤]¤£µ¥©ó¹s¡A©Ò¥H¶i¦ìºX¼Ð³]¬°¹s¡]¦b²Õ¦X»y¨¥¤¤¡Aɦì»P¶i¦ì³£¥Î¶i¦ìºX¼Ðªí¥Ü¡^¡A¹sȺX¼Ð¤]³Q³]¬°¹s¡Cµ²½×´N¬O¡AJA nµo¥Í¸õÅD¡A¥²¶·¶i¦ìºX¼Ð»P¹sȺX¼Ð³£³Q²M°£¡A¨âªÌ¯Ê¤@¤£¥i¡C
JAE ¬O«üY°ª©ó©Îµ¥©ó´N¸õÅD¡A´«¥y¸Ü»¡´N¬O¤£§C©ó¤~¸õÅD¡A»P JNB ¬O¦P¼Ëªº«ü¥O¡C¤ñ¸û¨â¼Æ®É¡A¥Øªº¹Bºâ¤¸´î¥h¨Ó·½¹Bºâ¤¸¡A¤£·|µo¥Íɦì¡A©Ò¥H¶i¦ìºX¼Ð³Q²M°£¡Fµ²½×´N¬O JAE nµo¥Í¸õÅD¡A¥u¶·¬Ý¶i¦ìºX¼Ð¬O§_²M°£¡A²M°£¤~¸õÅD¡C
©³¤U¬O¦³ÃöµL¸¹¼Æ±ø¥ó¸õÅD«ü¥Oªº¾ã²z¡A¥]§t«e´X³¹´£¹Lªº¡Aªí¤¤¦b¦P¤@¦Cªº«ü¥O³£¬O¬Û¦Pªº¡G
| ¦P¸q«ü¥O | ¤¤¤å»y¸q | ì¤å»y¸q | ºX¼Ð |
| JA JNBE | Y°ª©ó´N¸õÅD Y¤£§C©ó©Îµ¥©ó´N¸õÅD | jump if above jump if not below or equal | CF=0 ¥B ZF=0 |
| JB JC JNAE | Y§C©ó´N¸õÅD Y¶i¦ì´N¸õÅD Y¤£°ª©ó©Îµ¥©ó´N¸õÅD | jump if below jump if carry jump if not above or equal | CF=1 |
| JAE JNB JNC | Y°ª©ó©Îµ¥©ó´N¸õÅD Y¤£§C©ó´N¸õÅD Y¤£¶i¦ì´N¸õÅD | jump if above jump if not below jump if not carry | CF=0 |
| JBE JNA | Y§C©ó©Îµ¥©ó´N¸õÅD Y¤£°ª©ó´N¸õÅD | jump if below or equal jump if not above | CF=1 ©Î ZF=1 |
| JE JZ | Yµ¥©ó´N¸õÅD Y¬°¹s´N¸õÅD | jump if equal jump if zero | ZF=1 |
| JNE JNZ | Y¤£µ¥©ó´N¸õÅD Y¬°¤£¹s´N¸õÅD | jump if not equal jump if not zero | ZF=0 |
XCHG ªº»yªk¬O
XCHG ¥Øªº¹Bºâ¤¸,¨Ó·½¹Bºâ¤¸
XCHG ªº¥\¥Î¬O¬Û¤¬¥æ´«¥Øªº¹Bºâ¤¸»P¨Ó·½¹Bºâ¤¸¤§¼ÆÈ¡A³o¨âÓ¹Bºâ¤¸¥i¥H¬OÅܼƩμȦs¾¹¡A¦ý¤£¯à³£¬OÅܼơCXCHG ¤£¼vÅTºX¼Ð¡C¨Ò¦p©³¤Uªº¨Ò¤l¡G
mov rax,5
mov rcx,8
xchg rax,rcx
³Ì«á RAX¡×8¡ARCX¡×5¡C
DIV «ü¥O¬O¥\¥Î¬OpºâµL¸¹¼Æªº°£ªk¡A¦Ü©ó¦³¸¹¼Æªº°£ªk¡A¬O¥Î IDIV «ü¥O¡A¨£²Ä 13 ³¹¡CDIV ªº»yªk¦p¤U¡G
DIV ¹Bºâ¤¸
¹Bºâ¤¸¬O°£¼Æ¡A¥i¥HÅܼƩμȦs¾¹¡A¦ý¤£¥i¥H¬O¥ß§YÈ¡CDIV «ü¥Oªº³Q°£¼Æ¨Ã¨S¦³¼g¥X¨Ó¡AÁôÂ꺳Q°£¼Æ¬O AX¡BDX:AX¡BEDX:EAX ©Î RDX:RAX¡A¦Ü©ó¬Oþ¤@Ó¡An¬Ý¹Bºâ¤¸¡]§Y°£¼Æ¡^¨M©w¡A¨ä³W«h¬O³Q°£¼Æªº¦ì¤¸Ó¼Æ¬O°£¼Æªº¨â¿ªø¡C¨Ì¾Ú°£¼Æªºªø«×¡A¥i¤À¬°¥|ºØ°£ªk¡G①¤K¦ì¤¸°£ªk¡B②¤Q¤»¦ì¤¸°£ªk¡B③¤T¤Q¤G¦ì¤¸°£ªk¡B④¤»¤Q¥|¦ì¤¸°£ªk¡C¹Bºâ«áªº°Ó©M¾l¼Æ¡A¤À§O¦s©ó¼È¦s¾¹¤¤¡A¾ã²z¦p¤Uªí¡G
| °£ªk¤è¦¡ | °£¼Æ | ³Q°£¼Æ | °Ó¼Æ | ¾l¼Æ | ½d¨Ò | ||
| ¹Bºâ«e | ¹Bºâ«á | ||||||
| ¤K¦ì¤¸°£ªk | 8 ¦ì¤¸ÅÜ¼Æ ©Î¼È¦s¾¹ | AX | AL | AH | ;pºâ 7¡Ò2¡×3⋯⋯1 MOV AX,7 MOV CL,2 DIV CL |
AX=0103¡]AL¡×°Ó¡AAH¡×¾l¼Æ¡^ CL=2 | |
| ¤Q¤»¦ì¤¸°£ªk | 16 ¦ì¤¸ÅÜ¼Æ ©Î¼È¦s¾¹ | DX:AX | AX | DX | ;pºâ 9¡Ò4¡×2⋯⋯1 MOV DX,0 MOV AX,9 MOV CX,4 DIV CX | AX=2¡]°Ó¡^ DX=1¡]¾l¼Æ¡^ | |
| ¤T¤Q¤G¦ì¤¸°£ªk ¥u¯à¥Î©ó 386µ¥¯Å¥H¤W | 32 ¦ì¤¸ÅÜ¼Æ ©Î¼È¦s¾¹ | EDX:EAX | EAX | EDX | ;pºâ¤T¦Ê»õ¡Ò¤K»õ¡×37⋯⋯400000000 MOV EDX,6 MOV EAX,0FC23AC00h MOV ECX,2FAF0800h DIV ECX |
EAX=25h¡]°Ó¡^ EDX=17D78400h¡]¾l¼Æ¡^ | |
| ¤»¤Q¥|¦ì¤¸°£ªk ¥u¯à¥Î©ó x64µ¥¯Å¥H¤W | 64 ¦ì¤¸ÅÜ¼Æ ©Î¼È¦s¾¹ | RDX:RAX | RAX | RDX | ;10CDEFAB1234567890h¡Ò10000000h ;¡×1CDEFAB123h⋯⋯4567890h MOV RDX,1 MOV RAX,0CDEFAB1234567890h MOV RCX,10000000h DIV RCX |
RAX=1CDEFAB123h¡]°Ó¡^ RDX=4567890h¡]¾l¼Æ¡^ | |
¥H¤Wªíªº¤T¤Q¤G¦ì¤¸°£ªk¬°¨Ò¡A¦pªGnpºâ¤T¦Ê»õ°£¥H¤K»õ¡A¤T¦Ê»õ´«ºâ¦¨¤Q¤»¶i¦ì¬O 6 FC23 AC00h¡A¥e¥Î¤»¤Q¥|¦ì¤¸¡F¤K»õ¬O 2FAF 0800h¡A¥e¤F¤T¤Q¤G¦ì¤¸¡C©Ò¥H§â EDX ³]¬° 6¡AEAX ³]¬° 0FC23 AC00h¡A³o¼Ë´N§¹¦¨³Q°£¼Æªº³]©w¡C°£¼Æ¥i¥H¬O¤T¤Q¤G¦ì¤¸ªºÅܼƩμȦs¾¹¡A¦¹¨Ò¬O ECX¡A©Ò¥H±N ECX ³]¬° 2FAF 0800h¡]¤Q¶i¦ì 800000000¡×¤K»õ¡^¡C¹Bºâ«áªº°Ó¬° 37¡]¤Q¤»¶i¦ì 25h¡^¡A¾l¼Æ¬°¥|»õ¡]¤Q¤»¶i¦ì 17D7 8400h¡^¡C
ÁÙ¦³Ó°ÝÃD¡A¬JµM DIV ¦³¥|ºØ¤§¦h¡A¨º»ò¦b°µ¹Bºâ®Én¿ï¥Îþ¤@ºØ¦ì¤¸¼Æªº°£ªk©O¡H¨ä¹ê¤£Ãø¡A¨Ì¾Ú°£¼Æªº¤j¤p¨Ó§P©w§Y¥i¡CÁÙ¬O¥H¬O¤T¦Ê»õ°£¥H¤K»õ¬°¨Ò¡C°£¼Æ¬O¤K»õ¡A´«ºâ¦¨¤Q¤»¶i¦ì¬O 2FAF 0800h¡A¥e¤F¤T¤Q¤G¦ì¤¸¡A¦]¦¹´N¿ï¥Î¤T¤Q¤G¦ì¤¸ªº°£ªk¡C¤]¥i¥H°Ñ¦Ò²Ä¤@³¹ªºªí®æ±oª¾¡A¤T¤Q¤G¦ì¤¸ªº¼Æ³Ì¦h¯àªí¥Ü¥|¤Q¤G»õ¡A¦]¦¹¥Î¤T¤Q¤G¦ì¤¸ªí¥Ü¤K»õ¡Aºïºï¦³¾l¡]·íµM§A¤]¥i¥H°õ·N¥Î¤»¤Q¥|¦ì¤¸°£ªk¡A¦ý±þÂû²j¥Î¤û¤M¡^¡A¦]¦¹´N¿ï¥Î¤T¤Q¤G¦ì¤¸ªº°£ªk¡C
DIV ¹Bºâ§¹¤§«á¡AºX¼Ð¼È¦s¾¹¤¤ªº¶i¦ìºX¼Ð¡B·¸¦ìºX¼Ð¡B²Å¸¹ºX¼Ð¡B¹sȺX¼Ð¡B»²§U¶i¦ìºX¼Ð¡B¦P¦ìºX¼Ð³£¥¼©w¸q¡C¥¼©w¸qªº·N«ä¬O»¡³o¨ÇºX¼Ð¥i¯à¬O¥ô¦óÈ¡A¤£¦Pªº CPU¡B¬[ºc¡A³£¥i¯à·|¤£¦P¡C¦]¦¹¦b DIV «ü¥O°õ¦æ§¹«á¡A¤£À³¸Ó¥ÑºX¼Ð§PÂ_°õ¦æµ²ªG¡C
°£ºX¼Ð¤§¥~¡A°õ¦æ DIV «eÁÙnª`·N°Ó·|¤£·|¶W¹L¼È¦s¾¹©Ò¯à¦s©ñªº¤j¤p¡C¨Ò¦p 0F000h¡Ò2¡×7800h¡]¤Q¶i¦ì¬O 61440¡Ò2¡×30720¡^¡A¦pªG¥Î¤K¦ì¤¸ªº°£ªk¡A©Ò±oªº°Ó¦pªG©ñ¦b AL ùر¬O©ñ¤£¤Uªº¡A·|µo¥Í¿ù»~¡A³oºØ¿ù»~ºÙ°£ªk·¸¦ì¡C³q±`°£¼Æ¤Ó¤p¥B³Q°£¼Æ¤Ó¤j¡A´N·|µo¥Í³oºØ±¡§Î¡A¥i¥H°Ñ¦Ò¡uDOS ²Õ¦X»y¨¥²Ä¤C³¹µù¤@¡v§ï¶i¡C
³o¤»Ó x64 «ü¥O³£¬O±Nì¨Ó¦b¼È¦s¾¹¤¤¥e¥Î¸û¤Ö¦ì¤¸ªº¸ê®Æ¡AÂX¥R¦¨¸û¦h¦ì¤¸ªº¸ê®Æ¡A¤]¥i¥H§â¥¦Ìµø¬°¯à§ïÅÜ¸ê®ÆÃþ«¬ªº«ü¥O¡C¦]¬°§@¥ÎÃþ¦ü¡A©Ò¥H¦b³o¸Ì¤@¨Ö¤¶²Ð¡A³o¤»Ó«ü¥O¥i¤À¬°¨âÃþ¡G①CBW¡BCWDE¡BCDQE¡F②CWD¡BCDQ¡BCQO¡C
¥ý»¡ CBW «ü¥O¡CCBW «ü¥O¬O¡uconvert byte to word¡vªº·N«ä¡A·N§Y±N¦ì¤¸²Õªº¼ÆÈÅܦ¨¦r²Õ¡A¨ä»yªk¬O
CBW
ªí±¤W CBW ¨S¦³¹Bºâ¤¸¡A¦ý¹ê»Ú¤W¬O¦³ÓÁôÂ꺹Bºâ¤¸¡A¨º´N¬O AX ¼È¦s¾¹¡CCBW ·|§â¦s©ó AL ªº¼ÆÈ¡AÅܦ¨¦s©ó AX¡C¤èªk¬O§â AL ªº²Å¸¹¦ì¤¸½Æ»s¨ì AX ªº²Ä 8¡ã15 ¦ì¤¸¤§¤¤¡C¦b¤G¶i¦ì¼ÆÈ¤¤¡A³Ì°ª¦ì¤¸¬O²Å¸¹¦ì¤¸¡]sign bit¡^¡AY³Ì°ª¦ì¤¸¬° 1¡Aªí¥Üt¼Æ¡FY³Ì°ª¦ì¤¸¬° 0¡Aªí¥Ü¥¿¼Æ©Î¹s¡C¦³Ãö²Å¸¹¦ì¤¸»P¦³¸¹¼ÆªºÆ[©À¡A¥H«á¦A»¡¡C
Y AL ªº²Ä¤C¦ì¤¸¬° 0¡A°õ¦æ§¹ CBW «á¡AAX ªº²Ä 8¡ã15 ¦ì¤¸³£Åܬ° 0¡FY AL ªº²Ä¤C¦ì¤¸¬° 1¡A°õ¦æ§¹«á¡AAX ªº²Ä 8¡ã15 ¦ì¤¸³£Åܬ° 1¡C¤]´N¬O»¡¡ACBW ·|§â AL ¤ºªº²Å¸¹¡A©µ¦ù¨ì AH ¤º¡C³o¼Ë´N¯à§â AL ¤¤ªº¦³¸¹¼Æ¡AÂX¥R¦Ü AX¡C
¥k¹Ï AX ¬° 0FF65H¡AAL ¬° 65H¡A²Ä¤C¦ì¤¸¬O¹s¡]¯»¬õ¦â¡^¡C°õ¦æ CBW «á¡AAL ¤Wªº²Ä¤C¦ì¤¸ÂX¥R¨ì AH ¼È¦s¾¹¡A¨Ï AH ¤Wªº¨CӦ줸³£Åܦ¨ 0¡]ºñ¦â¡^¡C
CWDE «ü¥O¬O¡uconvert word to doubleword¡vªº·N«ä¡A§â AX ªº²Ä¤Q¤¦ì¤¸½Æ»s¨ì EAX ªº²Ä 16¡ã31 ¦ì¤¸¡CCDQE «ü¥O¡uconvert doubleword to quadword¡vªº·N«ä¡A¥¦§â EAX ªº²Ä 31 ¦ì¤¸½Æ»s¨ì RAX ªº²Ä 32¡ã63 ¦ì¤¸¡C
CWD «ü¥OÁöµM¤]¬O¡uconvert word to doubleword¡v¡A¦ý«o¬O§â AX ªº²Ä 15 ¦ì¤¸½Æ»s¨ì DX ªº©Ò¦³¦ì¤¸¤º¡C¦P¼Ë¡ACDQ ¬O§â EAX ªº²Ä 31 ¦ì¤¸½Æ»s¨ì EDX ªº©Ò¦³¦ì¤¸¤º¡FCQO ¬O§â RAX ªº²Ä 63 ¦ì¤¸½Æ»s¨ì RDX ªº©Ò¦³¦ì¤¸¤º¡C³Ì«á¾ã²z¦¨¤Uªí¡G
| ¥Î³~ | «ü¥O | »¡©ú | «ü¥O | »¡©ú |
| ¦ì¤¸²ÕÅܦr²Õ | CBW | AL ªº²Å¸¹¦ì¤¸¡÷AX | ||
| ¦r²ÕÅÜÂù¦r²Õ | CWDE | AX ªº²Å¸¹¦ì¤¸¡÷EAX | CWD | AX ªº²Å¸¹¦ì¤¸¡÷DX:AX |
| Âù¦r²ÕÅÜ¥|¦r²Õ | CDQE | EAX ªº²Å¸¹¦ì¤¸¡÷RAX | CDQ | EAX ªº²Å¸¹¦ì¤¸¡÷EDX:EAX |
| ¥|¦r²ÕÅܤK¦r²Õ | CQO | RAX ªº²Å¸¹¦ì¤¸¡÷RDX:RAX | ||
LOCAL °²«ü¥O¬O¥Î¨Ó©w¸q°Ï°ìÅܼơ]local variables¡A¤j³°Â½¦¨§½³¡Åܶq¡^¡C°Ï°ìÅܼƬ۹ï©ó¥þ°ìÅܼơ]global variables¡A¥þ§½Åܶq¡^¦Ó¨Óªº¡A¥¦Ìªº®t§O¦b©ó°Ï°ìÅܼƥu¯à¦b¬YӰƵ{¦¡¤¤©w¸q¡A¤]¥u¦³¦b³oӰƵ{¦¡¤¤¤~¯à¦s¨ú¡A¨ä¥L°Æµ{¦¡»P¥Dµ{¦¡³£µLªk¦s¨ú¡F¦Ó¥þ°ìÅܼƫh¬O¥ô·N°Æµ{¦¡©Î¥Dµ{¦¡³£¯à¦s¨ú¡C¤]¦]¬°¥þ°ìÅܼƦb¥ô¦ó¦a¤è³£¥i¥H×§ï¨ä¼ÆÈ¡A¥HP©ó³y¦¨»P«Ü³\¦h°Æµ{¦¡¬ÛÃö¡A¹ï©óµ{¦¡ªººûÅ@·|¼W¥[³\¦ht¾á¡A¤×¨ä¬Oµ{¦¡«Ü¤j®É§ó¥[§xÃø¡C²{¥NªºÆ[©À»{¬°¡A¤£¥²nªº¥þ°ìÅܼƬO¼gµ{¦¡ªºÃa²ßºD¤§¤@¡A¦]¦¹¯à¤£¨Ï¥Î´N§O¥Î¡A¾¨¶q¨Ï¥Î°Ï°ìÅܼơC
¨º»ò¦p¦ó©w¸q°Ï°ìÅܼƩO¡H¦b²Õ¦X»y¨¥¸Ì¨Ï¥Î LOCAL °²«ü¥O¡A»yªk¬O¡G
LOCAL ÅܼƦWºÙ[¤¸¯ÀÓ¼Æ]:¸ê®ÆÃþ«¬,...
©w¸q°Ï°ìÅܼƦ³´X¶µ²Ó¸`nª`·N¡G
¨Ò¦p©³¤Uªº¨Ò¤l¡A¥Î¨â¦æ LOCAL ©w¸q¤F¨âÓÂù¦r²Õªº°Ï°ìÅܼơAnWritn¡BnRead¡A»P¤@Ó 12 ¦ì¤¸²Õªøªº buffer ¦r¦ê¡G
Input PROC USES rbx rsi rdi hIn:QWORD,hOut:QWORD,pNumber:QWORD
;¿é¤J¡GhIn¡BhOut¡Ð¼Ð·Ç¿é¤J¡B¿é¥X¸Ë¸m±±¨î¥N½X
;¡@¡@¡@pNumber¡Ð¨Ï¥ÎªÌ¿é¤Jªº¼ÆÈ¦s©ñ¦ì§}
;¿é¥X¡GRAX¡×0¡A¿é¤J¿ù»~
;¡@¡@¡@RAX¡×1¡A¿é¤J¥¿½T¡ApNumber©Ò«ü¦ì§}¦s¦³¨Ï¥ÎªÌ¿é¤Jªº¼ÆÈ
LOCAL nWritn:DWORD,nRead:DWORD
LOCAL buffer[12]:BYTE
§Ú̪¾¹D¥þ°ìÅܼƬO¦s©ñ¦b¡u.DATA¡v©Î¡u.DATA?¡v°Ï¬q¤º¡A¨º»ò°Ï°ìÅܼƦs©ñ¦bþ¸Ì©O¡Hµª®×¬O¦b°ïÅ|¸Ì¡A¤]´N¬O³oÓì¦]¡A¥u¦³¦b°õ¦æ®É¤~¯à½T»{°Ï°ìÅܼƪº¦ì§}¡C¤]¦]¬°¦p¦¹¡A¦pªGn¨ú±o°Ï°ìÅܼƪº¦ì§}¡A¥²¶·¨Ï¥Î¡uLEA ¥Øªº¹Bºâ¤¸,°Ï°ìÅܼơv¡AµLªk¨Ï¥Î¡uMOV ¹Bºâ¤¸,OFFSET °Ï°ìÅܼơv³o¼Ëªº«ü¥O¡C
¦Ü©ó¦p¦ó¦b°ïÅ|¤¤¦w±Æ°Ï°ìÅܼƻP¨ä¦s¨ú¡A³o¬O¤U¤@³¹n½Íªº¥Dn½ÒÃD¤§¤@¡C
StrToIntA ¯à§â¥Hªü©Ô§B¼Æ¦r²Õ¦¨ªº¦r¦ê¡]©³¤UºÙ¬°¼Æ¦r¦r¦ê¡^Åܦ¨ 32 ¦ì¤¸¼ÆÈ¦s©ó EXA ªð¦^¡C
StrTiIntA ªºì«¬¬O¡G
int StrToIntA( [in] PCSTR pszSrc );
StrToIntA ¥u¦³¤@ӰѼơA¥H¹sµ²§Àªº¼Æ¦r¦r¦ê¦ì§}¡A¦¹¦r¦ê¥²¶·«ö¥H¤U¦C¶¶§Ç²Õ¦¨¡G①¡u-¡v¸¹¥Nªít¼Æ¡A¦pªG¥¿¼Æ¥u¯à¬Ù²¤¤£¥i¼g¥X¨Ó¡F②µM«á¬O¼ÆÓªü©Ô§B¼Æ¦r¡A0¡ã9¡A²Õ¦¨ªº¤å¦r¡F③³Ì«á¬O¡u0¡vªí¥Ü¦r¦êµ²§ô¡C©I¥s StrToIntA «e¥²¶·¥[¤W
INCLUDE SHLWAPI.INC ;¤º§t StrToIntA ªºì«¬
INCLUDELIB SHLWAPI.LIB
YÂà´«¥¢±Ñ¡A¦^¶ÇȬ°¹s¡FY¦¨¥\¡A¦^¶ÇȬ°¦r¦êÂà´««áªº¼ÆÈ¡C
©³¤Uªº¨Ò¤l¡G
szNumber DB "314",0 ⁝ invoke StrToIntA,ADDR szNumber
©I¥s§¹ StrToIntA ¤§«á¡AEAX ¬° 13AH¡A§Y¤Q¶i¦ìªº 314¡CY szNumber ¬°¡u"314pi159"¡v¡A¨º»ò StrToIntA ÁÙ¬O¯à°÷Âà´«¡A¦ý¥u¨ì 4 ¬°¤î¡A«á±ªºµLªkÂà´«¡A©Ò¥H EAX ¬° 314¡C
ÁÓÂà¬Û°£ªk¤]¥s¼Ú´X¨½±oºâªk¡]Euclidean algorithm¡^¡A¬Opºâ¨â¾ã¼Æªº³Ì¤j¤½¦]¼Æªº¤èªk¡C¹Lµ{¬O¨â¼Æ¬Û°£©Ò±oªº¾l¼Æ¬°¤U¦¸¬Û°£ªº°£¼Æ¡A¤U¦¸¬Û°£ªº³Q°£¼Æ¬°ì¨Óªº°£¼Æ¡A³o¼Ë¤@ª½¬Û°£ª½¨ì¾ã°£¬°¤î¡A³Ì«á¤@¦¸ªº°£¼Æ§Y¬°³Ì¤j¤½¦]¼Æ¡C¨Ò¦pn¨D 18¡B48 ªº³Ì¤j¤½¦]¼Æªº¹Lµ{¡A¥i¥H°Ñ¦Ò¤U¹Ï¡G
²Ä¤@¦¸¬Û°£ªº³Q°£¼Æ¡A·íµM¬O¿ï¾Ü¸û¤jªº¼Æ¡A¸û¤pªº¬O°£¼Æ¡A©Ò¥H¥Î¡u48¡Ò18¡×2¡K12¡v¡C²Ä¤G¦¸¬Û°£ªº³Q°£¼Æ¬O²Ä¤@¦¸ªº°£¼Æ¡A¦Ó°£¼Æ«h¬O²Ä¤@¦¸ªº¾l¼Æ¡A©Ò¥H¬O¡u18¡Ò12¡×1¡K6¡v( ¨Æ¹ê¤W¡A¾l¼Æ¤@©w¤ñ°£¼Æ¤p¡A©Ò¥HÁÙ¬O¿ï¾Ü¸û¤jªº¬°³Q°£¼Æ¡A¸û¤pªº¬°°£¼Æ )¡C²Ä¤T¦¸¬Û°£ªº³Q°£¼Æ¬O²Ä¤G¦¸ªº°£¼Æ¡A¦Ó°£¼Æ«h¬O²Ä¤G¦¸ªº¾l¼Æ¡A©Ò¥H¬O¡u12¡Ò6¡×3¡K0¡v¡Aµ²ªG¾ã°£¡A©Ò¥H³Ì¤j¤½¦]¼Æ´N¬O³Ì«á¤@¦¸ªº°£¼Æ¡A6¡C
¦pªG§â³o¹Lµ{µe¦¨¹q¸£µ{¦¡ªº¬yµ{¹Ï¡A´NÅܦ¨¤U±ªº¼Ë¤l¡G
ÁÓÂà¬Û°£ªkªºì²z½Ð°Ñ¾\ HPM ³q°T²Ä¤Q¨÷²Ä¤Q¤@´Á¡A³o¸Ì¤£¤¶²Ð¡C³oùØn¬Ýªº¬O§Q¥Î¤W±¬yµ{¦Ó¼¶¼gªºì©lµ{¦¡¡AFindGcd¡G
FindGcd PROC num1:DWORD,num2:DWORD ;¿é¤J¡Gnum1¡Bnum2¨âÓ¾ã¼Æ ;¿é¥X¡GEAX¡×³Ì¤j¤½¦]¼Æ again: xchg ecx,edx ;¾l¼ÆÅܬ°¤U¦¸ªº°£¼Æ¡Aì¨Óªº°£¼ÆÅܳQ°£¼Æ mov eax,edx cdq div ecx ;¨ÏEDX:EAX¡]³Q°£¼Æ¡^°£¥HECX¡]°£¼Æ¡^ or edx,edx ;¾l¼Æ¬°EDX jnz again ;YEDX¬°¹s¡A³Ì«á¤@¦¸ªº°£¼Æ§Y¬°GCD mov eax,ecx ;§â³Ì¤j¤½¦]¼Æ¦s¤JRAX cdqe ret FindGcd ENDP
¶i¤J FindGcd °Æµ{¦¡¡A¨Ã¤£»Ýn§PÂ_ num1¡Bnum2 ¦óªÌ¸û¤j¡Aþ¤@ÓÀ³¸Ó·í³Q°£¼Æ¡Aþ¤@Ó·í°£¼Æ¡C¦]¬°§Y¨Ï¬O¸û¤pªº¼Æ·í³Q°£¼Æ¡B¤j¼Æ·í°£¼Æ¡A¨º»ò¸g¹L²Ä¤@¦¸°£ªk¤§«á¡A°Ó¬°¹s¡A¾l¼Æ¬Oì¨Ó¸û¤pªº¼Æ¡A²Ä¤G¦¸°£ªk´N¦Û°ÊÅܦ¨°£¼Æ¡Aì¨Óªº¤j¼Æ´NÅܦ¨³Q°£¼Æ¤F¡C
¨C¦¸¬Û°£®É¡A°£¼Æ¦s©ó ECX¡F¬Û°£«á¡A¾l¼Æ¦s©ó EDX¡A©Ò¥H¶i¦æ°£ªk¤§«á¡A¨âªÌ»Ýn¤¬´«¡A¨Ï¥Î XCHG «ü¥O¡A«ê¦p¨ä¤À¡CµM¦Ó¡A³Q°£¼ÆÁÙ¶·½Õ¾ã¡A¶·§âì¨Óªº°£¼Æ¡]ì¦s©ó ECX¡AXCHG ¤§«á¦s©ó EDX¡^¦s©ó EAX¡A¨Ã¨Ï EDX Åܬ°¹s¡A«D±`¾A¦X¨Ï¥Î CDQ «ü¥O¡C
³o¤@³¹¥u¤¶²Ð GCD.ASM ¥Î¨ìªº·s«ü¥O¥H¤Î Win64 API¡A¤U¤@³¹¦A¤¶²Ð°ïÅ|®Ø¡C