.model small .stack 256 .data string db 'in array ' sum dw 0 db ' summa chetnih strok$' n equ 3 m equ 3 arr dw 10, 11, 12 dw 10, 11, 12 dw 10, 11, 12 .code Entr: mov AX, @data mov DS, AX xor SI, SI xor BX, BX mov CX, m C_Ext: push CX mov CX,n xor SI,SI C_Int: mov ax,sum add ax,arr[BX][SI] mov sum,ax add si,2 loop C_Int add BX,4*n pop CX loop C_Ext ;d mov ax, [sum] call Show_AX ;завершение программы mov ax, 4C00h int 21h ; выводит число из регистра AX на экран ; входные данные: ; ax - число для отображения Show_AX proc push ax push bx push cx push dx push di mov cx, 10 xor di, di ; di - кол. цифр в числе ; если число в ax отрицательное, то ;1) напечатать '-' ;2) сделать ax положительным or ax, ax jns @@Conv push ax mov dx, '-' mov ah, 2 ; ah - функция вывода символа на экран int 21h pop ax neg ax @@Conv: xor dx, dx div cx ; dl = num mod 10 add dl, '0' ; перевод в символьный формат inc di push dx ; складываем в стэк or ax, ax jnz @@Conv ; выводим из стэка на экран @@Show: pop dx ; dl = очередной символ mov ah, 2 ; ah - функция вывода символа на экран int 21h dec di ; повторяем пока di<>0 jnz @@Show pop di pop dx pop cx pop bx pop ax ret Show_AX endp end Entr