divÖ¸Áî
divÖ¸ÁîÊdzý·¨Ö¸ÁʹÓÃdiv×ö³ý·¨£º
1)³ýÊý£ºÓÐ8λºÍ16λÁ½ÖÖ£¬ÔÚÒ»¸ö¼Ä´æÆ÷ºóÄÚ´æµ¥ÔªÖС£
2)±»³ýÊý£ºÄ¬ÈÏ·ÅÔÚAX»òDXºÍAXÖУ¬Èç¹û³ýÊýΪ8룬±»³ýÊýΪ16λ£¬Ä¬ÈÏÔÚAXÖдæ·Å£»Èç¹û³ýÊýΪ16룬±»³ýÊýÔòΪ32룬ÔÚDXºÍAXÖдæ·Å£¬DX´æ·Å¸ßλ16룬AX´æ·ÅµÍλ16λ¡£
3)½á¹û£ºÈç¹û³ýÊýΪ8룬ÔòAL´æ´¢³ý·¨²Ù×÷µÄÉÌ£¬ah ´æ´¢³ý·¨²Ù×÷µÄÓàÊý£»Èç¹û³ýÊýΪ16룬ÔòAX´æ·Å³ýÊý²Ù×÷µÄÉÌ£¬DX´æ´¢³ý·¨²Ù×÷µÄÓàÊý¡£
¸ñʽÈçÏ£º div reg(¼Ä´æÆ÷¼¯ºÏ) div ÄÚ´æµ¥Ôª
³ýÊýλÊý 8λ 16λ
Òþº¬µÄ±»³ýÊý AX DX-AX ÉÌ AL AX ÓàÊý AH DX ¾Ù Àý DIV BH DIV BX αָÁ¡ªdd
dd:¶¨ÒådwordÐÍÊý¾Ý,ÿ¸öË«×ÖÕ¼Óöþ¸öÁ¬ÐøµÄ×Öµ¥Ôª(4×Ö½Ú) dup
dupÓÃÀ´½øÐÐÊý¾ÝµÄÖØ¸´ ʹÓøñʽÈçÏÂ:
db ÖØ¸´µÄ´ÎÊý dup (ÖØ¸´µÄ×Ö½ÚÐÍÊý¾Ý) dw ÖØ¸´µÄ´ÎÊý dup (ÖØ¸´µÄ×ÖÐÍÊý¾Ý) dd ÖØ¸´µÄ´ÎÊý dup (ÖØ¸´µÄË«×ÖÐÍÊý¾Ý)
Àý£ºdb 3 dup (0) db 3 dup (0,1,2)
db 3 dup (¡®abc¡¯, ¡®ABC¡¯)
dw 3 dup (10h, 2 dup (1,2,3))
µÚ¾ÅÕÂ ×ªÒÆÖ¸ÁîµÄÔÀí
ÐÞ¸ÄIP£¬»òͬʱÐÞ¸ÄCSºÍIPµÄÖ¸Áîͳ³Æ×ªÒÆÖ¸Áî
8086CPUµÄ×ªÒÆ¿ÉÒÔ·ÖΪ£º ¶ÎÄÚ×ªÒÆ£ºÖ»ÐÞ¸ÄIP£¬Èçjmp ax
¶Î¼ä×ªÒÆ£ºÍ¬Ê±ÐÞ¸ÄCSºÍIP£¬Èç jmp 1000:0
¶ÎÄÚ×ªÒÆÓÖ¿É·ÖΪ£º
¶Ì×ªÒÆ£º-128¡«127(¼´IPµÄÐ޸ķ¶Î§) ½ü×ªÒÆ£º-32768¡«32767
8086CPUµÄ×ªÒÆÖ¸Á ÎÞÌõ¼þ×ªÒÆÖ¸Áî Ìõ¼þ×ªÒÆÖ¸Áî Ñ»·Ö¸Áî ¹ý³Ì ÖжÏ
²Ù×÷·ûoffset
¸ñʽ£ºoffset ±äÁ¿/±êºÅ
¹¦ÄÜ£ºÈ¡µÃ±äÁ¿»ò±êºÅµÄÆ«ÒÆµØÖ· ÀýÈ磺
assume cs:codesg codesg segment start:mov ax,offset start s:mov ax,offset s codesg ends end start
ÒÀ¾ÝÎ»ÒÆ½øÐÐ×ªÒÆµÄjmpÖ¸Áî
CPUÔÚÖ´ÐÐjmpÖ¸ÁîµÄʱºò²¢²»ÐèÒª×ªÒÆµÄÄ¿µÄµØÖ·,¶øÊÇͨ¹ý·Òë³öµÄ»úÆ÷ÂëÖеÄÖ¸ÁîÂë±íÊ¾Î»ÒÆ½øÐÐ×ªÒÆ.