Сравнение массивов A и B. Элементы в результирующем массиве равны: 0 - при A[i]<>B[i], A[i] - при A[i]=B[i] - Assembler

Узнай цену своей работы

Формулировка задачи:

Сравнение производить не по 2 цифры, а по одной!
Листинг программы
  1. sts SEGMENT PARA STACK 'Stack'
  2. DW 32 DUP (?)
  3. sts ENDS
  4. data SEGMENT
  5. mes1 db 'Enter',0Ah,0Dh,'$'
  6. mes2 db '1st',0Ah,0Dh,'$'
  7. mes3 db 10,13,'2nd',0Ah,0Dh,'$'
  8. mes4 db 10,13,'Rezult ',0Ah,0Dh,'$'
  9. famm db 21,?
  10. fam dw 10 dup (?)
  11. tabss db 21,?
  12. tabs dw 10 dup (?)
  13. dim dw 10 dup (?)
  14. data ends
  15. text SEGMENT
  16. assume CS:text, DS:data, SS:sts
  17. main proc far
  18. ;-----Block 1-----------
  19. push DS
  20. xor AX,AX
  21. push ax
  22. ;-----Block 2-----------
  23. mov ax,data
  24. mov DS,AX
  25. ;-----Block 3-----------
  26. lea DX,mes1
  27. mov AH,09h
  28. int 21h
  29. ;-----Block 4-----------
  30. lea DX,mes2
  31. mov AH,09h
  32. int 21h
  33. ;-----Block 5-----------
  34. lea DX,tabss
  35. mov AH,0Ah
  36. int 21h
  37. ;-----Block 6-----------
  38. lea DX,mes3
  39. mov AH,09h
  40. int 21h
  41. ;-----Block 7-----------
  42. lea DX,famm
  43. mov AH,0Ah
  44. int 21h
  45. ;-----Block 8-----------
  46. mov SI,0
  47. lea DI,dim
  48. mov CX,10
  49. ;-----Block 9-----------
  50. M1:
  51. mov AX,tabs[SI]
  52. mov bx,fam[SI]
  53. cmp AX,BX
  54. je Equal
  55. mov AX,3030h
  56. Equal:
  57. mov [DI],AX
  58. add SI,2
  59. add DI,2
  60. loop M1
  61. ;-----Block 10----------
  62. mov CH,0
  63. mov CL,0
  64. mov DH,25
  65. mov DL,80
  66. mov BH,07
  67. mov AH,06
  68. mov AL,0
  69. int 10h
  70. ;-----Block 11----------
  71. mov AH,02
  72. mov BH,0
  73. mov DX,0
  74. int 10h
  75. ;-----Block 12----------
  76. lea DX,mes4
  77. mov AH,09
  78. int 21h
  79. ;-----Block 13----------
  80. mov CX,5
  81. mov SI,0
  82. M2:
  83. push CX
  84. mov AX,dim[SI]
  85. mov BL,04h
  86. call print
  87. mov AX,dim[SI+2]
  88. mov BL,10h
  89. call print
  90. pop CX
  91. add SI,4
  92. loop M2
  93. ;-----------------------
  94. ret
  95. main endp
  96. ;=======================
  97. print proc
  98. ;-----Block 14----------
  99. push AX
  100. ;-----Block 15----------
  101. mov AH,09
  102. mov BH,0
  103. mov CX,1
  104. int 10h
  105. ;-----Block 16----------
  106. mov AH,03
  107. mov BH,0
  108. int 10h
  109. ;-----Block 17----------
  110. add DL,1
  111. mov AH,02
  112. mov BH,0
  113. int 10h
  114. ;-----Block 18----------
  115. pop AX
  116. xchg AH,AL
  117. ;-----Block 19----------
  118. mov AH,09
  119. mov CX,1
  120. int 10h
  121. ;-----Block 20----------
  122. mov AH,03
  123. mov BH,0
  124. int 10h
  125. ;-----Block 21----------
  126. add DL,2
  127. mov AH,02
  128. mov BH,0
  129. int 10h
  130. ;-----------------------
  131. ret
  132. print endp
  133. text ends
  134. end main

Решение задачи: «Сравнение массивов A и B. Элементы в результирующем массиве равны: 0 - при A[i]<>B[i], A[i] - при A[i]=B[i]»

textual
Листинг программы
  1. sts     SEGMENT PARA STACK 'Stack'
  2.         DW      32 DUP (?)
  3. sts     ENDS
  4.  
  5. data    SEGMENT
  6. mes1    db 'Enter',0Ah,0Dh,'$'
  7. mes2    db '1st',0Ah,0Dh,'$'
  8. mes3    db 10,13,'2nd',0Ah,0Dh,'$'
  9. mes4    db 10,13,'Rezult ',0Ah,0Dh,'$'
  10. famm    db 21,?
  11. fam     db 22 dup (?)
  12. tabss   db 21,?
  13. tabs    db 22 dup (?)
  14. dim     db 20 dup (?)
  15. data    ends
  16.  
  17. text  SEGMENT
  18.       assume    CS:text, DS:data, SS:sts
  19. main  proc      far
  20. ;-----Block 1-----------
  21.       push      DS
  22.       xor       AX,AX
  23.       push      ax
  24. ;-----Block 2-----------
  25.       mov       ax,data
  26.       mov       DS,AX
  27. ;-----Block 3-----------
  28.       lea       DX,mes1
  29.       mov       AH,09h
  30.       int       21h
  31. ;-----Block 4-----------
  32.       lea       DX,mes2
  33.       mov       AH,09h
  34.       int       21h
  35. ;-----Block 5-----------
  36.       lea       DX,tabss
  37.       mov       AH,0Ah
  38.       int       21h
  39. ;-----Block 6-----------
  40.       lea       DX,mes3
  41.       mov       AH,09h
  42.       int       21h
  43. ;-----Block 7-----------
  44.       lea       DX,famm
  45.       mov       AH,0Ah
  46.       int       21h
  47. ;-----Block 8-----------
  48.       mov       SI,0
  49.       lea       DI,dim
  50.       mov       CX,20
  51. ;-----Block 9-----------
  52. M1:
  53.       mov       AL,tabs[SI]
  54.       mov       AH,fam[SI]
  55.       cmp       AL,AH
  56.       je        Equal
  57.       mov       AL,30h
  58. Equal:
  59.       mov       [DI],AL
  60.       inc       SI
  61.       inc       DI
  62.       loop      M1
  63. ;-----Block 10----------
  64.       mov       CH,0
  65.       mov       CL,0
  66.       mov       DH,25
  67.       mov       DL,80
  68.       mov       BH,07
  69.       mov       AH,06
  70.       mov       AL,0
  71.       int       10h
  72. ;-----Block 11----------
  73.       mov       AH,02
  74.       mov       BH,0
  75.       mov       DX,0
  76.       int       10h
  77. ;-----Block 12----------
  78.       lea       DX,mes4
  79.       mov       AH,09
  80.       int       21h
  81. ;-----Block 13----------
  82.       mov       CX,10
  83.       mov       SI,0
  84. M2:
  85.       push      CX
  86.       mov       AL,dim[SI]
  87.       mov       BL,04h
  88.       call      print
  89.       mov       AL,dim[SI+1]
  90.       mov       BL,10h
  91.       call      print
  92.       pop       CX
  93.       add       SI,2
  94.       loop      M2
  95. ;-----------------------
  96.       ret
  97. main  endp
  98. ;=======================
  99. print proc
  100. ;-----Block 14----------
  101. ;      push      AX
  102. ;-----Block 15----------
  103.       mov       AH,09
  104.       mov       BH,0
  105.       mov       CX,1
  106.       int       10h
  107. ;-----Block 16----------
  108.       mov       AH,03
  109.       mov       BH,0
  110.       int       10h
  111. ;-----Block 17----------
  112.       add       DL,1
  113.       mov       AH,02
  114.       mov       BH,0
  115.       int       10h
  116. comment *
  117. ;-----Block 18----------
  118.       pop       AX
  119.       xchg      AH,AL
  120. ;-----Block 19----------
  121.       mov       AH,09
  122.       mov       CX,1
  123.       int       10h
  124. ;-----Block 20----------
  125.       mov       AH,03
  126.       mov       BH,0
  127.       int       10h
  128. ;-----Block 21----------
  129.       add       DL,2
  130.       mov       AH,02
  131.       mov       BH,0
  132.       int       10h
  133. ;-----------------------
  134. *
  135.       ret
  136. print endp
  137. text  ends
  138.       end main

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы