Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .MODEL SMALL
- .STACK 100h
- .DATA
- DAN db 3Bh,20h,0Dh,32h,0A1h,24h,0A0h,0Dh,0,0A2h,20h
- db 0B0h,40h,24h,0E1h,0Dh,0,24h,3Bh,30h,0C0h,0Dh
- db 20h,97h,3Bh,83h,0,0A0h,20h,0D0h,27h,20h,0C6h
- db 91h,0,20h,0FEh,3Bh,90h,0,3Bh,24h,17h,20h,24h
- ZERO db 'СУММА РАВНА НУЛЮ',0ah,0dh,24h
- GREAT db 'СУММА БОЛЬШЕ НУЛЯ',0ah,0dh,24h
- LESS db 'СУММА МЕНЬШЕ НУЛЯ',0ah,0dh,24h
- NET db 'КОД ПPОБЕЛА НЕ НАЙДЕН',0ah,0dh,24h
- .code
- start:
- ;инициализируем адрес сегмента данных
- mov ax,@Data
- mov ds,ax
- ;поиск начального элемента в DAN
- mov cx,3 ;счетчик внешних циклов
- mov dx,64 ;счетчик вложенных циклов
- lea si,DAN ;нач. адрес данных
- dec si
- ;начало внешнего цикла
- EXT: push cx ;сохранение сч.внешних циклов
- mov cx,dx ;загрузка сч.вложенных циклов
- ;вложенный цикл
- LOC: inc si ;указатель - на следующий байт
- cmp byte ptr [si],32 ;код пробела?
- loopne LOC ;повторять,пока нет
- ;продолжение внешнего цикла
- jne NO ;код пробела не найден
- mov dx,cx ;сч.вложенных циклов - в dx
- pop cx ;восстановление сч.внешних циклов
- loop EXT ;повторять,пока не найден 3-й пробел
- ;сложение 4 элементов
- mov cx,4 ;количество слагаемых
- sub bx,bx ;очистка аккумулятора
- clc ;и переноса
- A: inc si ;указатель - на следующий байт
- mov al,byte ptr [si]
- cbw ;pасшиpение знака
- add bx,ax
- loop A
- ;вывод сообщения о результате
- jnz NZ ;переход, если сумма не равна нулю
- lea dx,ZERO ;вывод сообщения о нулевой
- mov ah,9h ;сумме
- int 21h
- jmp FIN
- NZ: jg GR ;переход, если сумма > 0
- lea dx,LESS ;вывод сообщения об
- mov ah,9h ;отрицательной сумме
- int 21h
- jmp FIN
- GR: lea dx,GREAT ;вывод сообщения о
- mov ah,9h ;положительной сумме
- int 21h
- jmp FIN
- NO: lea dx,NET ;вывод сообщения
- mov ah,9h ;"пробел не найден"
- int 21h
- FIN: mov ax,4c00h ;выход из программы
- int 21h
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement