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Десктопні додатки ∙ 16 годин 34 хвилини тому ∙ 14 ставок

Потрібно зробити міграцію поточної робочої програми з foxpro на C#

Всім привіт! У нас є програма на foxpro (в ній є кілька модулів, програма для обліку), є вихідники програми, при гострій необхідності можна проконсультуватися з людьми по підтримці поточної програми Що потрібно зробити: 1. Аналіз, що і як працює, скласти список всього зайвого,…

C#Десктопні додатки ∙ 6 днів тому ∙ 18 ставок

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

185 977 UAH

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

C та C++Десктопні додатки ∙ 8 днів 13 годин тому ∙ 19 ставок

Налаштування ODOO Enterprise для будівництва

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

Автоматизація управління підприємствомДесктопні додатки ∙ 8 днів 22 години тому ∙ 7 ставок

Додати можливість роботи з Новою поштою та Делівері у BAS Малий бызнес 1.6.21.1

5000 UAH

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

Десктопні додаткиУправління клієнтами та CRM ∙ 12 днів 18 годин тому ∙ 19 ставок

Замовник
Проєкт опублікований
7 років тому
107 переглядів
Мітки
  • TASM