Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Ответ
 
Опции темы
Старый 09.12.2019, 14:08   #1
Noname111
Новичок
Джуниор
 
Регистрация: 12.02.2018
Сообщений: 3
По умолчанию Транспонирование матрицы

Транспонирование матрицы.
Транспонированная матрица — матрица, полученная из исходной матрицы заменой строк на столбцы.
Код не мой. Ошибок при тасмовании и линковании нет, но не работает. Не подскажете, в чём проблема?
Код:
model small
.data
Rows    equ     5
Columns equ     4
 
m       dw      Rows
n       dw      Columns
 
mas     db      11h, 12h, 13h, 14h
        db      21h, 22h, 23h, 24h
        db      31h, 32h, 33h, 34h
        db      41h, 42h, 43h, 44h
        db      51h, 52h, 53h, 54h
s_mas=$-mas
_mas    db      s_mas dup (?)
 
temp    db      0
 
asCR_LF  db     0dh, 0ah, '$'
 
asHex    db     '00 ', '$'
 
HexTabl  db     '0123456789abcdef'
 
asTitle1 db     '???????? ???????', '$'
asTitle2 db     '????????????????? ???????', '$'
 
 
.stack  256
 
.486
 
.code
 
ShowHex PROC FAR
        pusha
        mov     di, OFFSET asHex
        mov     cx, ax
        and     ax, 000fh
        mov     bx, OFFSET HexTabl
        xlat
        mov     [di+1], al
 
        mov     ax, cx
        and     ax, 00f0h
        mov     cl, 4
        shr     ax, cl
        xlat
        mov     [di], al
 
        mov     ah, 09h
        mov     dx, OFFSET asHex
        int     21h
        popa
        ret
ShowHex ENDP
 
ShowMatrix PROC FAR
        pusha
        mov     si, 0  ; ??????
        mov     di, 0  ; ???????
        mov     cx, dx
 
@@ShowRow:
        mov     dx, 0
        mov     ax, n
        mul     si
        mov     bx, ax
        add     bx, cx
 
        mov     ah, 0
        mov     al, [bx+di]
 
        call    ShowHex
 
        inc     di
 
        cmp     di, n
        jb      @@ShowRow
 
        mov     dx, OFFSET asCR_LF
        mov     ah, 09h
        int     21h
 
        mov     di, 0
 
        inc     si
 
        cmp     si, m
        jb      @@ShowRow
 
        popa
        ret
ShowMatrix ENDP
 
main:
        mov     dx,@data
        mov     ds,dx
 
        mov     ah, 09h
        mov     dx, OFFSET asTitle1
        int     21h
 
        mov     ah, 09h
        mov     dx, OFFSET asCR_LF
        int     21h
 
        mov     dx, OFFSET mas
        call    ShowMatrix
 
        xor     ecx,ecx
        mov     cx,m
        xor     si,si
m1:
        push    cx
        mov     cx,n
        xor     di,di
m2:
        mov     ax,n
        mul     si
        add     ax,di
        mov     bx,ax
        mov     al,mas[bx]
        mov     temp,al
        mov     ax,m
        mul     di
        add     ax,si
        mov     bx,ax
        mov     al,temp
        mov     _mas[bx],al
        inc     di
        loop    m2
        inc     si
        pop     cx
        loop    m1
 
        mov     ax, m
        xchg    ax, n
        mov     m, ax
 
        mov     ah, 09h
        mov     dx, OFFSET asTitle2
        int     21h
 
        mov     ah, 09h
        mov     dx, OFFSET asCR_LF
        int     21h
 
        mov     dx, OFFSET _mas
        call    ShowMatrix
 
        mov     ax,4c00h
        int     21h
end     main
Noname111 вне форума Ответить с цитированием
Старый 09.12.2019, 14:55   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,375
По умолчанию

может окно просто закрывается?
можно вставить в конце "ожидание клавиши" и посмотреть:
Код:
;-- ввод символа с клавиатуры
      mov   ah,1
      int   21h
;---------------------------
      mov   ax,4c00h
      int   21h
end   main
Нашедшего выход - затаптывают первым..
R71MT на форуме Ответить с цитированием
Старый 09.12.2019, 19:42   #3
Noname111
Новичок
Джуниор
 
Регистрация: 12.02.2018
Сообщений: 3
По умолчанию

Вы правы. Спасибо большое.
Noname111 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Транспонирование матрицы Niven C++ Builder 0 06.12.2016 06:40
транспонирование матрицы Ислам Помощь студентам 3 08.06.2011 19:02
Транспонирование матрицы Tatum Паскаль, Turbo Pascal, PascalABC.NET 1 15.03.2011 20:32
транспонирование матрицы 6*6 на си fatefighter Общие вопросы C/C++ 1 17.03.2010 22:12
PHP. Транспонирование матрицы POPOV Помощь студентам 2 04.02.2009 02:08