Программа в 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