Пусть в группе 30 студентов, успеваемость группы заложена в следующую структуру (я не знаю под какой ассемблер тебе написать TASM, MASM, FASM или A-86? ну пусть будет TASM)
| Код | USPEV STRUC IndxFam db ?;индекс студента для поиска фамилии Math db ?;оценка по мат*10 (чтобы не связываться с дробями) Rus db ?;оценка по русс*10 Fiz db ?;оценка по физ*10 mediana db ?;ср.балл студента*10 USPEV ENDS 1) Считаем средний балл по группе и средний балл каждого студента mov di,0;для среднего балла группы mov bx,3 mov si,offset table;данные по успеваемости mov cx,30 a1: mov ax,0;очищаем ax mov al,[si.Math] add al,[si.Rus] add al,[si.Fiz] add di,ax;для среднего балла группы div bl mov [si.mediana],al;средний балл студента add si,5;переходим к следующему студенту loop a1;повторяем для всей группы mov dx,0 mov bx,3*30 mov ax,di div bx;расчитали средний балл группы ;в ax средний балл группы 2) вычисляем студентов с высоким средним баллом mov cx,30 mov si,offset table;данные по успеваемости a2: cmp al,[si.media] jna a3 ;по si.IndxFam выводи фамилию на экран или на печать или в файл a3: add si,5 ;переходим к следующему студенту loop a2;повторяем для всей группы
|
остальное доделывай сама/сам |