Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 10.02.2010
Сообщений: 36
1

Поменять местами столбцы матрицы с номерами N и M

17.11.2011, 22:05. Показов 4541. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем здравствуйте! У меня к вам, форумчане, есть вопросик небольшой. Простите, если он окажется глупым!
Мне надо поменять местами столбцы с номерами N и M. Эти числа объявляются в сегменте данных. Я их заношу в di и si
mov di,n
mov si,m

ПОЧЕМУ ОНИ НЕ МЕНЯЮТСЯ? стоит мне просто вместо N M подставить конкретные числа, то всё проходит прекрасно!
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
52
53
54
.486                        
model small
 
; описание сегмента стека
Stk SEGMENT STACK use16
    ASSUME ss:Stk
    db  100h dup(0)
Stk ENDS
 
; описание сегмента данных
Data    SEGMENT use16
    ASSUME ds:Data
n   dw  50
m   dw  3
;Strk   db  7 dup(0),0
Data    ENDS
        
; описание сегмента кода
Code SEGMENT use16
    ASSUME cs:Code
 
start:
    mov         ax, 0b800h      ;Загрузка в AX адреса сегмента видеобуфера 
    mov         es, ax      ;Установка ES на видеобуфер
    xor         ax, ax      ;Очистка AX
    mov     cx, 25      ;Количество повторений
    
    mov     di,n
    ;mov        di,50
    shl     di,1
    
    mov     si,m
    ;mov        si,3
    shl     si,1
 
MyLoop:
    mov     al,es:[si]
    mov     ah,es:[di]
    mov     es:[si], ah
    mov     es:[di], al
 
    add     si,160
    add     di,160
    loop        MyLoop
 
next:       
    in      al, 60h
    cmp     al,1
    jne     next
    mov     ax, 4c00h
    int     21h
 
Code    ENDS
end start
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2011, 22:05
Ответы с готовыми решениями:

Поменять местами столбцы матрицы с номерами 0 и 1, 2 и 3, 4 и 5 и т
3. Дан двумерный статический массив действительных чисел размером N1xN2. Поменять местами столбцы...

Поменять местами столбцы матрицы с номерами m и n
Даны два целых числа m и n и матрица размера a x b. Поменять местами столбцы матрицы с номерами m и...

Поменять местами столбцы матрицы с номерами K1 и K2
Дана матрица размера M×N и целые числа K1 и K2 (1≤K1<K2≤N). Поменять местами столбцы матрицы с...

Поменять местами столбцы матрицы с номерами K1 и K2
Дана матрица размера M × N и целые числа K1 и K2 (1 ≤ K1 < K2 ≤ N). Поменять местами столбцы...

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
17.11.2011, 22:16 2
Лучший ответ Сообщение было отмечено volvo как решение

Решение

Цитата Сообщение от Галочка Громова Посмотреть сообщение
Эти числа объявляются в сегменте данных.
А откуда компилятор знает, как обращаться к сегменту данных? DS кто будет настраивать? Вот и получается, что в SI/DI запишется мусор, а не данные из m, n

Assembler
1
2
mov ax, data
mov ds, ax
перед тем, как устанавливать регистр ES - должно решить проблему.
1
1 / 1 / 0
Регистрация: 10.02.2010
Сообщений: 36
17.11.2011, 22:28  [ТС] 3
Огромное спасибо за объяснение и помощь!!!=)))
0
17.11.2011, 22:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2011, 22:28
Помогаю со студенческими работами здесь

Поменять местами столбцы матрицы с номерами m1 и m2
Составить программу на Паскале. Дан двухмерный массив, заполненный слу-чайными числами. Поменять...

Поменять местами столбцы матрицы с номерами К1 и К2
Дана матрица размера M на N и целые числа К1 и К2 (1<=K1<K2<=N). Поменять местами столбцы матрицы с...

В матрице поменять местами столбцы с номерами 3 и n-2
В данной действительности матрице размера n x m (n ≥ 3, m ≥ 3) поменять местами ...

Двухмерный массив. Поменять местами столбцы с номерами P и Q
Помогите решить!!! В заданной матрице A(N,M) поменяйте местами столбцы с номерами P и Q....


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

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