Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2010, 16:10   #1
ToKS
Пользователь
 
Регистрация: 17.05.2009
Сообщений: 30
Восклицание Матрица!! Программка!!!!

В этой программке заменяется первый элемент матрицы на количество отрицательных элементов!! Необходимо переделать так, что бы заменило нулевой элемент на первый!!

Помогите плиз, очень надо!!!


stac segment
db 64 dup (0)
ends

data segment
A db 5, 8, 3
db -1, 0, -2
db 4, -5, 6
mA dw 3; кол-во строк
nA dw 3; кол-во столбцов
K db 0; кол-во отрицательных элементов
stA1 db 13,10,'Исходная матрица A :',13,10,'$'
stA2 db 13,10,'Измененная матрица A :',13,10,'$'
stX db 13,10,'Обработка матрицы...',13,10,'$'
stQ db 13,10,'Для выхода нажмите любую клавишу...$'
Entr db 13,10,'$'
ends

code segment
assume dsata, cs:code, ss:stac

Start:
mov ax,data
mov ds,ax
mov es,ax
;-----------------------------------------
; Вывод строки 'Исходная матрица A :' и вывод матрицы
lea dx,stA1
call out_matrica
; Вывод строки 'Обработка матрицы...'
mov ah,09h
lea dx,stX
int 21h
; Обработка матрицы (замена первого элемента кол-вом отрицательных элементов матрицы)
; подсчет кол-ва отриц. элементов
mov bx,0
mov cx,mA
c2: push cx
mov cx,nA
mov si,0
c1: cmp A[bx+si],0
jnl m1
inc K
m1: inc si
loop c1
pop cx
add bx,nA
loop c2
; замена первого элемента
mov bx,0
mov si,0
mov al,K
mov A[bx+si],al
; Вывод строки 'Измененная матрица A :' и вывод матрицы
lea dx,stA2
call out_matrica
;-----------------------------------------
; Вывод строки 'Для выхода нажмите любую клавишу...'
mov ah,09h
lea dx,stQ
int 21h
; Ожидание нажатия клавиши
mov ah,08h
int 21h
; Выход
mov ax,4C00h
int 21h

;+++ Процедура вывода строки, а затем матрицы ++++++++++++++++
; Элементами матрицы могут быть числа в диапазоне от -9 до +9
; Входные параметры:
; dx - адрес выводимой строки
out_matrica proc near
mov ah,09h
int 21h

mov bx,0
mov cx,mA
c4: push cx
mov cx,nA
mov si,0
c3: mov dl,A[bx+si]
cmp dl,0
jnl m2
mov ah,02h
mov dl,'-'
int 21h
mov dl,A[bx+si]
neg dl
jmp m3

m2: mov ah,02h
mov dl,' '
int 21h
mov dl,A[bx+si]
m3: mov ah,02h
add dl,30h
int 21h
mov ah,02h
mov dl,' '
int 21h
inc si
loop c3
mov ah,09h
lea dx,Entr
int 21h
pop cx
add bx,nA
loop c4
ret
out_matrica endp
;++++++++++++++++++++++++++++++++++ +++++++++++++
ends
END Start
ToKS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
программка flashpoint412 Общие вопросы C/C++ 0 09.06.2010 14:01
Программка на делфи a1ertso Помощь студентам 2 21.12.2009 11:34
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11
Нужна Программка maikoms Софт 1 16.09.2008 23:16