1 / 1 / 0
Регистрация: 15.09.2015
Сообщений: 88
1

Работа с матрицами

07.06.2016, 23:26. Показов 964. Ответов 5
Метки нет (Все метки)

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

Работа с матрицами
Задать с клавиатуры матрицу размером 4 на 4. Найти сумму элементов каждой строки строки матрицы и...

Работа с матрицами
Здравствуйте!!! В ассемблере, грубо говоря, я - чайник, поэтому прошу помощи у вас. У меня даны 3...

Работа с матрицами
Здравствуйте, а вы бы могли мне помочь, вот у меня есть процедура, которая должна суммировать...

Работа с матрицами
Помогите написать программу что бы можно было выбирать размерность матрицы(квадратная) и...

5
Эксперт Hardware
Эксперт Hardware
6100 / 2344 / 390
Регистрация: 29.07.2014
Сообщений: 3,107
Записей в блоге: 4
08.06.2016, 05:51 2
Vesta Transi, нужно найти под/строку в строке что-ли? Приведи пример матрицы..
0
3406 / 1825 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
08.06.2016, 09:31 3
Vesta Transi, Она и будет возвращать ноль, т.к. см. метку С4, перед циклом всегда сбрасывает ЕАХ в ноль.
0
1 / 1 / 0
Регистрация: 15.09.2015
Сообщений: 88
08.06.2016, 14:33  [ТС] 4
R71MT, нужно определить, есть ли строка в матрице, которая содержит только нечетные числа
Например для матрицы
3 7 9 11
2 3 8 4
1 7 9 12
условие выполняется, так как в первой строке все числа нечетные
А вот для матрицы
1 2 7 9
2 4 9 1
3 1 7 4
Условие не выполняется, т.к в каждой строке присутствует хотя бы одно четное число
0
3406 / 1825 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
08.06.2016, 15:30 5
Vesta Transi,
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
model   tiny,pascal
.code
org 100h
start:
    mov ax,3
    mov bx,4
    lea cx,arrayA
    call    h,cx,ax,bx
    call    o,ax
    mov ax,3
    mov bx,4
    lea cx,arrayB
    call    h,cx,ax,bx
    call    o,ax
    ret 
h   proc    a:word,b:word,c:word
uses    cx,dx,si
    mov si,a
    mov cx,b
@@01:   push    cx
    mov cx,c
    xor dx,dx
@@02:   lodsw
    and ax,1
    add dx,ax
    loop    @@02
    pop cx
    mov ax,c
    sub ax,dx
    jz  @@03
    loop    @@01
@@03:   ret
h   endp
o   proc    a:word
    lea dx,dbNo
    or  ax,ax
    jnz @@04
    lea dx,dbYes
@@04:   mov ah,9
    int 21h
    ret
dbNo    db  10,13,'No$'
dbYes   db  10,13,'Yes$'
o   endp
arrayA  dw  3, 7, 9, 11
    dw  2, 3, 8, 4
    dw  1, 7, 9, 12
arrayB  dw  1, 2, 7, 9
    dw  2, 4, 9, 1
    dw  3, 1, 7, 4
    end start
Dos, Tasm, com-файл
0
Эксперт Hardware
Эксперт Hardware
6100 / 2344 / 390
Регистрация: 29.07.2014
Сообщений: 3,107
Записей в блоге: 4
08.06.2016, 15:33 6
Vesta Transi, возьми за основу прошлый код, только вместо поиска наибольшего организуй проверку на чётность.
0
08.06.2016, 15:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2016, 15:33
Помогаю со студенческими работами здесь

Работа с матрицами
Подскажите, пожалуйста, как найти минимальное значение матрицы, но отличное от нуля. (MathCAD Prime...

Работа с матрицами в С
Здравствуйте. Помогите, пожалуйста, с заданиями: Дана действительная матрица размерности n*n. ...

Работа с матрицами
Мне необходимо заполнить матрицу размера 9 на 9 случайными числами и повернуть ее на 180 градусов....

Работа с матрицами
Здравствуйте! Помогите написать программы. Заранее, спасибо! Дана целочисленная матрица ...

Работа с матрицами
Даны массивы A , B , C . Переставить элементы в них таким образом, чтобы слева подряд были записаны...

работа с матрицами
Помогите, пожалуйста, разобраться с заданием. 1-3 пункта вроде как знаю как решать и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru