Advertisement
ZOOOO

Untitled

Dec 19th, 2015
3,494
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. .MODEL SMALL
  2. .STACK 100h
  3. .DATA
  4. DAN db 3Bh,20h,0Dh,32h,0A1h,24h,0A0h,0Dh,0,0A2h,20h
  5. db 0B0h,40h,24h,0E1h,0Dh,0,24h,3Bh,30h,0C0h,0Dh
  6. db 20h,97h,3Bh,83h,0,0A0h,20h,0D0h,27h,20h,0C6h
  7. db 91h,0,20h,0FEh,3Bh,90h,0,3Bh,24h,17h,20h,24h
  8. ZERO db 'СУММА РАВНА НУЛЮ',0ah,0dh,24h
  9. GREAT db 'СУММА БОЛЬШЕ НУЛЯ',0ah,0dh,24h
  10. LESS db 'СУММА МЕНЬШЕ НУЛЯ',0ah,0dh,24h
  11. NET db 'КОД ПPОБЕЛА НЕ НАЙДЕН',0ah,0dh,24h
  12. .code
  13. start:
  14. ;инициализируем адрес сегмента данных
  15. mov ax,@Data
  16. mov ds,ax
  17. ;поиск начального элемента в DAN
  18. mov cx,3 ;счетчик внешних циклов
  19. mov dx,64 ;счетчик вложенных циклов
  20. lea si,DAN ;нач. адрес данных
  21. dec si
  22. ;начало внешнего цикла
  23. EXT: push cx ;сохранение сч.внешних циклов
  24. mov cx,dx ;загрузка сч.вложенных циклов
  25. ;вложенный цикл
  26. LOC: inc si ;указатель - на следующий байт
  27. cmp byte ptr [si],32 ;код пробела?
  28. loopne LOC ;повторять,пока нет
  29. ;продолжение внешнего цикла
  30. jne NO ;код пробела не найден
  31. mov dx,cx ;сч.вложенных циклов - в dx
  32. pop cx ;восстановление сч.внешних циклов
  33. loop EXT ;повторять,пока не найден 3-й пробел
  34. ;сложение 4 элементов
  35. mov cx,4 ;количество слагаемых
  36. sub bx,bx ;очистка аккумулятора
  37. clc ;и переноса
  38. A: inc si ;указатель - на следующий байт
  39. mov al,byte ptr [si]
  40. cbw ;pасшиpение знака
  41. add bx,ax
  42. loop A
  43. ;вывод сообщения о результате
  44. jnz NZ ;переход, если сумма не равна нулю
  45. lea dx,ZERO ;вывод сообщения о нулевой
  46. mov ah,9h ;сумме
  47. int 21h
  48. jmp FIN
  49. NZ: jg GR ;переход, если сумма > 0
  50. lea dx,LESS ;вывод сообщения об
  51. mov ah,9h ;отрицательной сумме
  52. int 21h
  53. jmp FIN
  54. GR: lea dx,GREAT ;вывод сообщения о
  55. mov ah,9h ;положительной сумме
  56. int 21h
  57. jmp FIN
  58. NO: lea dx,NET ;вывод сообщения
  59. mov ah,9h ;"пробел не найден"
  60. int 21h
  61. FIN: mov ax,4c00h ;выход из программы
  62. int 21h
  63. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement