¡¡;ʹÓÃ
ifndef--G7_9
¡¡¡¡¡¡;---------------------------------------------------------------
¡¡¡¡¡¡divide ¡¡¡¡¡¡macro ¡¡¡¡dividend,divisor,quotient
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ local ¡¡¡¡comp,out
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ cntr=0
¡¡¡¡¡¡;AX=div'nd, BX=div'r, CX=quot't
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ifndef ¡¡ dividend
¡¡¡¡¡¡; dividend ûÓж¨Òå
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ cntr=1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ endif
¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ifndef ¡¡ divisor
¡¡¡¡¡¡; divisor ûÓж¨Òå
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ cntr=1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ endif
¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ifndef ¡¡ quotient
¡¡¡¡¡¡; quotient ûÓж¨Òå
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ cntr=1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ endif
¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ if ¡¡¡¡¡¡ cntr
¡¡¡¡¡¡; ºêÀ©Õ¹½áÊø
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ exitm
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ endif
¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ mov ¡¡¡¡¡¡ax,dividend
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ mov ¡¡¡¡¡¡bx,divisor
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ sub ¡¡¡¡¡¡cx,cx
¡¡¡¡¡¡comp: ¡¡¡¡¡¡ cmp ¡¡¡¡¡¡ax,bx
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ jb ¡¡¡¡¡¡ out
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ sub ¡¡¡¡¡¡ax,bx
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ inc ¡¡¡¡¡¡cx
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ jmp ¡¡¡¡¡¡comp
¡¡¡¡¡¡out: ¡¡¡¡¡¡¡¡mov ¡¡¡¡¡¡quotient,cx
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ endm
¡¡¡¡ ;--------------------------------------------------
¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡if1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ include ¡¡macro.mac
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ endif
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ purge ¡¡¡¡prompt
¡¡¡¡ ;--------------------------------------------------
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ .model ¡¡ small
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ .386
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ .stack 200h ¡¡¡¡;¶¨Òå¶ÑÕ»¶Î
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ .data ¡¡¡¡¡¡¡¡¡¡;¶¨ÒåÊý¾Ý¶Î
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ divdnd ¡¡dw 200 ;dividend
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ divsor ¡¡dw 25¡¡;divisor
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ quotnt ¡¡dw ? ¡¡;quotient
¡¡¡¡ ;--------------------------------------------------
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ .code ¡¡¡¡¡¡¡¡¡¡;¶¨Òå´úÂë¶Î
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡main ¡¡ proc ¡¡far
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ .sall
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡initz
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ .xall
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡divide¡¡divdnd,divsor,quotnt
¡¡¡¡;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ .lall
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡divide¡¡divdnd,divsor,quont
¡¡¡¡;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ .sall
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡finish
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡main ¡¡ endp
¡¡¡¡;------------------------------------------------------
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end ¡¡¡¡main
¡¡;ʹÓÃ
if1--g7_10
¡¡¡¡¡¡;---------------------------------------------------------------
¡¡¡¡¡¡divide¡¡¡¡¡¡macro ¡¡¡¡dividend,divisor,quotient
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local ¡¡¡¡comp,out
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cntr=0
¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡AX=div'nd, BX=div'r, CX=quot't
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ifndef dividend
¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡dividend ûÓж¨Òå
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cntr=1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡endif
¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡i fndef divisor
¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡divisor ûÓж¨Òå
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cntr=1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡endif
¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ifndef quotient
¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡quotient ûÓж¨Òå
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cntr=1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡endif
¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if cntr
¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡ºêÀ©Õ¹½áÊø
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡exitm
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡endif
¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov ¡¡¡¡¡¡ax,dividend
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov ¡¡¡¡¡¡bx,divisor
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sub ¡¡¡¡¡¡cx,cx
¡¡¡¡¡¡¡¡¡¡¡¡comp: cmp ¡¡¡¡¡¡ax,bx
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jb ¡¡¡¡¡¡ out
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sub ¡¡¡¡¡¡ax,bx
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡inc ¡¡¡¡¡¡cx
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jmp ¡¡¡¡¡¡comp
¡¡¡¡¡¡¡¡¡¡¡¡ out: mov ¡¡¡¡¡¡quotient,cx
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡endm
¡¡¡¡ ;-----------------------------------------------------------
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡endif
¡¡¡¡ purge prompt
¡¡¡¡ ;----------------------------------------------------------
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ .model ¡¡¡¡small
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ .386
0200 ¡¡¡¡¡¡¡¡¡¡¡¡.stack ¡¡¡¡200h ¡¡¡¡;¶¨Òå¶ÑÕ»¶Î
0000 ¡¡¡¡¡¡¡¡¡¡¡¡.data ¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¶¨ÒåÊý¾Ý¶Î
0000 00C8 divdnd dw 200 ¡¡¡¡¡¡¡¡¡¡¡¡ ;dividend
0002 0019 divsor dw 25 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡;divisor
0004 ???? quotnt dw ? ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ;quotient
¡¡¡¡;----------------------------------------------------------------
0000 ¡¡¡¡¡¡¡¡¡¡¡¡.code ¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¶¨Òå´úÂë¶Î
0000 ¡¡¡¡¡¡¡¡¡¡¡¡main ¡¡¡¡¡¡proc far
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ .sall
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ initz
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ .xall
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ divide ¡¡¡¡¡¡ divdnd,divsor,quotnt
0007 A1 0000 R ¡¡ 1 mov ¡¡¡¡¡¡ ax,divdnd
000A 8B 1E 0002 R 1 mov ¡¡¡¡¡¡ bx,divsor
000E 2B C9 ¡¡¡¡¡¡ 1 sub ¡¡¡¡¡¡ cx,cx
0010 3B C3 ¡¡¡¡¡¡ 1 ??0000: ¡¡ cmp ax,bx
0012 0F 82 001B R 1 jb ??0001
0016 2B C3 ¡¡¡¡¡¡ 1 sub ¡¡¡¡¡¡ ax,bx
0018 41 ¡¡¡¡¡¡¡¡¡¡1 inc ¡¡¡¡¡¡ cx
0019 EB F5 ¡¡¡¡¡¡ 1 jmp ??0000
001B 89 0E 0004 R 1 ??0001: ¡¡mov quotnt,cx
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ .lall
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡divide ¡¡¡¡divdnd,divsor,quont
¡¡¡¡¡¡¡¡¡¡ = 0000 1 ¡¡¡¡¡¡¡¡¡¡ cntr=0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1 ¡¡¡¡¡¡¡¡ ; AX=div'nd, BX=div'r, CX=quot't
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1 endif
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1 ¡¡¡¡¡¡¡¡ ;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1 endif
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1 ¡¡¡¡¡¡¡¡ ;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1 ifndef ¡¡¡¡quont
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1 ¡¡¡¡¡¡¡¡ ; quotient ûÓж¨Òå
¡¡¡¡¡¡¡¡¡¡ = 0001 1 ¡¡¡¡¡¡¡¡¡¡ cntr=1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1 endif
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1 ¡¡¡¡¡¡¡¡ ;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1 if cntr
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1 ¡¡¡¡¡¡¡¡ ; ºêÀ©Õ¹½áÊø
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1 exitm
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡.sall
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ finish
0024 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡main ¡¡¡¡¡¡endp
¡¡¡¡¡¡;---------------------------------------------------------
0024 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡end ¡¡¡¡¡¡ main
¡¡¡¡ÕâÀï¸ø³öÁËÒ»¸öºê¶¨ÒåÖÐËùÓõÄα²Ù×÷EXITM¡£´ÓÉÏÀý¿É¼û£¬EXITMµÄ×÷ÓÿÉʹ»ã±à³ÌÐòÔÚºêÖ¸ÁîµÄÕ¹¿ª¹ý³ÌÖÐÓöµ½EXITMʱ£¬½«²»¼ÌÐø½øÐкêÕ¹¿ª¶øÖ±½ÓÍ˳ö¸Ãºê¶¨Òå¡£´Óg7_10µÄLSTÇåµ¥ÖпÉÒÔ¿´³ö£¬µÚÒ»´ÎDIVIDEµÄºêµ÷ÓÃÒòÈý¸ö²ÎÊý¾ù±»¶¨ÒåʹCNTR=0,Òò¶ø²»Ö´ÐÐEXITM¶ø×÷Á˺êÕ¹¿ª£¬ÕâÑù¿ÉÔÚ³ÌÐòÖÐʵÏÖ³ý·¨£»µÚ¶þ´ÎDIVIDEºêµ÷ÓÃÒòÉ̵IJÎÊýδ±»¶¨Òå¶øʹCNTR=1,
Òò¶øÖ´ÐÐÁËEXITM£¬ÖÂʹֹͣÆäºóµÄºêÕ¹¿ª£¬Ôì³ÉµÚ¶þ´Î³ý·¨²Ù×÷²»ÄܽøÐС£