Лидеры рейтинга
Мастер-Эксперт
1034
Мастер-Эксперт
657
Профессионал
366
Академик
353
Мастер-Эксперт
258
Профессор
96
Профессор
53
8.1.6
02.01.2021
JS: 2.2.2
CSS: 4.2.0
jQuery: 3.5.1
Создание программ на языке Assembler.
Администратор раздела: Зенченко Константин Николаевич (Старший модератор)
|
Перейти к консультации №: |
|
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Задан массив байт. Определить суммы четных и нечетных элементов массива. Если абсолютные значения сумм не равны, то каждый второй элемент увеличить на единицу. Вывести результаты работы программы на экран в двоичном коде.
Написать требуется на платформе ДОС.
Состояние: Консультация закрыта
Здравствуйте, AlexAnonim!
Код TASM:
model tiny,pascal locals @@ .code org 100h sizeMas equ 20 sizeNum equ 4 begin: lea dx,dbMas mov cx,sizeMas cld call OutMas,dx,cx Call SummMas,dx,cx jz @@01 call SetMas,dx,cx @@01: call OutMas,dx,cx xor ax,ax int 16h ret OutMas proc a:word,b:word uses ax,cx,si mov al,10 int 29h mov al,13 int 29h mov si,a mov cx,b xor ax,ax @@01: lodsb call OutNum,ax loop @@01 ret OutMas endp OutNum proc a:word uses ax,bx,cx,dx mov ax,a xor cx,cx mov bl,10 @@01: neg al js @@01 @@02: xor ah,ah div bl inc cx xchg ah,al or al,'0' push ax xchg ah,al or al,al jnz @@02 mov ax,a and al,80h mov al,' ' jz @@03 mov al,'-' @@03: inc cx push ax mov al,' ' cmp cx,sizeNum jnz @@03 @@04: pop ax int 29h loop @@04 ret OutNum endp SummMas proc a:word,b:word uses ax,bx,dx,cx,si xor dx,dx xor bx,bx mov si,a mov cx,b xor ah,ah @@01: lodsb test al,01 jnz @@02 add dx,ax jmp @@03 @@02: add bx,ax @@03: loop @@01 @@04: neg bx js @@04 @@05: neg dx js @@05 mov ax,bx sub ax,dx ret SummMas endp SetMas proc a:word,b:word uses ax,bx,cx,si,di mov si,a mov di,a mov cx,b xor bx,bx @@01: lodsb add ax,bx stosb xor bx,1 loop @@01 ret SetMas endp dbMas label byte i = -10 rept sizemas db i i =i+1 endm end begin
|
Консультировал: Зенченко Константин Николаевич (Старший модератор) Дата отправки: 30.11.2020, 14:55
5
нет комментария----- Дата оценки: 30.11.2020, 17:08 |
Рейтинг ответа:
+2 Сообщение модераторам Отправлять сообщения |
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.