dccharacter писал(а):Я в мануале этого не могу найти.
Говорю же, нет никакой ложки
Мануалы читают зануды, самый главный мануал - листинг программы. Не поверю, что такой умный человек как ты не может выучить 35 команд пикины
dccharacter писал(а):Вот ты как узнал, что в 16-битную приводится?
Чтоб ответить на этот вопрос, нужна доп. информация от тебя, ибо я даже теряюсь...
Например, если знать двоичную систему счисления (ака 16-я, байтовая) (раньше не было программистов, которые этого не знали), то ответ слишком очевиден. Сдвигание влево бит двоичного кода, приводит к умножению этого числа на 2^(n сдвигов). Это полная аналогия с десятичной системой счисления, например число "5" * 10^(n сдвигов) приведет к сдвиганию числа 5 в разрядной сетке 10-й системы счисления, т.е. получится 50. Осталось к младшему разряду прибавить младшую часть нужного числа. Это я про:
- Код: Выделить всё • Развернуть
(ADRESH << 8) + ADRESL
Если вопрос был о том как это делается в си, то повторюсь, на все случаи жизни мануалов нет, ибо они нужны даже на разные версии одного и того же продукта. Отсюда мораль - асмовский листинг программы содержит всю информацию о предпочтениях писателя компилятора. Кста, небезызвестный разработчик си - Бьерн Страуструп, так много и сладко в молодости пел о преобразованиях типов в стиле
- Код: Выделить всё • Развернуть
(uint16_t)((regH << 8) + regL))
, что весь мир ему почти поверил. Но теперь он говорит, что так опасно делать и это неправильный способ. И он уже придумал и втюхивает миру новый способ. Т.е. если сам темнейший лажает, то что говорить о смертных. А асм как был асмом так и остался, такшта: "Нет никакой ложки"
Или ты вообще что-то другое имел в виду, тогда колись...