| Код | Sseg SEGMENT STACK 'stack' DB 256 DUP (?) Sseg ENDS ; Сегмент данных Dseg SEGMENT 'data' mas dw 5, 7, 10 ,22, 30 kol dw 5
Dseg ENDS
; Сегмент кода Cseg SEGMENT 'code' ASSUME CS:Cseg, DS:Dseg, SS:Sseg Main PROC FAR ; настройка сегмента данных PUSH DS ; Занесение DS в стек MOV AX, 0 ; Обнуление AX PUSH AX ; Занесение нуля в стек MOV AX, Dseg ; Настройка DS на сегмент данных MOV DS, AX
MOV CX, kol ;заносим в CX кол-во повторов LEA SI,mas ;заносим в SI адрес первого элемента массива XOR BX,BX ;обнуляем ВХ cycle: MOV AX,[SI] ;заносим в АХ первый элемент CMP AX,20 ;сравниваем первое число с 20 JNA incr ;если оно не больше, то переходим к метке incr CMP AX,50 ;сравниваем число с 50 JNB incr ;если не меньше, то переходим к метке incr INC BX ;в противном случае инкрементируем ВХ incr: ADD SI,2 ;пеерходим к следующему элементу LOOP cycle ;СХ-- ;************************************** ;перед завершением работы программы в bx содержится ;количество элементов массива, удовлетворяющих условие MOV AX, 4C00h int 21h Main ENDP Cseg ENDS END Main
|
|