daily pastebin goal
84%
SHARE
TWEET

Untitled

a guest Oct 8th, 2018 126 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     .8086
  2.     .model compact
  3.     .stack 256
  4.     .data
  5. arr1 db '123456';Массив1
  6. arr2 db '123456' ;Массив2
  7. result db '0'
  8. lenarr1 dw 6 ;Размер массива 1
  9. lenarr2 dw 6 ;Размер массива 2
  10.     .code
  11.     assume ds:@data, ss:@stack
  12.    
  13.  
  14. ;-------------------------------------Макрос сравнения массивов
  15. COMPARE macro arr1,arr2,lenarr1,lenarr2,result
  16. local НЕ_РАВНЫ,EXIT
  17. cld ;Установка флага DF в 0
  18.  
  19. mov cx,lenarr1
  20. cmp cx,lenarr2
  21. jne НЕ_РАВНЫ ;Сравнение длин массивов
  22. cld
  23. mov si,offset arr1
  24. mov di,offset arr2
  25. repe cmpsb       ;сравнивать, пока равны
  26. jnz НЕ_РАВНЫ    ;если не конец цепочки, то встретились разные элементы
  27. mov result,'1'     ;Результат 1
  28. jmp EXIT
  29.  
  30. НЕ_РАВНЫ:;-----------------------------Если массивы не равны
  31. mov result,'0' ;Результат 0
  32. jmp EXIT
  33.    
  34. EXIT:;--------------------------------Завершение работы макроса
  35. endm
  36.  
  37.  
  38. main:
  39.  mov ax, @data ; ????????????? ??????? ??????
  40.  mov ds, ax
  41.  
  42.  mov ax, @stack; ????????????? ??????? ?????
  43.  mov ss, ax
  44.  
  45. ;*Инициализация сегмента данных в программе*
  46. ;*Вызов макроса
  47.  COMPARE arr1,arr2,lenarr1,lenarr2,result
  48.  mov ax,'1' ;Занесение результата в AX для вывода
  49.  int 21h
  50.  ret
  51.  END main
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand