1. Уважаемые участники и гости, 19 октября codeby будет работать в режиме "Только чтение". Регистрация новых участников будет закрыта. 20 октября портал продолжит работу в прежнем режиме.

Ассемблер. Двумерный массив. Интересно =)

Тема в разделе "Другие задачи", создана пользователем -, 31 янв 2010.

  1. Гость

    Репутация:
    0
    Задача: дан двумерный массив, переставить максимальный и минимальный элемент в каждом Столбце. Задачка вроде элементарная, и не могу сказать что я дебил, однако уже 5й день бьюсь и все никак. Ввод - вывод работает нормально, проверял.Найдите ошибку пожалуйста, мне нужен свежий взгляд на происходящее)

    Код:
    Include macro.lib
    
    Data Segment
    
    Mas dw 50 dup (50 dup (?))
    
    N	dw ?
    M	dw ?
    I	dw ?
    J	dw ?
    Nmx dw ?
    Nmn dw ?
    Max dw ?
    Min dw ?
    
    
    pr  db " $"; 
    mesl db "‚ўҐ¤ЁвҐ н«Ґ¬Ґ­вл ¬ ббЁў  $"; Просто "Ввод чисел"
    inn db "‚ўҐ¤ЁвҐ Ї«§ Є®«ў® бва®Є $"; это в кодировке DOS - введите колво строк
    inm db "‚ўҐ¤ЁвҐ Ї«§ Є®«ў® бв®«Ўж®ў $"; введите колво столбцов
    
    
    Data Ends
    
    Sst Segment Stack
    db 128 dup (?)
    Sst Ends
    
    Code Segment
    
    Assume DS : Data,CS:Code,SS:Sst;
    
    func_out Proc
    
    mov CX,N	 ;­ з «® жЁЄ«  ўлў®¤ 
    mov BX,0
    
    str11:
    
    push CX
    mov CX,M
    
    mov DI,0
    
    str22:
    
    mov AX, Mas[BX][DI]
    print_number
    message pr
    add DI,2
    
    loop M333
    jmp M44
    
    M333: jmp str22
    
    M44:
    crlf
    
    pop CX
    
    add BX,M
    add BX,M
    
    loop M55
    jmp obhod1
    M55: jmp str11
    obhod1:
    crlf
    
    ret
    
    func_out EndP
    
    
    Begin:
    
    mov DX,Data
    mov DS,DX
    
    cls
    crlf
    
    message inn 
    
    crlf
    key_$2bin
    mov N,AX; строки
    crlf
    
    message inm
    
    crlf
    key_$2bin
    mov M,AX; столбцы
    crlf
    
    message mesl
    
    crlf
    
    ;------------------------
    ;ввод - вывод
    mov CX,N
    mov BX,0
    
    str1:
    
    push CX
    mov CX,M
    
    mov DI,0
    
    str2:
    
    key_$2bin
    crlf
    mov Mas[BX][DI],AX
    ; message pr
    add DI,2
    
    loop M33
    jmp M4
    
    M33: jmp str2
    
    M4:
    crlf
    
    pop CX
    
    add BX,M
    add BX,M
    
    loop M5
    jmp obhod
    M5: jmp str1
    obhod: 	;Ї®б«Ґ жЁЄ« 
    
    
    crlf
    
    cls
    
    crlf
    
    call func_out
    
    ;---------------------------
    ; Начало цикла перестановки
    
    mov CX,M
    mov BX,0
    
    CJ:; внешний цикл - по столбцам
    
    push CX
    
    mov CX,N
    mov DI,0
    
    mov AX, Mas [0][0]
    mov Max,AX
    mov Min,AX
    
    mov Nmx,0
    mov Nmn,0
    
    
    CI:; Внутренний цикл - по строкам
    
    mov AX, Mas [DI][BX]
    
    CMP AX,Max; сравниваем с максимумом
    
    JG M1
    
    jmp M2
    
    M1:
    
    mov AX,Mas [DI][BX]
    mov Max, AX
    
    mov Nmx, DI
    
    
    jmp ex
    
    M2:
    
    mov AX,Mas [DI][BX]
    
    CMP AX,Min; сравниваем с минимумом
    
    JL M3
    
    jmp ex	
    
    M3:
    
    mov AX,Mas [DI][BX]
    mov Min, AX
    
    mov Nmn,DI
    
    ex:
    
    add DI,2; инкрементируем счетчик на 2 тк word
    
    loop CI
    
    ; Обмен местами
    
    mov SI,Nmx
    
    mov DX,Mas [SI][BX]
    
    mov SI,Nmn
    XCHG DX,Mas [SI][BX]
    
    mov SI,Nmx
    
    mov Mas [SI][BX],DX
    
    add BX,2
    
    pop CX
    
    loop CJ
    
    
    key_$2bin
    
    cls
    crlf
    crlf
    
    call func_out
    
    key_$2bin
    
    
    mov AX,4c00h
    int 21h
    
    Code ends
    
    end Begin
    Добавлено: http://narod.ru/disk/17433829000/Konserv%40tor.rar.html

    это то чем я пользовался при компиляции
     
  2. Гость

    Репутация:
    0
    Спасибо всем большое за 70+ просмотров с этой задачей я разобрался)
     
Загрузка...
Похожие Темы - Ассемблер Двумерный массив
  1. Skeed
    Ответов:
    0
    Просмотров:
    223
  2. alalai
    Ответов:
    0
    Просмотров:
    1.073
  3. Dimkawshm
    Ответов:
    2
    Просмотров:
    1.201
  4. Victoria123
    Ответов:
    0
    Просмотров:
    1.035
  5. MariyaStarikova
    Ответов:
    0
    Просмотров:
    1.068

Поделиться этой страницей