callºÍretÅäºÏʵÏÖ×Ó³ÌÐò»úÖÆ
¾ßÓÐ×Ó³ÌÐòµÄÔ´³ÌÐò¿ò¼Ü£º assume cs:code code segment main: £º £ºcall sub1 £ºmov ax,4c00h int 21h sub1: £º call sub2
ret
sub 2: £º ret code ends end main
£º£º£ºmulÖ¸Áî
mulÖ¸ÁÁ½²Ù×÷ÊýÖ¸Áî ¹¦ÄÜ£ºÍê³ÉÁ½¸öÊýµÄÏà³Ë ¸ñʽ£ºmul reg/mem
Á½¸öÊýҪô¶¼ÊÇ8λ£¬ÒªÃ´¶¼ÊÇ16λ
ÈôΪ8룬ÔòÒ»¸öĬÈÏÔÚalÖУ¬ÁíÒ»¸ö¿ÉÒÔÔÚÒ»¸ö8λ¼Ä´æÆ÷ÖУ¬Ò²¿ÉÒÔÊÇÒ»¸ö×Ö½Úµ¥Ôª£¬½á¹ûĬÈÏ·ÅÔÚaxÖÐ
ÈôΪ16룬һ¸öĬÈÏ·ÅÔÚaxÖУ¬ÁíÒ»¸öÔÚÒ»¸ö16λ¼Ä´æÆ÷ÖлòÒ»¸ö×Öµ¥ÔªÖУ¬½á¹û¸ßλĬÈÏ·ÅÔÚdxÖУ¬µÍλ·ÅÔÚaxÖÐ
µÚʮһÕ ±êÖ¾¼Ä´æÆ÷
±êÖ¾¼Ä´æÆ÷µÄ×÷Óãº
1) ´æ´¢Ïà¹ØÖ¸ÁîµÄijЩִÐнá¹û£» 2) ΪCPUÖ´ÐÐÏà¹ØÖ¸ÁîÌṩÐÐΪÒÀ¾Ý£» 3) ¿ØÖÆCPUµÄÏà¹Ø¹¤×÷·½Ê½
±êÖ¾¼Ä´æÆ÷µÄ½á¹¹
±êÖ¾¼Ä´æÆ÷(¼ò³Æflag)µÄ1¡¢3¡¢5¡¢12¡¢13¡¢14¡¢15λÔÚ8086CPUÖÐûÓÐʹÓ㬲»¾ßÓÐÈκÎÒâÒå. ZF±êÖ¾
flagµÄµÚÁùλÊÇZF,Áã±ê־λ.¼Ç¼Ïà¹ØÖ¸ÁîÖ´Ðк󣬽á¹ûÊÇ·ñΪ0£¬Èô½á¹ûΪ0£¬ZF=1,·ñÔòZF=0. PF±êÖ¾
flagµÄµÚ¶þλÊÇPF,ÆæÅ¼±ê־λ.Ëü¼Ç¼Ïà¹ØÖ¸ÁîÖ´Ðк󣬽á¹ûµÄËùÓжþ½øÖÆÎ»ÖÐ1µÄ¸öÊýÊÇ·ñΪżÊý£¬ÊÇÔòPF=1,·ñÔòPF=0.
SF±êÖ¾
flagµÄµÚÆßλÊÇSF,·ûºÅ±ê־λ.Ëü¼Ç¼Ïà¹ØÖ¸ÁîÖ´Ðк󣬽á¹ûÊÇ·ñΪ¸º£¬Èô½á¹ûΪ¸º£¬ÔòSF=1£¬·ñÔòSF=0.
SF±êÖ¾£¬¾ÍÊÇCPU¶ÔÓзûºÅÊýÔËËã½á¹ûµÄÒ»ÖּǼ£¬Ëü¼Ç¼Êý¾ÝµÄÕý¸º£¬Èô½«Êý¾Ýµ±×÷ÓзûºÅÊýÀ´ÔËË㣬¿ÉÒÔͨ¹ýËüÀ´µÃÖª½á¹ûµÄÕý¸º£¬Èô½«Êý¾Ýµ±×÷ÎÞ·ûºÅÊýÀ´ÔËË㣬SFµÄֵûÓÐÒâÒå¡£ ÀýÈ磺mov al,10000001B add al,1
Ö´Ðкó£¬SF=1±íʾ£ºÈô½øÐеÄÊÇÓзûºÅÊýÔËË㣬Ôò½á¹ûΪ¸º CF±êÖ¾
flagµÄµÚ0λÊÇCF,½øÎ»±ê־λ.Ò»°ãÇé¿öÏ£¬ÔÚ½øÐÐÎÞ·ûºÅÊýÔËËãµÄʱºò£¬Ëü¼Ç¼ÁËÔËËã½á¹ûµÄ×î¸ßÓÐЧλÏò¸ü¸ßλµÄ½øÎ»Öµ£¬»ò´Ó¸ü¸ßλµÄ½èλֵ.
µ±Á½¸öÊý¾ÝÏà¼ÓµÄʱºò,ÓпÉÄܲúÉú´Ó×î¸ßÓÐЧλÏò¸ü¸ßλµÄ½øÎ».±ÈÈç: Á½¸ö8λÊý¾Ý: 98H+98H
µ±Á½¸öÊý¾ÝÏà¼õʱ,ÓпÉÄÜÏò¸ü¸ßλ½èλ.±ÈÈç:
Á½¸ö8λÊý¾Ý:97H-98H,½«²úÉú½èλ,Ï൱ÓÚ¼ÆËã197H-98H.