Программа в tasm. подсчитать количество нечетных символов в массиве из 10 элементов - Assembler

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Помогите пожалуйста написать программу в tasm. собственно задание простое: подсчитать количество нечетных символов в массиве из 10 элементов. я представляю как программа должна работать, но не могу это написать. в конце проги должна выводиться строка и подсчитанное число. Спасибо вот код что я попробовал написать.

Решение задачи: «Программа в tasm. подсчитать количество нечетных символов в массиве из 10 элементов»

textual
Листинг программы
USE16
ORG 100h
JMP start

mess   DB  'Kol-vo nechet elementov:  $'
array  DB  2,2,3,4,5,6,7,8,9,10
size   =   $ - array              ; длинна массива

start:
   MOV   SI,array                 ; SI = адрес массива
   XOR   BX,BX                    ; счётчик найденых элементов
   MOV   CX,size                  ; кол-во повторов цикла
next:
   LODSB                          ; берём элемент массива
   TEST  AL,1                     ; любая/логическая операция
   JP    skip                     ; проверяем флаг чётности(PF)
   INC   BX                       ; если не установлен, то увеличиваем счётчик
skip:
   LOOP  next                     ; следующий элемент массива
   PUSH  BX                       ; сохраним счётчик найденных элементов

   MOV   AH,9                     ; мессага юзверю
   MOV   DX,mess
   INT   21h

   POP   BX                       ; снимаем счётчик..
   XCHG  AX,BX                    ; отправляем его в AX для (fn)HEX2ASC
   MOV   BX,10                    ; выводить будем в десятичной СС
   CALL  HEX2ASC                  ; выводим результат на экран

   XOR   AX,AX                    ; ждём клавишу и на выход
   INT   16h
   INT   20h

;нннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн
;//==========; Процедура переводит число в символы и выводит их на экран ==========|
;//==========; на входе принимает: АХ = число, BX = система счисления =============| 
HEX2ASC:
   PUSHA                   
   XOR   CX,CX
isDiv:
   XOR   DX,DX
   DIV   BX
   PUSH  DX
   INC   CX
   OR    AX,AX
   JNZ   isDiv
isOut:
   POP   AX
   CMP   AL,9
   JLE   noHex
   ADD   AL,7
noHex:
   ADD   AL,30h
   INT   29h
   LOOP  isOut
   POPA
RET

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

11   голосов , оценка 3.455 из 5
Похожие ответы