Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2015, 16:32   #1
Langel2214
Новичок
Джуниор
 
Регистрация: 20.05.2014
Сообщений: 2
Сообщение Программа в tasm. подсчитать количество нечетных символов в массиве из 10 элементов

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

Спасибо

вот код что я попробовал написать.
Код:
STAK SEGMENT STACK	
DB 512 DUP  (0)	
STAK ENDS
DATA SEGMENT	
     
	MAS1 DB 2,2,3,4,5,6,7,8,9,10
	A DB ?
	B DB ?
	MSG DB 'Kol-vo nechet elementov:  $'
	
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STAK
START:
        XOR AX, AX	
		MOV AX, DATA	
		MOV DS, AX
		
		MOV CX,10
		MOV SI, 0
	
	 GO:
	    
		MOV AL, MAS1[SI]
        MOV B, AL
		MOV BL, 2
		DIV BL
		CMP AH,0
		JE M1
		
		INC A
      M1:
	  
	  LOOP GO
	  
	  
	  MOV AH, 09H
	    MOV DX, OFFSET MSG
	    INT 21H
		
		
	   MOV ah, 4ch
		INT 21h                                                                                                           
CODE ENDS
END START
Langel2214 вне форума Ответить с цитированием
Старый 18.12.2015, 16:04   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Вот тебе на FASM:

Код:
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
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками. Подсчитать количество четных/нечетных букв в слове. snusmumr Помощь студентам 4 04.06.2011 18:52
В массиве из n элементов подсчитать количество четырёд идущих подряд одинаковых элементов ( Delphi7 ) Анастасья Помощь студентам 1 31.03.2011 19:23
В массиве A, состоящем из 10 элементов, подсчитать количество положительных элементов Alex61 Помощь студентам 5 16.05.2009 23:06