Цитата(vvs157 @ May 19 2005, 18:51)
Цитата(amoralex @ May 19 2005, 12:38)
Есть код:
Код
start:
mov curr_byte1, P1
mov curr_byte2, P2
make_xor:
mov A, prev_byte2
xrl A, curr_byte2
mov rez_byte2, A
mov A, prev_byte1
xrl A, curr_byte1
mov rez_byte1, A
В связи с особенностью задачи, rez_byte 1 и 2 должны обрабатываться побитно, но в конструкции mov rez_byte1, A - rez_byte должен быть объявлен в области DATA. А как сделать чтобы он был доступен еще и через битовую область?! Я вот не понимаю...
Заранее спасибо!
По-видимому имеется ввиду 51 МК. Если это так достаточно разместить rez_byte1 и 2 в той области DATA, которая совпадает с битовой областью, например
DSEG AT 10H
rez_byte1 DS 1
rez_byte2 DS 1
;
FLAG_AREA BIT rez_byte1.0
;
BSEG AT FLAG_AREA
bit_flag1 DBIT 1
bit_flag2 DBIT 1
;
;
Повнимательнее надо, человек и так запутался. Побитово-адресуемая область 20H - 2Fh, следовательно DSEG AT 20H (или в пределах 20H-2EH). Биты можно обьявить и так, как приведено, а можно и такЖ
res2_bit_7 bit rez_byte2.7
res2_bit_6 bit rez_byte2.6
....
res2_bit_0 bit rez_byte2.0
Кому как больше нравиться. Мне нравиться так, чтобы не путаться со старший-младший.