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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2011, 21:53   #1
Стас_с
Пользователь
 
Регистрация: 05.07.2011
Сообщений: 22
По умолчанию не работает проверка на чётность

посмотрите пожалуйста код, не работает проверка на чётность, почему
Код:
stack   segment         STACK
        db      64 dup(?)
stack   ends
data    segment
         x   dw 1, -2, 7, -3, 2, 9, 8, 2, 3, 	;исходный массив
		y   dw 9 dup(?)
		n   dw 9
data    ends
code    SEGMENT
assume ss:stack,ds:data,cs:code
start   proc    far
;--------------Возврат в dos
        push    ds
        sub     ax,ax
        push    ax
;--Занесение в регистр ds адреса сегмента данных
        mov     ax,data
        mov     ds,ax
;--------------Начало программы
          mov cx,n
		  lea dx,x	   
          lea bx,y
      
c1:		  
		  mov ax, x[di]
		  test ax,1
		  add di,2
		  jz c2
		  jmp endk
c2:
         mov y[si],ax
         add si,2 
endk:
          loop c1
          
          		  
st_ret: ret
start   endp
code    ends
        end     start
Стас_с вне форума Ответить с цитированием
Старый 03.08.2011, 23:01   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Инструкция add модифицирует флаг нуля (ZF), потому результат предыдущей операции затирается. Поменяйте их местами, тогда будет работать как запланировано.
netrino вне форума Ответить с цитированием
Старый 04.08.2011, 09:38   #3
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Код:
mov ax, x[di]
Отсутствует инициализация di
mss вне форума Ответить с цитированием
Старый 04.08.2011, 10:28   #4
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию

могу написать код проверки числа на четность.. надо?

____________________________
все мы когда то с чего то начинали.
irc полезная штука или нет?
Спеши медленно.
asmars вне форума Ответить с цитированием
Старый 04.08.2011, 15:23   #5
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

asmars, с этим уже, как видно из кода, вполне справились ))
Человек не разобрался только с деталями.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 04.08.2011, 21:47   #6
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию

эх, хотел хоть в чем то помочь)
Спеши медленно.
asmars вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка чисел на простоту. Не работает условие. krab777 Общие вопросы Delphi 2 06.06.2011 09:33
Не работает проверка имени при регистрации MrBrain PHP 3 17.11.2010 11:11
Некорректно работает проверка в покере yugik Общие вопросы C/C++ 2 17.09.2010 14:06
чётность и нечётность guffer Общие вопросы Delphi 5 01.11.2009 12:21
не работает проверка истинности strateg66 Помощь студентам 7 07.10.2009 13:38