Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
14 / 14 / 5
Регистрация: 10.02.2010
Сообщений: 72

Двумерные массивы

05.04.2010, 14:41. Показов 1765. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Представить по образцу
Название: 2010-04-053.jpg
Просмотров: 331

Размер: 6.8 Кб

Вот код программы, нужна ваша помощь!
C
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include "iostream"
#define N 10
 
int _tmain(int argc, _TCHAR* argv[])
{
        setlocale(LC_ALL,"Russian");
        int i,j,c;
        static int a[N][N];
        static int mas[N][N];
        for (i=0;i<N ;i++)
        {
          c=1;
          for (j=i; j<N;j++)
                {
                   mas[i][j]=c;
                   c++;
                }
        }
        printf("Вывод на C \n\n");
        for (i=0;i<N ;i++)
          {
          for (j=0; j<N;j++)
             printf("%d ",mas[i][j]);
          printf("\n");
          }
    _asm
    {
        mov eax,0
        mov i,eax
for1:
        mov ebx,1
        mov c,ebx
 
        mov eax,i
        mov j,eax
for2:
 
        lea edx,a
        mov esi,i
        mov edi,j
        mov eax,a[esi][edi]
        mov eax,c
        inc c
 
 
        inc j
        mov eax,N
        cmp j,eax
        jl for2
 
 
        inc i
        mov eax,N
        cmp i,eax
        jl for1
    }
    printf("\n");
    for (i=0;i<N ;i++)
          {
     for (j=0; j<N;j++)
          printf("%d ",a[i][j]);
          printf("\n");
          }
        getchar();
        return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.04.2010, 14:41
Ответы с готовыми решениями:

Двумерные массивы
Нужно написать прогу на паскале с ассемблеровской вставкой...программа на паскале готова,а вот со вставкой помогите,прошу... В матрице...

Табулирование функции и поиск данных. Одномерные массивы. Двумерные массивы
Вычислить сумму первых четырех отрицательных элементов. В соответствии с п. 5.16 правил &quot;Запрещено создавать темы с множеством...

двумерные массивы!
Разработать алгоритм и программу обработки матриц с небольшим количеством строк или столбцов: Для матрицы из 2 строк и 8 столбцов...

4
69 / 74 / 0
Регистрация: 15.12.2008
Сообщений: 302
05.04.2010, 15:46
Assembler
1
2
3
                mov esi,i
                mov edi,j
                mov eax,a[esi][edi]
неверная адресация
Assembler
1
2
3
4
5
6
7
mov esi,i
mov eax,N
mul esi
mov eax,esi
mov edi,j
add esi,edi
mov eax,a[4*esi]
как-то так
1
14 / 14 / 5
Регистрация: 10.02.2010
Сообщений: 72
05.04.2010, 15:57  [ТС]
Почемуто не работает, Выводятся нули



C
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include "iostream"
#define N 10
 
int _tmain(int argc, _TCHAR* argv[])
{
        setlocale(LC_ALL,"Russian");
        int i,j,c;
        static int a[N][N];
        static int mas[N][N];
        for (i=0;i<N ;i++)
        {
          c=1;
          for (j=i; j<N;j++)
                {
                   mas[i][j]=c;
                   c++;
                }
        }
        printf("Вывод на C \n\n");
        for (i=0;i<N ;i++)
          {
          for (j=0; j<N;j++)
             printf("%d ",mas[i][j]);
          printf("\n");
          }
    _asm
    {
        mov eax,0
        mov i,eax
for1:
        mov ebx,1
        mov c,ebx
 
        mov eax,i
        mov j,eax
for2:
 
        lea edx,a
        mov esi,i
        mov eax,N
        mul esi
        mov eax,esi
        mov edi,j
        add esi,edi
        mov eax,a[4*esi]
        mov eax,c
        inc c
 
 
        inc j
        mov eax,N
        cmp j,eax
        jl for2
 
 
        inc i
        mov eax,N
        cmp i,eax
        jl for1
    }
       printf("\nНа Ассемблере\n\n");
     for (i=0;i<N ;i++)
          {
     for (j=0; j<N;j++)
          printf("%d ",a[i][j]);
          printf("\n");
          }
        getchar();
        return 0;
}
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
05.04.2010, 16:27
Code
1
2
mul esi
mov eax,esi   ; ---> перемещение не в ту сторону
Code
1
2
mov eax,a[4*esi]   ; ---> перемещение не в ту сторону
mov eax,c   ; ---> а эта строка не совсем на месте
1
69 / 74 / 0
Регистрация: 15.12.2008
Сообщений: 302
05.04.2010, 16:51
C++
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
52
53
54
55
56
57
58
59
60
61
62
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include "iostream"
#define N 10
 
int _tmain(int argc, _TCHAR* argv[])
{
                setlocale(LC_ALL,"Russian");
        int i,j,c;
                static int a[N][N];
        static int mas[N][N];
        for (i=0;i<N ;i++)
        {
          c=1;
          for (j=i; j<N;j++)
                {
                   mas[i][j]=c;
                   c++;
                }
        }
                printf("Вывод на C \n\n");
        for (i=0;i<N ;i++)
          {
          for (j=0; j<N;j++)
             printf("%d ",mas[i][j]);
          printf("\n");
          }
        _asm
        {
                mov i,0
for1:
                mov c,1
 
                mov eax,i
                mov j,eax
for2:
                mov eax,N
                mul i
                mov esi,eax
                add esi,j
                mov eax,c
        mov a[4*esi],eax
                inc c
                inc j
                cmp j,N
                jl for2
 
                inc i
                cmp i,N
                jl for1
        }
           printf("\nНа Ассемблере\n\n");
         for (i=0;i<N ;i++)
          {
     for (j=0; j<N;j++)
          printf("%d ",a[i][j]);
          printf("\n");
          }
        getchar();
        return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.04.2010, 16:51
Помогаю со студенческими работами здесь

Двумерные массивы
Ввести в программе имя и фамилию, и сделать так, чтобы они поменялись местами. Заранее спасибо! :)

двумерные массивы
помогите доделать задачку. задание:Определить, является ли данный даумерный массив целых чисел размером n×n магическим квадратом, т.е....

Массивы двумерные
Дана целочисленная матрица порядка n x m, каждый элемент aij которой равен 0, 1, 2 или 3. Определить количество четверок ai j, ai+1,j,...

двумерные массивы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication2 { ...

Двумерные массивы
сформировать квадратную матрицу порядка n по заданному образцу: 100...001 110...011 111...111 ............ 110...011 100...011


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru