TITLE Prog3_2a ;название программы
.MODEL small ;отводим под стек и под данные по 64Кб
.STACK 100h ;отмечаем начало сегмента стека
.DATA ;отмечаем начало сегмента данных
A DW -5, 3, 9, -4, 5 ;описание массива из 5 элементов
.CODE ;отмечаем начало сегмента кодов
main PROC
mov AX, @data ;копируем адрес
mov DS, AX ;сегмента данных
mov SI, OFFSET A ;заносим в SI начало массива А
mov CX, 4 ;в СХ заносим количество итераций
cld ;устанавливаем прямой порядок обработки массива
mov AX, [SI]
L3:
and AX, 8000h
cmp AX, 8000h
jnz L2 ;проверка на знак, если отриц. то
mov AX, 0
mov [SI], AX
L2:
inc SI ;сдвигаемся по массиву к следующему
inc SI ;элементу
mov AX,[SI] ;заносим в АХ текущий элемент массива
loop L3 ;циклически повторяем все действия
mov AX,4C00h ;выход
int 21h ;из программы
main ENDP
END main
TITLE Prog3_2a ;название программы
.MODEL small ;отводим под стек и под данные по 64Кб
.STACK 100h ;отмечаем начало сегмента стека
.DATA ;отмечаем начало сегмента данных
A DW -5, 3, 9, -4, 5 ;описание массива из 5 элементов
.CODE ;отмечаем начало сегмента кодов
main PROC
mov AX, @data ;копируем адрес
mov DS, AX ;сегмента данных
mov SI, OFFSET A ;заносим в SI начало массива А
mov CX, 4 ;в СХ заносим количество итераций
cld ;устанавливаем прямой порядок обработки массива
mov AX, [SI]
xor BX, BX
L3:
and AX, 8000h
cmp AX, 8000h
jnz L2 ;проверка на знак, если отриц. то
mov AX, 0
mov [SI], AX
inc BX
L2:
inc SI ;сдвигаемся по массиву к следующему
inc SI ;элементу
mov AX,[SI] ;заносим в АХ текущий элемент массива
loop L3 ;циклически повторяем все действия
;Тут в BX - количество положительных элементов массива (если 0 считать положительным)
mov AX,4C00h ;выход
int 21h ;из программы
main ENDP
END main