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

Вывод побочной диагонали

08.04.2012, 15:58. Показов 3195. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно написать com программу, которая позволит ввести двумерный массив 5х5. И вывести с него побочную диагональ
====
Как ввести массив я знаю вот сделал... а как вывести побочную диагональ, придумать не могу, помогите пожалуйста.
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
55
56
57
58
59
model   tiny
.code
.startup
    prob macro      
        mov dl,20h  
        mov ah,02h
        int 21h
        endm    
 
    write macro string          
        mov dx,offset string    
        mov ah,09h      
        int 21h         
        endm
 
    index macro rg,number   
        inc rg      
        mov ax,rg   
        mul number  
        mov bx,ax   
        endm
 
    write str1  
    
mov di,0    
mov si,0
    mov bx,0        
    mov cx,5        
 
excl:           
mov dl,0ah  
    mov ah,02h  
    int 21h 
    mov dl,0dh  
    mov ah,02h
    int 21h 
    push cx 
    mov cx,5    
    mov si,0    
    incl:
    mov ah,01h      
    int 21h         
    mov mas[bx][si],ax   
    prob        
    inc si          
    loop incl   
    pop cx          
    index di,num1       
  loop excl 
 
    mov ah, 01h
    int 21h 
    mov ax, 4c00h
    int 21h
ret
    mas dw 25 dup(0)        
    str1 db "Enter massiv 5x5: $"       
    num1 dw 10      
end
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2012, 15:58
Ответы с готовыми решениями:

Вывод строки по диагонали
приложил скрин, там видно что немного не так работает )) .data message db 'Khalaim' .code...

Вывод побочной диагонали, ассемблер
Здравствуйте. Столкнулась с такой проблемой: при выполнение кода на ассемблере, выбивает ошибку:...

Ввод матрицы и вывод ее побочной диагонали
Написать exe-программу, в которой нужно ввести двухмерный массив 4х4. И вывести с него побочную...

Найти сумму элементов побочной диагонали
Всем доброго дня. Начал изучение ассемблера, но запнулся на задании. Помогите плз В квадратной...

13
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,784
08.04.2012, 18:01 2
D1K,
x = 1 2 3 4 5
y = 5 4 3 2 1
0
1 / 1 / 1
Регистрация: 26.04.2011
Сообщений: 36
08.04.2012, 18:12  [ТС] 3
Цитата Сообщение от IOAN Посмотреть сообщение
D1K,
x = 1 2 3 4 5
y = 5 4 3 2 1
что это? чем оно мне поможет? тем более нумерация начинается с 0 в asmе... что такое побочная диагональ я знаю... мне нужно вывести елементы (0,4) , (1,3) , (2,2) , (3,1) , (4,0)
0
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,784
08.04.2012, 18:22 4
D1K, прочти здесь как получить адрес
0
1 / 1 / 1
Регистрация: 26.04.2011
Сообщений: 36
08.04.2012, 18:37  [ТС] 5
Помогите пожалуйста дописать код, а то я не понимаю как их вывести по этим адресам, как их использовать ...
0
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,784
08.04.2012, 18:57 6
D1K, добавь куда нужно.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mov si,0;строки
mov di,4;столбцы
mov bx,5
next:
mov ax,si
mul bx
add ax,di
add ax, offset massiv;
mov dl,[ax]
;Здесь делай вывод
inc si
dec di
cmp si,5
jb next
1
1 / 1 / 1
Регистрация: 26.04.2011
Сообщений: 36
08.04.2012, 19:28  [ТС] 7
Спасибо но что то неработает, вот я добавил но в строке 62 выдает Ilegal indexing mode что то сдесь не так:
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
model   tiny
.code
.startup
    prob macro      
        mov dl,20h  
        mov ah,02h
        int 21h
        endm    
 
    write macro string          
        mov dx,offset string    
        mov ah,09h      
        int 21h         
        endm
 
    index macro rg,number   
        inc rg      
        mov ax,rg   
        mul number  
        mov bx,ax   
        endm
 
    write str1  
    
mov di,0    
mov si,0
    mov bx,0        
    mov cx,5        
 
excl:           
mov dl,0ah  
    mov ah,02h  
    int 21h 
    mov dl,0dh  
    mov ah,02h
    int 21h 
    push cx 
    mov cx,5    
    mov si,0    
    incl:
    mov ah,01h      
    int 21h         
    mov mas[bx][si],ax   
    prob        
    inc si          
    loop incl   
    pop cx          
    index di,num1       
  loop excl 
 
 
write str2
mov si,0;строки
mov di,4;столбцы
mov bx,5
next:
mov ax,si
mul bx
add ax,di
add ax, offset mas;
mov dl,[ax]
;Здесь делай вывод
inc si
dec di
cmp si,5
jb next
 
    mov ah, 01h
    int 21h 
    mov ax, 4c00h
    int 21h
ret
    mas dw 25 dup(0)        
    str1 db "Enter massiv 5x5: $"  
    str2 db 10,13,"Rezult: ",10,13,'$'     
    num1 dw 10      
end
0
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,784
08.04.2012, 19:40 8
Цитата Сообщение от D1K Посмотреть сообщение
mov dl,[ax]
;Здесь делай вывод
Assembler
1
2
mov dl,byte ptr ax;вот так
;Здесь делай вывод в консоль.
0
1 / 1 / 1
Регистрация: 26.04.2011
Сообщений: 36
08.04.2012, 19:46  [ТС] 9
IOAN, теперь другая ошибка в этой строчке(( Оperand types do not match
0
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,784
08.04.2012, 19:51 10
D1K, попробуй так mov dl, byte ptr [ax]; пробуй разные варианты. У меня нет возможности скомпилировать и проверить под DOS.
0
1 / 1 / 1
Регистрация: 26.04.2011
Сообщений: 36
08.04.2012, 20:08  [ТС] 11
что то ничего не выходит... а что эта строчка делает?...
вот эту часть в цикле понять не могу, можешь объяснить плиз?
mov ax,si
mul bx
add ax,di
add ax, offset massiv;
mov dl,[ax]
0
Ушел с форума
Автор FAQ
16339 / 7658 / 1076
Регистрация: 11.11.2010
Сообщений: 13,704
09.04.2012, 05:59 12
D1K, косвенная адресация через регистр ах [ax] в 16-разрядной моде не применяется, для косвенной адресации можно использовать только регистры BX, BP, SI, DI и их комбинации [BX+SI+число], [BP+SI+число], [BX+DI+число], [BP+DI+число]
0
0 / 0 / 0
Регистрация: 01.03.2015
Сообщений: 4
01.03.2015, 12:27 13
Здравствуйте. Я новичок в TASM. Пыталась подправить код так, чтобы организовать правильный вывод побочной диагонали, но так и не смогла...

На данный момент выводит просто пустую строчку вместо строки побочной диагонали... Помогите, пожалуйста, если не трудно. Можно или главную или побочную. С комментариями, если можно. Буду очень благодарна.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
write str2
mov si,0;строки
mov di,4;столбцы
mov bx,5
next:
mov ax,si
mul bx
add ax,di
add ax, offset mas;
mov dl,[bx]
;Здесь делай вывод
inc si
dec di
cmp si,5
jb next
0
0 / 0 / 0
Регистрация: 01.03.2015
Сообщений: 4
02.03.2015, 22:06 14
И что, никто не может мне помочь?
0
02.03.2015, 22:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2015, 22:06
Помогаю со студенческими работами здесь

Отсортировать массив по возрастанию элементов побочной диагонали
data segment ;opisanie segmenta dannih msg db 'Vvedite razmer massiva! $';stroka prgilashenia...

Обмен местами главной и побочной диагонали квадратной матрицы
помогите решить! программа меняет местами главную и побочную диагональ квадратной матрицы М*М,...

Найти количество отрицательных нечетных элементов матрицы на побочной диагонали
Дана квадратная матрица А размерности nxn. Найти количество отрицательных нечетных элементов...

Найти максимальные элементы на главной и побочной диагонали и поменять их местами
Дан массив элементов 4х5. Найти максимальные элементы на главной и побочной диагонали и поменять их...


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

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