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
29 30 31 32
33 34 35 36
37 38 39 40
41 42 43 44
45 46 47 48
49 50 51 52
53 54 55 56
57 58 59 60
61 |
;***************************************
code segment
assume cs:code,ds:code
org 100h
;---------------------------------------
start: sub bx,bx ;¨Ï BX µ¥©ó¹s
next: mov dl,bl ;¦¹¦æ¤Î¥H¤U 3 ¦æ¦L¥X BL ¤º®eªº
mov cl,4 ;¸û°ªªº¥|Ӧ줸
shr dl,cl
call print
mov dl,bl ;¦¹¦æ¤Î¥H¤U 2 ¦æ¦L¥X BL ¤º®eªº
and dl,0fh ;¸û§Cªº¥|Ӧ줸
call print
mov ah,2 ;¦¹¦æ¤Î¥H¤U¨â¦æ¦L¥XªÅ¥Õ
mov dl,' '
int 21h
mov dl,bl ;¦¹¦æ¤Î¥H¤U¨â¦æ¦L¥X BL ©Ò¥Nªíªº
int 21h ;ASCII ¦r¤¸
call cr_lf ;¦L¥XÂk¦ì¤Î´«¦æ¦r¤¸
inc bl ;¨Ï BL ¬°¤U¤@Ó ASCII ¦r¤¸
mov ch,20 ;³]©w°£¼Æ
mov ax,bx ;³]©w³Q°£¼Æ
div ch
or ah,ah ;Y¾l¼Æ¬°¹s,ªí¥Ü¤w¸gÅã¥Ü 20 Ó¦r¤F
jnz remain
int 16h ;©Ò¥HÀ³¸Óµ¥¨Ï¥ÎªÌ«ö¤U¥ô·NÁä¦AÄ~Äò
remain: cmp bl,0 ;¦pªG BL=0,ªí¥Ü¤w¸g§¹¦¨ 256 Ó¦r¤F
jne next
mov ax,4c00h
int 21h
;---------------------------------------
;print °Æµ{¦¡
;¿é¤J¡GDL-¥Ñ 0 ¨ì F ªº¤Q¤»¶i¦ì¼Æ
;¿é¥X¡G¦b¿Ã¹õ¤W¦L¥X DL ¤ºªº ASCII ½X
print proc near
add dl,30h ;¥[¤W 30H
cmp dl,'9' ;¤ñ¸û¬Ý¬Ý¬O§_¶W¹L 39H
jbe ok ;¨S¶W¹Lª½±µ¦L¥X
add dl,7 ;Y¶W¹L¦A¥[¤W 7
ok: mov ah,2
int 21h ;¦L¥X
ret
print endp
;---------------------------------------
cr_lf proc near
mov ah,2
mov dl,0dh
int 21h
mov dl,0ah
int 21h
ret
cr_lf endp
;---------------------------------------
code ends
;***************************************
end start |
§â³oÓµ{¦¡²ÕĶ³sµ²«á¡A¦b MS-DOS ¼Ò¦¡¤U°õ¦æ¡A¦p¤U±¹Ï¤ù¡G
¦¹µ{¦¡·|¥ý§â ASCII ½Xªº¼ÆȦL¦b¿Ã¹õ³Ì¥ªÃä¡AµM«á¦L¥XªÅ¥Õ¡A¦A¦L¥X¦r¤¸¡C¨C¦L¥X 20 ¦æ«á¡A´N·|°±¤î¡A¨Ï¥ÎªÌ¥²¶·«ö¥ô·N¤@Áä¡Aµ{¦¡¤S¦A¦L¥X¤U 20 ¦æ¡CASCII «e 20 Ó¦r¤¸¡A¦³³\¦h¬O±±¨î¦r¤¸¡A¤£¬O´¶³qªº¦r¤¸¡A¦]¦¹¬O¦L¤£¥X¨Óªº¡C¨Ò¦p 07H¡A¬O¨Ï¹q¸£µo¥X¡u¹Í¡v¤@Án¡F0AH ¬O line feed¡A·N«ä¬O´«¨ì¤U¤@¦æ¡F0DH ¬OÂk¦ì¦r¤¸¡A·N«ä¬O´å¼Ð²¾¨ì³Ì¥ªÃä¡C©³¤U¨Ó¤¶²Ð´XÓ·s«ü¥O§a¡C
sub ¼È¦s¾¹,¼È¦s¾¹ sub ¼È¦s¾¹,¼Æ¦r sub ¼È¦s¾¹,ÅܼƦW sub ÅܼƦW,¼È¦s¾¹ sub ÅܼƦW,¼Æ¦rSUB ªº§@¥Î¬O§â«e±ªº¼È¦s¾¹©ÎÅܼƴî¥h«á±ªº¼È¦s¾¹¡B¼Æ¦r©ÎÅܼơA¦A§âµ²ªG¦s¨ì«e±ªº¼È¦s¾¹©ÎÅܼƤ¤¡Anª`·Nªº¬O¡A«e±ªº¼È¦s¾¹©ÎÅܼƤ¤ªº¼ÆÈ·|§ïÅÜ¡C¨Ò¦p¦³¤@µ{¦¡¤ù¬q¡G
mov ax,9 mov bx,5 sub ax,bx°õ¦æ³Ì«á¤@¦æ®É¡A¬O±N AX ¤§È´î¥h BX ¤§È¡A¦A¦s¦^¨ì AX¡A©Ò¥H³Ì«á AX ¬° 4¡A¦Ó BX ¤´¬° 5¡Cnª`·Nªº¬O´î¼Æ»P³Q´î¼Æ³£¥²»Ý¦P®É¬° 16 ¦ì¤¸©Î¦P®É¬° 8 ¦ì¤¸¡A¤]´N¬O»¡ sub ax,bl ¬O¤£¦Xªkªº¡C
mov ax,21 mov bl,5 div blpºâ§¹«á BL ¤´µ¥©ó 5¡AAX ·|Åܦ¨ 0104H¡A¨ä¤¤ AL ¬° 4 ¬O°Ó¡AAH ¬°¤@¬O¾l¼Æ¡C
¦pªG³Q°£¼Æ¶W¹L 65535¡A°£¼Æ¶W¹L 255 ªº¸Ü¡A´N¥Î DX:AX ¨Ó¥N´À³Q°£¼Æ¡Apºâµ²ªG°Ó¼Æ·|¦s©ñ¦b AX¡A¾l¼Æ¦s©ñ¦b DX¡C¨Ò¦pnpºâ 80000d(§Y13880h) °£¥H 4000¡Aµ{¦¡¦p¤U¡G
mov dx,1 mov ax,3880h mov bx,4000 div bx
nª`·Nªº¬O¡A§â³Q°£¼Æ¶ñ¤J DX:AX ®É¡An¥Î 16 ¶i¦ì¡ADX ¬O¶ñ¤J¸û°ªªº 16 ¦ì¤¸¡AAX ¶ñ¤J¸û§Cªº 16 ¦ì¤¸¡Cµ²ªG¬O AX=14h¡ADX=0¡C¦³Ãö°£ªk«ü¥O¦b²Ä¤K³¹¤¤¦A¸Ô²Ó¤¶²Ð¡C
or ¼È¦s¾¹,¼È¦s¾¹ or ¼È¦s¾¹,¼Æ¦r or ¼È¦s¾¹,ÅÜ¼Æ or ÅܼÆ,¼È¦s¾¹ or ÅܼÆ,¼Æ¦r³oÓ«ü¥O¬O±N¼È¦s¾¹©ÎÅܼƪº¤º®e©M«á±ªº¼Æ¦r§@¡y©Î¡z¹Bºâ¡A¦A±N¨äµ²ªG¦s¤J¸Ó¼È¦s¾¹©ÎÅܼƤ¤¡C©Ò¿×¡y©Î¡z¹Bºâ¬O«ü¦³¨âÓ±ø¥ó¡A¥un¨ä¤¤¤§¤@¦¨¥ß´N¥i¥H¤F¡C¨Ò¦p¦Ñ®v»¡¡G¡y©ú¤Ñ¦Ò¸Õ¡AÃD¥Ø¥u¦³¨âÃD¡A²Ä¤@ÃDµª¹ï©Î²Ä¤GÃDµª¹ï´N¤Î®æ¡C¡z©Ò¥H¦pªG§A²Ä¤@ÃD¹ï²Ä¤GÃD¿ù¡A©Î²Ä¤@ÃD¿ù²Ä¤GÃD¹ï¡A©Î¨âÃD³£¹ï¡A³£ºâ¤Î®æ¡C¦b²Õ¦X»y¨¥¤¤¡A¡y1¡zªí¥Ü¦¨¥ß(¯u)¡A¡y0¡zªí¥Ü¤£¦¨¥ß(°°)¡ACPU ¦b°µ¡y©Î¡z¹Bºâ®É¡A¥ý§ân§@¡y©Î¡z¹Bºâªº¨â¼Æ´«ºâ¦¨¤G¶i¦ì¡A¥un¬Û¹ïÀ³ªº¦ì¼Æ¦³¤@Ó¬°¡y1¡z¡Aµ²ªG´N¬O¤@¡C¨Ò¦p¦³¤@Óµ{¦¡¤ù¬q¦p¤U¡G
mov ax,832h or ax,0ac3h832h Åܦ¨¤G¶i¦ì¼Æ¬O 0000 1000 0011 0010¡A¦Ó 0ac3h ªº¤G¶i¦ì¼Æ¬O 0000 1010 1100 0011¡A¹Bºâ¦p¤U¹Ï¡G
²Ä¤G¤Q¤T¦æ¨ì¤T¤Q¤T¦æ¬O¬°¤F¬üÆ[¡A¦ÓÀˬd¬O¤£¬O¤w¸g¦L¥X 20 Ó¦r¤F¡A¦pªG«ê¦n¦L¨ì²Ä 20¡B40¡B60 µ¥¦r¡A¦¹®É¤@¾ãӿùõ¤]®t¤£¦hº¡¤F¡Anµ¥¨Ï¥ÎªÌ«ö¤@Áä¦AÄ~Äò¤U± 20 Ó¦r¤¸¡C¦Ó³o¨Ç¼Æè¦n¬O 20 ªº¿¼Æ¡A©Ò¥H°£¥H 20 «á±o¨ìªº¾l¼Æ¬°¹s¡AY¾l¼Æ(¾l¼Æ©ñ¦b AH ¤¤)¬°¹s¡A´Nnµ¥¨Ï¥ÎªÌ«ö¤@Ó«öÁä¦AÄ~Äò¡C¹³³o¼ËÀˬd¬YӼơAY²Å¦X±ø¥ó´N¨ì¬Y³B¥h°õ¦æªº·Qªk¡AºÙ¬°¡y±ø¥ó¸õÅD¡z¡A©³¤U»¡©ú¨ä¨Ï¥Î¤èªk¡A§A¤]¥i¥H°Ñ¦Ò µù¤G¡C
¦b³oÓµ{¦¡ùØÀˬd AH ¬O§_¬°¹s¡A§Ú¥Î or ah,ah ¨Ó°µ¡A¦pªG AH ¬°¹s¡A°µ©Î¹Bºâ«áªºµ²ªGÁÙ¬O¹s¡Aor «ü¥O·|±NºX¼Ð¼È¦s¾¹ªº ¹sºX¼Ð³]¬°¤@¡Aªí¥Ü¹Bºâµ²ªG¬°¹s¡CY AH ¤£¬°¹s¡A«h°µ©Î¹Bºâ¤§«á¤]¤£¬°¹s¡Aor «ü¥O·|±N¹sºX¼Ð³]¬°¹s¡C§Ú·Q³oÃ䦳³\¦h¤H·|³Q·d½k¶î¤F¡A¦b³o¨à¾ã²z¤@¤U¡G ¹Bºâµ²ªG¬°¹s¡A¹sºX¼Ð³]¬°¤@¡F¹Bºâµ²ªG«D¹s¡A¹sºX¼Ð³]¬°¹s¡C §A¥i¥H¬Ý µù¤G¡A¦³§ó¦n°O±o¤èªk³á¡C
¨ì¦¹¡Aµ{¦¡¥u¬O¤ñ¸û¦Ó¤w¡A¨Ã¨S¦³¯u¥¿¸õÅD¡A¤U¤@¦æ¤~°õ¦æ¸õÅD°Ê§@¡C²Ä¤G¤Q¤E¦æªº jnz (µù¤T) «ü¥O«h¬O¬Ý¨ì¹sºX¼Ð¤£¬°¤@(¹Bºâµ²ªG¤£¬O¹s)¡A´N·|¸õ¨ì remain ¼Ð°O³BÄ~Äò°õ¦æ¡A³o¸Ìªº¹Bºâµ²ªG¬O«ü or ah,ah ¨º¤@¦æ¹Bºâ¡A¦Ó AH ¤¤¦s¦³°£¥H 20 «áªº¾l¼Æ¡C©Ò¥H³o¤@¦æªº·N«ä¬O»¡¡A¦pªG¤£¬O²Ä 20¡B40¡B60 µ¥¼Æ¦rªº¸Ü´N¸õ¨ì remain ¼Ð°O³B°õ¦æ¡F¦pªG¬Oªº¸Ü´NÄ~Äò¤U¤@¦æ«ü¥O¡A³oÓ«ü¥O´N¬Oµ¥«Ý¨Ï¥ÎªÌ«ö¤@ÓÁä¦AÄ~Äò°õ¦æ¡C
²Ä¤T¤Q¤G¡B²Ä¤T¤Q¤T¦æ«ü¥O¬OÀˬd¬O§_¤w¸g±N©Ò¦³ªº ASCII ½X³£¦L¥X¨Ó¤F¡H¦pªG¬Oªº¸Ü¨º BL ¼È¦s¾¹¤S·|Âk¹s¡A´N¥i¥Hµ²§ôµ{¦¡¤F¡C
¥»³¹¨ì¦¹µ²§ô¡A¤£ª¾§A¥i©úÁA¤F¡H³Ì«á¦^ÅU¥»³¹«ÂI¡G
µù¤G¡G²Õ¦X»y¨¥¤¤ªº±ø¥ó¸õÅD«ü¥O(´N¬O¹³¡yY A ¤j©ó B ´N¸õ¨ì¬Y³B¡z)³q±`·|¦³¨â¦æµ{¦¡¡A¤@Ó¬O¥Î¨Ó¤ñ¸û¨Ã³]¦nºX¼Ð¡A¥t¤@Ó¬O¨Ì¾Ú¤W±³]¦nªººX¼Ð°õ¦æ¸õÅD¡C¨Æ¹ê¤W¡Aªì¾ÇªÌ¼gµ{¦¡®É¨º¸ÌÁÙ°O±o¹sºX¼Ð¬°¤@ªí¥Ü¤°»òµ¥µ¥¡C©Ò¥H§Ú¾ã²z¥X¤@¨Ç²³æªº³W«h¡A¥un°O±o¤U±´XÓ²³æªº³W«h(§Ú¬O»¡¤£¥Îªá¦h¤Ö¤O®ð´N¯à°O±o¤£¬O»¡ÁÙ±o¬d¾\®ÑÄy¤~¯à²M·¡)¡A§A¤£¥Î¥hºÞ¹sºX¼Ð©Î¬O¨ä¥LºX¼Ð¡A¤@¼Ë¥i¥H³B²z¦n¸õÅD«ü¥Oªº¡C
²Ä¤@Ó¨Ò¤l¡G
cmp ax,bx
jl x1
³o¬Û·í©ó¡yY AX ¤p©ó BX¡A«h¸õ¨ì x1 ³B¡z¡A²Ä¤@¦æªº·N¸q´N¬O¡y¤ñ¸û AX¡BBX¡z¡A²Ä¤G¦æ¬O¡yY¤p©ó´N¸õ¨ì x1 ³B¡z¡C¬Ý¬Ý©³¤Uªº¹Ï¸Ñ§a¡C
sub ah,ah
jz x1
³o¬Û·í©ó¡yY AH ´î AH µ¥©ó¹s¡A´N¸õÅD¡z¡A¦¹³B±o°O±o sub «ü¥O¦n¹³¤ñ¸û«ü¥O¡A¦pªG¡y¬Ûµ¥¡z¡A©Î¡y¬Û´î«á¬°¹s¡z´N¸õÅD¡C¦pªG¯uªº¼g¥X³oÓµ{¦¡¤ù¬q¡A¨Æ¹ê¤W¹Bºâ«á¤@©w·|¸õÅDªº¡A¦]¬° AH ´î AH ¤@©wµ¥©ó¹s¡C
µù¤T¡Gjnz ªº·N«ä¬O¡yJump if Not Zero¡z