Английский = a + d + f + g = 28. Немецкий = b + e + f + g = 30. Французский = c + d + e + f = 42. Английский и немецкий = g + f = 8. Английский и французский = d + f = 10. Немецкий и французский = f + e = 5. Все три языка = f = 3.
А) Чтобы найти учеников, изучающих только английский, нужно вычесть "d + f + g". d = (d + f) - f = 10 - 3 = 8. g = (g + f) - f = 8 - 3 = 5. Английский = 28 - 13 = 15.
Французский = 42 - (d + e + f). e = (f + e) - f = 5 - 3 = 2.
42 - (8 + 2 + 3) = 42 - 13 = 29.
Немецкий = 30 - (e + f + g) 30 - (2 + 3 + 5) = 30 - 10 = 20.
Б) Складываем тех, кто знает английский/немецкий/французский и вычитаем 100.
.MODEL small .STACK 256 .code start: MOV BL,3 MOV AL,2 MUL BL ; вывод содержимого регистра ax на экран mov bl,10 mov cx,0 b: div bl ; в al - частное, ah - остаток add ah,48 ; в ah - код младшей цифры push ax mov ah,0 inc cx cmp al,0 jne b ; вывод на экран через BIOS c: pop ax mov al,ah mov ah, 0eh int 10h ; вывод символа dec cx jnz c ; ожидание ввода с клавиатуры mov ah,01h int 21h ; завершение программы mov ax,4C00h int 21h END start