· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.HELHEIM —› помогите с четностью по паритету

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Ноя 8, 2004 19:51:53

Хелп!
Необходимо определить четно ли двойное слово dx:ax по паритету и в случае если оно четно - выполнить переход...
Заранее спасибо


Дата: Ноя 9, 2004 21:24:58

Сорри за тупой вопрос, но что есть: чётность по паритету" ?


Дата: Ноя 10, 2004 01:54:42 · Поправил: _Juicy

На вскидку что-то типа
   xor   bx,bx
   test  ax,ax
   jpe   _check_dx
   inc   bl
_check_dx:
   test  dx,dx
   jpe   _get_result
   inc   bh
_get_result:
   xor   bh,bl
   je   _nepexog_

Наверняка можно оптимизировать, пускай гуру подскажут.


Дата: Ноя 10, 2004 18:44:37

2_Juicy: Большущее спасибо!
2S_T_A_S_: паритет есть количество единиц в двоичном представлении числа


Дата: Ноя 10, 2004 18:49:59 · Поправил: pustota

Может у кого нибудь есть еще идеи?
Поделитесь пожалуйста...


Дата: Ноя 10, 2004 19:50:27

> „паритет есть количество единиц в двоичном представлении числа“

Наверное имеется ввиду чётное / нечётное количество единиц ?

Тогда такой вариант, с использованием 32х разрядных регистров:
bswap    eax
mov      ax,dx
test     eax
;bswap    eax     ; восстанавливаем значение ax
jpe      parity_even


Дата: Ноя 10, 2004 21:46:16 · Поправил: bogrus

А если так? Или важен не результат, а какими инструкциями он получен?

test al,1
jz четное


Дата: Ноя 10, 2004 21:52:17

"паритет есть количество единиц в двоичном представлении числа"

То есть 0x1 = 0001, 0x2 = 0010 будут нечетными,
а 0x3 = 0011 - четным по паритету.


Дата: Ноя 10, 2004 22:00:43

А ... я подумал о четности числа


Дата: Ноя 10, 2004 23:16:31

Вот поэтому я и задавал свой вопрос :-)


Дата: Ноя 11, 2004 10:16:21

PF (Parity Flag)
A check of the low-oder eight bits of data operations.

dx = 0000000100000000b
ax = 0000000000000000b


Дата: Ноя 11, 2004 14:41:01

bogrus
Похоже, вы правы. А не подскажете, какой документацией по опкодам пользуетесь?

pustota
Тогда мой вариант не подходит...


Дата: Ноя 11, 2004 14:51:49 · Поправил: bogrus

_Juicy Та какая там у меня документация :) когда чего-то не получается, я быстрее нахожу ответ в гугле чем Adobe Acrobat 6.0 запускается Ж)
з.ы. ну не всегда конечно


Дата: Ноя 11, 2004 17:25:37

А мне гугл про младшие восемь бит ничего не сказал.
Наверное, особый подход нужен :(

К Админам. Предлагаю тему переместить в WASM.ASSEMBLER или WASM.A&O.


Дата: Ноя 11, 2004 20:37:20

_Juicy я воспользовался вашей идеей и немного ее дополнил. Поскольку PF устанавдивается только по 8 младшим битам я просто сделал так
xor bx,bx
xor cx,cx

_check_dh:
test dh,dh
jp _check_dl
inc ch

_check_dl:
test dl,dl
jp _check_ah
inc cl

_check_ah:
test ah,ah
jp _check_al
inc bh

_check_al:
test al,al
jp _get_result
inc bl

_get_result:
xor bh,bl
xor ch,cl
xor cx,bx

je _переход_

конечно, отчасти туповатое решение но результат вроде бы близок к нужному =))

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.070