DIV BX OVERFLOW
Thuaơt toán
7.6 Ưùng dúng đeơ tính trung bình
Giạsửmoơtlớpgoăm5sinhvieđnvàcó4mođnthi.Kêtqụachobởimạng2 chieăunhưsau:
Chúngtasẽviêt1chươngtrìnhtínhđieơmtrungbình chomoêibàithi.Đeơlàm đieăunàycótheơtoơngtheocoơtroăichiacho5.
Thuaơttoán: TeđnSinh
vieđn TEST1 TEST2 TEST3 TEST4
MARY 67 45 98 33
SCOTT 70 56 87 44
GEORGE 82 72 89 40
BETH 80 67 95 50
1.j=4 2.repeat
3.Sumthescoresincolumnj
4.dividesumby5togetaverageincolumnj 5.j=j-1
5.Untilj=0
Chương 7: Mạng và các chê đoơ địa chư 95 Trongđó bước3 cótheơlàmnhưsau:
Sum[j]=0 i=1
FOR5timesDO
Sum[j]=Sum[j]+Score[i,j] i=i+1
END_FOR
Chươngtrìnhcótheơviêtnhưsau:
TITLE PGM7_4:CLASSAVERAGE .MODEL SMALL .STACK 100H .DATA FIVE DB 5 SCORES DW 67,45,98,33 ;MARY DW 70,56,87,44 ;SCOTT DW 82,72,89,40 ;GEORGE DW 80,67,,95,50 ;BETH DW 78,76,92,60 ;SAM AVG DW 5 DUP (0) .CODE MAINPROC MOV AX,@DATA MOV DS,AX ;J=4 REPEAT:
MOV SI,6 ;SI chư đêncoơtthứ4
XOR BX,BX ;BXchưhàng thứnhât XOR AX,AX ;AXchứatoơngtheocoơt ;Toơngđieơmtređncoơtj
FOR:
ADD AX,SCORES[BX+SI]
ADD BX,8 ; BXchưđênhàngthứ2 LOOPFOR
;end_for
;tínhtrungbình coơtj
XOR DX,DX ;xoáphaăncaocụasôbịchia(DX:AX) DIV FIVE ;AX=AX/5
SUB SI,2 ;đêncoơttiêp ;untilj=0
JNL REPEAT
Chương 7: Mạng và các chê đoơ địa chư 96 ;DOSEXIT
MOV AH,4CH INT 21H
MAIN ENDP
END MAIN
SaukhibieđndịchchươngtènhcótheơdùngDEBUGđeơcháyvàxemkêtqụa baỉngleơnhDUMP.