;Загружаем в регистр al первый байт данных.
;Где _data это указатель на двух байтовую строку.
mov al, byte ptr [_data]
;Копируем байт в регистр ah
mov ah, al
;Получаем в ah бит чётности, в al остаётся исходный байт, без изменений
and ah, 1
;переносим полученные байты в старшие разряды 32-х битного регистра eax
shl eax, 16
;Загружаем в регистр al второй байт данных.
mov al, byte ptr [_data+1]
;Копируем байт в регистр ah
mov ah, al
;Получаем в ah бит чётности, в al остаётся исходный байт, без изменений
and ah, 1
;Так как у нас в старших разрядах регистра eax
;находится результат с первым байтом, а в младших со вторым,
;меняем местами старшие 2 байта и младшие в регистре eax.
ror eax, 16
;записываем результат. _bufer -указатель на строку с ответом,
;al (исходный 1-й байт) записывается в первый байт,
;ah (байт содержащий бит чётности 1-го байта) во второй,
;с 16-го по 23-й биты регистра eax (исходный 2-й байт)
;записывается 3-м, биты с 24-го по 31-й регистра eax
;(байт содержащий бит чётности 2-го байта) записывается 4-м
mov dword ptr [_bufer], eax
00110001 1 11101010 1
Press any key
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.