ºÏ·Ê¹¤Òµ´óѧ»ã±àÓïÑÔʵÑ鱨¸æ ÏÂÔØ±¾ÎÄ

µÚ2Ìâ¶ÑÕ»½ØÍ¼

µÚ2Ìâ¼Ä´æÆ÷½ØÍ¼

Îå. ʵÑéÌå»á

ÔÚÕâÒ»´ÎµÄʵÑéµ±ÖУ¬ÎÒѧµ½Á˵ØÖ·±íÒÔ¼°×ªÒƱíµÄÓ¦Óã¬Í¬Ê±Ò²Ñ§µ½ÁË×Ó³ÌÐòµÄʹÓá£

ʵÑéËÄ »ã±àÓïÑԸ߼¶±à³ÌרÌâ

Ò». ʵÑéÄ¿µÄ

1¡¢»ã±àÓïÑÔºê³ÌÐòÉè¼Æ£»

2¡¢ ÕÆÎÕÖжϷþÎñ×Ó³ÌÐòµÄ±àд¡£ 3¡¢ »ã±àÓïÑÔÓë¸ß¼¶ÓïÑԵĻì±à¡£

¶þ. ʵÑéÄÚÈÝ

1¡¢±àдһ¸öºê£¬ÇóÈý¸öÊýµÄ×îСÊý£¬Ô­ÐÍΪ£ºMIN3 x,y,z,min 2¡¢¹Ò½Ó1CHÖжϣ¬Õý¼ÆÊ±60ÃëºóÍ˳ö¡£ÒªÇóÆÁÄ»ÏÔʾ0-59µÄÃëÊý¡£ 3¡¢VC++ÖбàдÄÚÁª»ã±à£¬½«×Ö½ÚÊý×éµÄÿ¸öÔªËØ¸ßµÍËÄ뻥»»¡£ char dbyte[] = {0x34,0x45,0x56,0x67,0xaf};

Èý. ʵÑé¹ý³ÌºÍ³ÌÐò 1.

MIN3 macro x,y,z,min

code segment

assume cs:code,ds:data

start: mov ax,data

mov ax,x cmp ax,y jl next0 mov ax,y jl down0 mov ax,z

mov min,ax endm x dw 13 y dw 15 z dw 16 min dw ?

next0: cmp ax,z

down0:

data segment

data ends

mov ds,ax

MIN3 x,y,z,min

mov bx,min mov ch,4 mov cl,4

rol bx,cl mov al,bl and al,0fh cmp al,0ah jl next

add al,37h ;\jmp down

add al,30h ;\mov dl,al

again:

next: 2.

down:

mov ah,2 int 21h dec ch jnz again

mov ah,4ch int 21h end start

code ends

;»ã±à ¹Ò½Ó1CHÖжϣ¬Õý¼ÆÊ±60ÃëºóÍ˳ö DATA SEGMENT

OLDISR DW ?,? TIMER DB 100 COUNTER DW 0 ISDONE DB 0

DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA MOV DS,AX MOV AX,0 MOV ES,AX CLI

START: MOV AX,DATA

MOV AX,ES:[1CH*4] ;±£´æÔ­ÖжÏÏòÁ¿ MOV OLDISR[0],AX MOV AX,ES:[1CH*4+2] MOV OLDISR[2],AX

MOV WORD PTR ES:[1CH*4],OFFSET ISR MOV WORD PTR ES:[1CH*4+2],SEG ISR STI

DELAY:CMP ISDONE,1 JNZ DELAY CLI

MOV AX,OLDISR[0] ; »Ö¸´Ô­ÖжÏÏòÁ¿ MOV ES:[1CH*4],AX MOV AX,OLDISR[2] MOV ES:[1CH*4+2],AX STI

MOV AH,4CH INT 21H

ISR PROC FAR

PUSH DX PUSH AX MOV AX,DATA MOV DS,AX STI

INC TIMER ; Ö´ÐÐÐÂÖжϴ¦Àí CMP TIMER,1000/55 JB DONE MOV TIMER,0 MOV AH,2

MOV DL,0DH

;ÉèÖÃÐÂÖжÏÏòÁ¿