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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2010, 20:28   #1
FlashProStar
Новичок
Джуниор
 
Регистрация: 30.11.2010
Сообщений: 1
По умолчанию Не могу понять, в чем ошибка

;prg29_102.asm - программа на ассемблере транспонирования матрицы.
:Вход: mas[n] - матрица mxn.
:Выход: _mas[n] - транспонированная матрица nxm.
.data
m dw 3 : i =0.. 2
n dw 4 ;j=0..3
:задаем матрицу 3x4 (mxn):
mas db 02h.04h.06h.08h.l6h.24h,38h.45h.47h ,48h.57h,56h
s_mas=$-mas
_mas db sjnas dup (Offh)
temp db 0
'code'
mov cx.m
xorsi.si :i:=0 ml: push ex :цикл по i
xordiidi ;J:-0
локализуем masij по формуле: masij=n*i+j m2: mov ax.n
mul si предполагаем, что результат в рамках ах
add ax.di : n*i+j
mov bx.ax
mov al ,mas[bx]
movtemp.al локализуем место-приемник в jnasij по формуле: _masij=masji=m*i+j
mov ax.m
mul di предполагаем, что результат в рамках ах
add ax,si

mov al .temp
mov _mas[bx].al
incdi :j:=j+l
loop rn2
inc si
pop ex восстанавливаем счетчик внешнего цикла
loop ml
FlashProStar вне форума Ответить с цитированием
Старый 01.12.2010, 08:30   #2
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

помоему твою программу писал FineReader
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 01.12.2010, 12:20   #3
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

FlashProStar программа транспонирования матрицы 3х3
Код:
.model tiny
.286
.code
org 100h
start:	mov ax,3; очищаю экран
	int 10h
	mov dx,offset matrix; вывожу матрицу до преобразования
        mov ah,9
        int 21h
        mov dx,offset lf; перевод строки
        mov ah,9
        int 21h
; транспонирую элементы матрицы
	mov al,matrix[1]
	xchg al,matrix[5]
        mov matrix[1],al
	mov al,matrix[2]
	xchg al,matrix[10]
        mov matrix[2],al
	mov al,matrix[7]
	xchg al,matrix[11]
        mov matrix[7],al
; вывожу матрицу после преобразования
        mov dx,offset matrix
        mov ah,9
        int 21h
	mov ah,0; жду пока не нажмут на клавишу
	int 16h
	retn; выход из программы
matrix db 'abc',0Dh,0Ah,'def',0Dh,0Ah,'ghi$'
lf db 0Dh,0Ah,0Dh,0Ah,'$'; разделитель -- чтобы матрицы не сливались на экране
end start
Mikl___ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функция pow(double x, double y) Не могу понять в чем ошибка Vlashel Помощь студентам 3 07.10.2010 16:28
Не могу понять в чем проблема Lecter2009 БД в Delphi 7 09.09.2010 08:48
Не могу понять в чем проблема BaUruk Общие вопросы C/C++ 3 12.10.2009 10:43
Ошибка в цикле , не могу понять в чем! Помогите пожалуйста. Алексей_xXx Помощь студентам 1 29.05.2009 00:37
Не могу понять в чем ошибка (вроде школьная математика) Алён@ Общие вопросы Delphi 4 10.03.2009 20:25