xin΢»úÔ­ÀíÓë»ã±àÓïÑÔ³ÌÐòÉè¼Æ ÏÂÔØ±¾ÎÄ

ʵÑéÎå ·ÖÖ§³ÌÐòÉè¼Æ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