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

Вывести матрицу любого размера (исправить код)

13.10.2012, 21:05. Показов 682. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем я делаю лабораторную: вывести матрицу любого размера(я использую для хранения размерности bx и сх) в любом месте экрана, начиная с любого симола. И у меня появилась ошибка.
У меня при запуске скомпилированной программы вылетает ошибка "... Процессор NTVDM обнаружил недопустимую инструкция ...". Дело в том, что пошагово в дебаггере программа работает без проблем и я просто не могу понять в чем причина.

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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
.model small
.stack 100
.data
    BUFR db 14h,0,13h dup(?)
    string db "Gorodeckij N.V. 107221",0Dh,0Ah,'$'             
    
.code
begin:
    mov ax, @data
    mov ds,ax
 
 
 
    ;ввести размерность массива
    mov bx,03h
    mov cx,03h
    mov si,bx
    mov di,si
    mov ax,bx
    mul cx
    mov cl,al
 
 
 
    ;перевести на след. строку
    mov ax,0200h
    mov dl,0dh
    int 21h
    mov dl,0ah
    int 21h
    
    mov ch,00
    mov sp,0000
    ;собсна сам вывод матрицы в бп+2 число на 1 больше чем позиция первого символа
    mov ds:[42h],024fh
    mov ds:[40h],0930h
 
    ;поставіть курсор на 2 строку
    push dx
    mov ax,0200h
    ;позіція первого сімвола
    mov dx,024eh
    mov ds:[46h],dx
    int 10h 
    mov di,0000
 
 
m_loop: mov ax,ds:[40h]
    cmp dl,4fh
    jz next
    push cx
    mov bx,0000h
    mov bl,0ch
    mov cx,0001h
    int 10h ;вывод на экран символа
    pop cx
    inc bp
    inc dl
    inc ch
    dec cl
    inc ax
    mov ds:[40h],ax
    cmp dl,4fh
    jz next
 
    ;нужно перейти на след. позицию
 
    push dx
 
    mov dx,ds:[42h]
 
    
    mov ax,0200h
    int 10h
    inc dl
    inc dl
    inc di
    inc di
    mov ds:[42h],dx
 
    mov dl,32
    int 29h
    mov ax,ds:[40h]
    pop dx
    ;div
    push dx
    mov dx,0000h
    mov dl,ch
    mov ax,dx
    pop dx
    mov bx,si
    div bl
    cmp ah,00h
    JNZ cont
 
    ;ппереввод строки
    mov ax,0200h
    add ds:[42h],0100h
    sub ds:[42h],di
    mov dl,0dh
    int 21h
    mov dl,0ah
    int 21h
    mov dx,ds:[42h]
    dec dx
    int  10h
    mov di,0000
    jmp cont
 
 
next:   mov di,0000h
    mov ds:[44h],di ;халтурка для наращивания номера символа
    mov ds:[44h],bp
    mov di,si
    sub di,ds:[44h]
    add ax,di
    sub cx, di
    mov dx, ds:[46h]
    inc dh
    mov ds:[46h],dx
    mov ds:[40h],ax
    mov ax,0200h
    int 10h
    cmp cl,00h
    jz m_exitloop
    mov bp,0000h
    jmp  m_loop
 
cont:   dec cl
    jz m_exitloop
    jmp m_loop
    m_exitloop:
 
    
    
 
 
    ;intput string
    mov ah,0ah
    lea dx,BUFR
    int 21h 
 
    
    mov ax,04c00h
    int 21h
 
 
end begin
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.10.2012, 21:05
Ответы с готовыми решениями:

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

Построить матрицу любого размера и с помощью определенной формулы
Доброго времени суток дамы и господа. Никогда не любил массивы, но решил подтянуть свои знания по...

Вывести квадратную матрицу любого размера и поменять местами элементы массива над главной диагональю с элементами массива под главной диагональю
Вывести квадратную матрицу любого размера и поменять местами элементы массива над главной...

Код для простейшей программы деления и слияния любого файла на любое количество частей разного размера
Уважаемое сообщество!!! Необходим код для простейшей программы деления и слияния любого файла на...

0
13.10.2012, 21:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2012, 21:05
Помогаю со студенческими работами здесь

Транспонировать и вывести матрицу заданного размера
С помощью процедуры обработки матрицы с параметром процедурного типа ввести, транспонировать и...

Вывести квадратную матрицу указанного пользователем размера
Помогите пожалуйста составить программу, которая печатает на экране квадратную матрицу, размерность...

Произведение вектора на матрицу(исправить код программы)
Найти произведение вектора на матрицу. input(a1) 3 2 1 2...

Модули: ввести, транспонировать и вывести матрицу заданного размера
очень нужна помощь, помогите кто знает пожалуйста


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

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