Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Разместите свой проект бесплатно и начните получать предложения от фрилансеров-исполнителей уже спустя минуты после публикации!

Программа TASM

150 UAH

  1. 59  
    1 день150 UAH

    Здравствуйте,могу сделать данную программу в С++ или TASM.
    Сделать код с подробным описанием.
    Понял полностью смысл программы,поэтому никаких проблем с написанием кода не должно быть!

    1 ставка скрыта
  • Профиль удален
    30 апреля 2019, 17:51 |

    На с++ можно сделать?

  • Антон D.
    30 апреля 2019, 18:02 |

    На оригинале делать?

  • Влад Щигельский
    30 апреля 2019, 19:54 |

    выполнить требуется на TASM


  • Влад Щигельский
    30 апреля 2019, 19:56 |

    выполнение на языке ассемблера TASM

  • Антон D.
    30 апреля 2019, 20:07 |

    Ясно. Не тот бюджет.

  • Профиль удален
    1 мая 2019, 9:40 |
    .model small
    .stack 100h
     
    .data
    rows        dw 4
    cols        dw 3
    array       dw 4*3 dup (0)  ;rows * cols
    mas1        dw 4 dup (0)
    index       dw 0
    crlf        db 13,10,'$'
    buf         db 5 dup ('$');,0,3 dup ('$'),'$'
    msgPress    db 13,10,'Press any key...$'
    msgMatrix   db 'Your matrix: $'
    msgMas      db 'Massiv: $'
    msgEl       db 13,10,'Input elements: ',13,10,'$'
    msgMax      db 13,10,'MAX = $'
    msgCountMax db 13,10,'Count of MAX = $'
     
    .code
    ;макрос вывода на экран текстового сообщения
    ;str - стока для вывода
    write macro  str
        push    ax
        push    dx
     
        lea     dx,str  ;адрес строки для вывода
        mov     ah,09h  ;09h функция
        int     21h
     
        pop     dx
        pop     ax
    endm
     
    ;макрос вывода числа на экран
    ;вход: AX - число для вывода на экран
    putdigit macro
        local lput1
        local lput2
        local exx
     
        push    ax
        push    cx
        push    -1  ;сохраним признак конца числа
        mov     cx,10   ;делить будем на 10
    lput1:  xor     dx,dx   ;чистим регистр dx
        mov     ah,0                   
        div     cl  ;Делим 
        mov     dl,ah   
        push    dx  ;Сохраним цифру
        cmp al,0    ;Остался 0? 
        jne lput1   ;нет -> продолжим
        mov ah,2h
    lput2:  pop dx  ;Восстановим цифру
        cmp dx,-1   ;Дошли до конца -> выход 
        je  exx
        add dl,'0'  ;Преобразуем число в цифру
        int 21h ;Выведем цифру на экран
        jmp lput2   ;И продолжим
    exx:
        mov dl,' ' 
        int 21h
        pop cx
        pop     ax
    endm
     
    ;макрос ввода числа с клавиатуры
    ;выход: AX - введенное число
    indigit macro
        local   lin
        push    bx
        push    cx
        push    dx
     
        mov     ah,0Ah  ;буферизированный ввод
        lea     dx,buf
        int     21h 
        xor     ax,ax
        xor     cx,cx
        ;разбор количества цифр введенного числа
        mov     cl,[buf+1]  ;количество реально введенных символов
        xor     di,di
    lin:
        mov     dl,10
        mul     dl
        mov     bl,[buf+di+2]
        sub     bl,30h  ;ASCII -> число
        add     al,bl
        inc     di
        loop    lin
        
        pop     dx  
        pop     cx
        pop     bx
    endm
     
    start:
        mov     ax,@data
        mov     ds,ax
      
    ;ввод матрицы
        write   msgEl
        lea     bx,array
        mov     cx,rows
    in1:    ;цикл по строкам
        push    cx
        mov     cx,cols
        mov     si,0
    in2:    ;цикл по колонкам
        indigit ;макрос ввода числа
        mov     [bx][si],al
        inc     si
     
        write   crlf    
        loop    in2
     
        add     bx,cols
        pop     cx
        loop    in1
     
    ;вывод матрицы на экран
        write   msgMatrix
        lea     bx,array
        mov     cx,rows
    out1:   ;цикл по строкам
        push    cx
        mov     cx,cols
        mov     si,0
     
        write crlf  
    out2:   ;цикл по колонкам
        xor     ax,ax
        mov     al,[bx][si] ;Выводимое число в регисте AL
        putdigit    ;макрос вывода
        inc     si
        loop    out2
     
        add     bx,cols
        pop     cx
        loop    out1
     
    ;поиск максимального элемента в матрице
        lea     bx,array
        xor     ax,ax
        mov     al,[bx][0]
        mov     cx,2
    r1: ;цикл по строкам
        push    cx
        mov     cx,cols
        mov     si,0
    r2: ;цикл по колонкам
        cmp     al,[bx][si]
        ja      lmax
        mov     al,[bx][si]
    lmax:
        add     si,1
        loop    r2
     
        push    bx
        push    si
        lea     bx,mas1
        mov     si,index
        mov     [bx][si],al
        inc     si
        inc     si
        mov     index,si
        xor     al,al
        pop     si
        pop     bx
        add     bx,cols
        add     bx,cols
        pop     cx
        loop    r1
        
    ;----
        ;mov        si,1
        ;mov        index,si
        ;xor        si,si
    ;----
        
    ;поиск минимального элемента в матрице
        lea     bx,array
        add     bx,cols
        xor     ax,ax
        mov     si,1
        mov     index,si
        mov     al,[bx][0]
        mov     cx,2
    r3: ;цикл по строкам
        push    cx
        mov     cx,cols
        mov     si,0
    r4: ;цикл по колонкам
        cmp     al,[bx][si]
        jb      lmin
        mov     al,[bx][si]
    lmin:
        add     si,1
        loop    r4
     
        push    bx
        push    si
        lea     bx,mas1
        mov     si,index
        mov     [bx][si],al
        inc     si
        ;cmp        si,4
        ;je     cont
        inc     si
    ;cont:
        mov     index,si
        xor     al,al
        pop     si
        pop     bx
        add     bx,cols
        add     bx,cols
        pop     cx
        loop    r3
        
        
        
    ;Вывод массива mas1
     
        write   crlf
        write   msgMas
        lea     bx,mas1
        mov     cx,index
        mov     si,0
     
        write crlf  
    outmas:
        xor     ax,ax
        mov     al,[bx][si] ;Выводимое число в регисте AL
        putdigit    ;макрос вывода
        inc     si
        loop    outmas
     
        add     bx,cols
        pop     cx
     
    ;press any key
        write   msgPress
        mov     ah,0
        int     16h
    ;exit
        mov     ax,4c00h
        int     21h
    end start

Актуальные фриланс-проекты в категории Десктопные приложения

Разработка кастомного ПО (Android-приложения + CMS) для киосков самообслуживания SUNMI K2 (Фастфуд)

1000 UAH

Ищем опытную команду или Middle/Senior Android-разработчика (возможно, с Full-stack навыками) для создания собственного программного обеспечения для киосков самообслуживания сети заведений быстрого питания. Сейчас наши терминалы работают на базе готового облачного интегратора,…

CMSДесктопные приложения ∙ 17 часов 39 минут назад ∙ 14 ставок

Нужно сделать миграцию текущей рабочей программы с foxpro на C#

Всем привет! у нас есть программа на foxpro (в ней есть несколько модулей, программа для учета), есть исходники программы, при острой необходимости можно проконсультироваться с людьми по поддержке текущей программы что нужно сделать: 1. аналитику, что и как работает, составить…

C#Десктопные приложения ∙ 6 дней 1 час назад ∙ 18 ставок

ПО Мастер-программа «KONSTRUCTOR»

185 977 UAH

Мы ищем очень опытного C++ разработчика для модернизации существующего ПО (мастер-программы). Программа отвечает за создание производного ПО представляющего аудио-визуальные сеансы психологической коррекции. Текущая версия написана на чистом WinAPI (Visual Studio 2019/2022).…

C и C++Десктопные приложения ∙ 8 дней 14 часов назад ∙ 19 ставок

Настройка ODOO Enterprise для строительства

Необхідно побудувати картки та налаштувати зручний імпорт, інтеграцію з ЕДО і загалом Workflow ODOO Компанія займається системною інтеграцією: маємо поставки обладнання В2В або з прямою маржинальністю, або з рібейтами в подальшому. Крім того, ведемо будівельні роботи на об'єктах…

Автоматизация управления предприятиемДесктопные приложения ∙ 8 дней 23 часа назад ∙ 7 ставок

Добавить возможность работы с Новой почтой и Делиери в BAS Малый бизнес 1.6.21.1

5000 UAH

Реализовать по возможности через расширение. Потребна загрузка справочников и создание ТТН. Заполнение данных на отгрузку в Заказе покупателя. Далее на основе заказа создается ТТН. Будет несколько кабинетов. Возможность привязать кабинет к менеджеру или пользователю. Сумма…

Десктопные приложенияУправление клиентами и CRM ∙ 12 дней 19 часов назад ∙ 19 ставок

Заказчик
Проект опубликован
7 лет назад
107 просмотров
Метки
  • TASM