Работа с матрицами - Assembler (223808)

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

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

Здравствуйте Помогите пожалуйста найти ошибку в коде Необходимо вернуть через регистр ax число 0, если в матрице присутствует строка, все элементы которой нечетные числа. Моя программа постоянно возвращает 0
Листинг программы
  1. public _haracterictica
  2. .586
  3. .model flat
  4. .code
  5. _haracterictica proc ;функция near
  6. push ebp
  7. mov ebp,esp ;ebp - указывает на вершину стека
  8. push esi
  9. push ecx
  10. push edi
  11. push ebx
  12. add ebp,8 ;пропускаем в стеке адрес возврата
  13. mov edi,[ebp] ;адрес матрицы(массив указателей на строки)
  14. add edi,4 ;смещение адреса второй строки
  15. mov ecx,[ebp+4] ;размерность
  16. mov ebx,ecx
  17. mov edx,0
  18. c1: push ecx
  19. mov ecx,ebx
  20. mov esi,[edi]
  21. c2: xor eax,eax
  22. mov eax,esi
  23. test eax,1
  24. jnz nechet
  25. jmp c3
  26. nechet:
  27. add esi,4
  28. inc edx
  29. loop c2
  30. c3: pop ecx
  31. dec ebx
  32. add edi,4
  33. cmp edx,4
  34. jz c4
  35. c4: mov eax,0
  36. loop c1
  37. pop ebx
  38. pop edi
  39. pop ecx
  40. pop esi
  41. pop ebp
  42. ret ;возврат данных через регистр eax
  43. _haracterictica endp
  44. end

Решение задачи: «Работа с матрицами»

textual
Листинг программы
  1. model   tiny,pascal
  2. .code
  3. org 100h
  4. start:
  5.     mov ax,3
  6.     mov bx,4
  7.     lea cx,arrayA
  8.     call    h,cx,ax,bx
  9.     call    o,ax
  10.     mov ax,3
  11.     mov bx,4
  12.     lea cx,arrayB
  13.     call    h,cx,ax,bx
  14.     call    o,ax
  15.     ret
  16. h   proc    a:word,b:word,c:word
  17. uses    cx,dx,si
  18.     mov si,a
  19.     mov cx,b
  20. @@01:   push    cx
  21.     mov cx,c
  22.     xor dx,dx
  23. @@02:   lodsw
  24.     and ax,1
  25.     add dx,ax
  26.     loop    @@02
  27.     pop cx
  28.     mov ax,c
  29.     sub ax,dx
  30.     jz  @@03
  31.     loop    @@01
  32. @@03:   ret
  33. h   endp
  34. o   proc    a:word
  35.     lea dx,dbNo
  36.     or  ax,ax
  37.     jnz @@04
  38.     lea dx,dbYes
  39. @@04:   mov ah,9
  40.     int 21h
  41.     ret
  42. dbNo    db  10,13,'No$'
  43. dbYes   db  10,13,'Yes$'
  44. o   endp
  45. arrayA  dw  3, 7, 9, 11
  46.     dw  2, 3, 8, 4
  47.     dw  1, 7, 9, 12
  48. arrayB  dw  1, 2, 7, 9
  49.     dw  2, 4, 9, 1
  50.     dw  3, 1, 7, 4
  51.     end start

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


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

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

11   голосов , оценка 4.182 из 5

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

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

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