Вопрос по assembly – Преобразование из нижнего регистра в верхний регистр

3

Я пытаюсь преобразовать строчные буквы в прописные. Я знаю, что это легко сделать,

<code>SUB AL, 20H
</code>

Но мне дали другое решени

<code>AND AL, 0DFH
</code>

Пожалуйста, помогите мне понять это. Благодарност

Ваш Ответ

2   ответа
5

A (0x41):0100 0001a (0x61):0110 0001M (0x4d):0100 1101m (0x6d):0110 1101Z (0x5a):0101 1010z (0x7a):0111 1010

Нижний регистр ASCII - верхний регистр ASCII + 0x20 0010 0000) - то же самое битовое сочетание с набор шестого бита.

0xdf - это1101 1111 в двоичном. И: если AL с этим установит шестой бит в ноль, но сохранит другие значения битов.

2

SUB AL, 20H вычитает 0x20 из AL

AND AL,0DFH очистит бит 5 (сделайте его «0»). Поскольку 0x20 - это 00100000, вычитание его из значения аналогично обычному биту 5.

Похожие вопросы