ʵÑéÎå ·ÖÖ§³ÌÐòÉè¼Æ1£¨2ѧʱ£©
¡¾ÊµÑéÄ¿µÄ¡¿
1¡¢ÊìÁ·ÕÆÎÕÂß¼ÔËËãºÍ×ªÒÆÖ¸Áî 1) Âß¼ÔËËãÖ¸Áî
2)±êºÅºÍÎÞÌõ¼þ×ªÒÆÖ¸Áî 3)±È½ÏÖ¸ÁîºÍÌõ¼þ×ªÒÆÖ¸Áî
2¡¢ÕÆÎÕ·ÖÖ§³ÌÐòÉè¼ÆµÄÔÀíºÍ·½·¨ , ÖØµãÕÆÎÕ¸÷ÖÖ·ÖÖ§³ÌÐòÖÐÐγɺÍÅжÏÌõ¼þ¶ø²úÉúµÄ³ÌÐò¶ÎµÄÉè¼Æ·½·¨ºÍ¼¼ÇÉ
¡¾ÊµÑéÄÚÈÝ¡¿
1¡¢±àÖÆ³ÌÐòʵÏÖ¸ù¾Ý¸÷¿ØÖƱäÁ¿£¨Êý×Ö1---4£©ºÍ¸÷·ÖÖ§Ö®¼äµÄ¹ØÏµ£¬°Ñ³ÌÐò·Ö³É4¸ö·ÖÖ§¶Î£¬¸÷·ÖÖ§¶ÎµÄÆðʼ±êºÅΪA1,A2,A3,A4.ÿ¸ö·ÖÖ§¶ÎµÄ¹¦ÄÜΪÏÔʾһ¸ö×Ö·û´®¡£Èç¹ûÊäÈëµÄ×Ö·û²»ÊÇ1---4£¬ÔòÏÔʾ³ö´íÎóÌáʾ×Ö·û´®¡£ DATAS SEGMENT
tab1 db 'output data1$';´Ë´¦ÊäÈëÊý¾Ý¶Î´úÂë tab2 db 'output data2$' tab3 db 'output data3$' tab4 db 'output data4$' err db 'err$' DATAS ENDS
STACKS SEGMENT
db 100 dup(0) ;´Ë´¦ÊäÈë¶ÑÕ»¶Î´úÂë STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS START:
MOV AX,DATAS MOV DS,AX
mov ah,1 ;´Ë´¦ÊäÈë´úÂë¾Ý¶Î´úÂë int 21h cmp al,'1' jz a1
cmp al,'2' jz a2
cmp al,'3' jz a3
25
cmp al,'4' jz a4
lea dx,err mov ah,9 int 21h jmp exit
a1: lea dx,tab1 mov ah,9 int 21h jmp exit
a2: lea dx,tab2 mov ah,9 int 21h jmp exit
a3: lea dx,tab3 mov ah,9 int 21h jmp exit
a4: lea dx,tab4 mov ah,9 int 21h
exit: MOV AH,4CH INT 21H CODES ENDS
END START ÔËÐнá¹û
1 output data1
2¡¢±àÖÆ³ÌÐòʵÏÖÈçϲÙ×÷£º
ÉèÓÐ 10 ¸öѧÉú³É¼¨£¬·Ö±ðͳ¼ÆµÍÓÚ 60 ·Ö¡¢ 60 ¡« 69 ·Ö¡¢ 70 ¡« 79 ·Ö¡¢ 80 ¡« 89 ·Ö¡¢ 90 ¡«99 ·Ö¼° 100 ·ÖµÄÈËÊý£¬²¢´æ·ÅÓÚ S5 ¡¢ S6 ¡¢ S7 ¡¢ S8 ¡¢ S9 ¡¢ S10 µ¥ÔªÖС£
Ö´ÐгÌÐòºó£¬½«½á¹û·Ö±ðÌîÈëÏÂÁÐ
N£¨×ÜÈËÊý £© S5 S6 S7 S8 S9 S10 DATAS SEGMENT
tab db 45,85,96,65,76,84,55,69,79,88 ;´Ë´¦ÊäÈëÊý¾Ý¶Î´úÂë s5 db 0 s6 db 0 s7 db 0 s8 db 0
26
s9 db 0 s10 db 0
buf db 'output data:$' DATAS ENDS
STACKS SEGMENT
;´Ë´¦ÊäÈë¶ÑÕ»¶Î´úÂë STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS START:
MOV AX,DATAS MOV DS,AX
lea si,tab;´Ë´¦ÊäÈë´úÂë¾Ý¶Î´úÂë mov cx,10
lopa: mov al,[si] cmp al,60 jl a5
cmp al,70 jl a6
cmp al,80 jl a7
cmp al,90 jl a8
cmp al,100 jz a10 inc s9 jmp exit a10:inc s10 jmp exit a8: inc s8 jmp exit a7: inc s7 jmp exit a6: inc s6 jmp exit a5: inc s5 jmp exit exit:inc si dec cx jnz lopa lea dx,buf mov ah, 9
27
int 21h lea si,s5 mov cx,6 lopb: mov al,[si] mov ah,0 mov dl,10
div dl;(al)=ʮλ £¨ah£©=¸öλ mov bh,ah or al,30h mov dl,al mov ah,2 int 21h
or bh,30h mov dl,bh mov ah,2 int 21h
mov dl,' ' mov ah,2 int 21h inc si dec cx jnz lopb MOV AH,4CH INT 21H CODES ENDS
END START ÔËÐнá¹û
output data: 02 02 02 03 01 00
3¡¢±àÖÆ³ÌÐòʵÏÖ´Ó¼üÅÌÉϼüÈë0ÖÁ9ÖÐÈÎÒ»×ÔÈ»ÊýX£¬ÇóÆäƽ·½Öµ¡£ÈôÊäÈëµÄ×Ö·û²»ÊÇ0ÖÁ9ÖеÄÊý×Ö£¬ÔòÏÔʾ´íÎ󣬲¢ÒªÇóÖØÐÂÊäÈë¡£ÒªÇóÓн»»¥½çÃæ: data segment
tab db 0,1,4,9,16,25,36,49,64,81
input db ¡®please input x(0--9)¡¯,¡¯$¡¯ data ends
µ÷ÊÔÔËÐÐʱ£¬Çë²ÉÓÃÁ½ÖÖ·½·¨£º
£¨1£©µ÷ÓÃDEBUG³ÌÐò²é¿´ÔËÐнá¹û²¢¼Ç¼ÿ²½ÔËÐнá¹û£» £¨2£©Í¨¹ý²é±íת»»Ç󯽷½ÖµÔÚÆÁÄ»ÉÏÏÔʾ³öÀ´¡£ DATAS SEGMENT
tab db 0,1,4,9,16,25,36,49,64,81 input db 'please input x(0--9)','$'
x db ?
28