Îå. ʵÑéÌå»á
Õâ´ÎµÄʵÑéÈÃÎÒѧ»áÁËDEBUGµÄÔËÓã¬Á˽⵽ÁËDEBUG¶ÔÓÚ³ÌÐòµÄµ÷ÊÔ¹¦ÄÜ¡£
ʵÑé¶þ »ã±àÓïÑÔ³ÌÐòÉè¼Æ(˳Ðò¡¢Ñ»·)
Ò». ʵÑéÄ¿µÄ
1¡¢ÕÆÎÕ˳ÐòºÍÑ»·³ÌÐò½á¹¹ºÍÉè¼Æ·½·¨£»
2¡¢ÊìϤÔÚPC»úÉϽ¨Á¢¡¢»ã±à¡¢Á¬½Ó¡¢µ÷ÊÔºÍÔËÐÐ8086/8088»ã±àÓïÑÔ³ÌÐòµÄ¹ý³Ì¡£
¶þ. ʵÑéÄÚÈÝ
1¡¢X¡¢Y¡¢Z¡¢V¾ùΪ×Ö±äÁ¿£¬ÔÚX¡¢Y¡¢Z¡¢V×Öµ¥ÔªÖдæ·ÅÊÇ16λ´ø·ûºÅÊý¡£ÊÔ±àд»ã±àÓïÑÔ³ÌÐòÍê³ÉÒÔϹ¦ÄÜ£º ¢Ù¼ÆËã±í´ïʽֵ£¨V¨C£¨X*Y+Z-720£©£©/X£»
¢Ú½«ÉÏÊö±í´ïʽÔËËã½á¹ûÕûÊý·ÅÔÚSUM1µ¥Ôª£¬ÓàÊý·ÅÔÚSUM2µ¥Ôª¡£ 2¡¢ÇóÒ»¸ö°à50ÃûѧÉú³É¼¨µÄƽ¾ùÖµ£¨¸½¼ÓÌ⣺×î´óÖµºÍ×îСֵ,²¢½«½á¹ûÏÔʾ³öÀ´£©
3¡¢´Ó¼üÅ̶ÁÈëÒ»¸ö×Ö·û´®£¬ÒÔEnter½áÊø£¬×Ö·û´®²»³¬¹ý50¸ö×Ö·û£¬²¢´òÓ¡¸Ã×Ö·û´®(¸½¼ÓÌ⣺²éÕÒÖмäÊÇ·ñÓС®asm¡¯×Ó´®¡£Èç¹ûÓУ¬Êä³ö¡®Yes¡¯£»·ñÔò£¬Êä³ö¡®No¡¯)¡£
Èý. ʵÑé¹ý³ÌºÍ³ÌÐò ³ÌÐò£º 1.
Data segment
X dw 1 Y dw 720 Z dw -1 V dw 1 Sum1 dw ? Sum2 dw ?
Data ends Code segment
Assume cs:code ds:data
mov ax,data Mov ds,ax Mov ax,x Mov bx,y Imul bx
;x*y
Start:
Mov cx,ax Mov bx,dx Mov ax,z Cwd Add cx,ax Adc bx,dx Sub cx,720 ;x*y+z
;x*y+z-720 Sbb bx,0 Mov ax,v
Cwd Sub ax,cx Sbb dx,bx Mov bx,x Idiv bx Mov sum1,ax
Mov sum2,dx
mov bx,sum1 mov ch,4 mov cl,4 again: rol bx,cl
mov dl,bl and dl,0fh cmp dl,0ah jl next
add dl,37h ;\
jmp down
next: add dl,30h ;\
down:
mov ah,2 int 21h dec ch jnz again
mov dl,23h ;\
;v-(x*y+z-720)
;(v-(x*y+z-720))/x
;sum1 ´æÉÌ£¬sum2 ´æÓàÊý
mov ah,2 int 21h
mov bx,sum2
mov ch,4 mov cl,4 mov dl,bl and dl,0fh cmp dl,0ah jl next1
add dl,37h ;\jmp down1
again1: rol bx,cl
next1: add dl,30h ;\down1: 2.
data segment
grade db 61,73,82,90,100,45 dup(70) avg1 db ? ;ƽ¾ùÖµµÄÉÌ avg2 db ? max db ?
;ƽ¾ùÖµµÄÓàÊý ;×î´óÖµ
Mov ax,4c00h Int 21h End start mov ah,2 int 21h dec ch jnz again1
Code ends
min db ?;×îСֵ data ends code segment
assume cs:code,ds:data
mov ax,data
start: