Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2018, 19:07   #1
Fillimon
Пользователь
 
Регистрация: 16.04.2018
Сообщений: 13
По умолчанию Помогите понять, что требуется по заданию

"В ассемблерной вставке в С. Дано слово из трех букв (например ОКН). С помощью битовых операций запишите последовательность ASCII кодов его букв в ячейку памяти минимального размера. Слово может быть и другим, программа должна его запрашивать. Запрашивать можно на Паскале."

То есть я должен считать 3 символа, занести их в ассембленую вставку. А дальше что? Что значит "занести в ячейку памяти минимального размера"? Минимальный размер - байт (al), но ведь и класс чар занимает 1 байт, а их три туда надо? Вообще не понятно...

<code>
int main() {
char a, b, c;
unsigned int d, e, f;
printf("Vvedite tri bukvi: ");
scanf("%c%c%c", &a, &b, &c);
d = a;
e = b;
f = c;
printf("A =%d, B = %d, C= %d", d, e, f);
_asm {
mov eax,a
push eax
mov eax,b
push eax
mov eax,c
push eax
}
system("pause");
return 0;
}</code>
Fillimon вне форума Ответить с цитированием
Старый 16.04.2018, 19:45   #2
7in
(aka Jin X) !RTFM!
Форумчанин
 
Аватар для 7in
 
Регистрация: 14.12.2014
Сообщений: 295
По умолчанию

Вы бы лучше спросили об этом препода
Потому что "слово из трёх букв" занимает 3 байта, упаковать их в ещё меньший размер можно разве что переведя код каждой буквы в 5-битное число от 0 до 31 (А=0, Б=1 ... Ю=30, Я=31, без "Ё"). Т.о. получится 3 блока по 5 бит = 15 бит = 2 байта.
Больше ничего в голову не приходит.
А вот в голову препода, боюсь, залезть никак не получится, чтобы проверить – то ли он имел в виду...
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
7in вне форума Ответить с цитированием
Старый 16.04.2018, 20:03   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,529
По умолчанию

В дремучие времена до-РС-шной эпохи на компах серии PDP-11 и наших клонах СМ-4 и т.п. существовала кодировка RADIX-50 (50 - восьмиричное) для упаковки сжатых имен файлов, там действительно 3 символа ASCII утаптывали в 1 16-битное слово. Кому это сейчас может надобиться? Только чтоб студеням жизнь медом не казалась ?
https://ru.wikipedia.org/wiki/RADIX-50
К сожалению, популярное на Руси слово из трех букв в этот код не лезет
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Assembler] Помогите с программой, Не могу понять что требуется сделать, кто нибудь объясните Senya Arsentev Помощь студентам 2 23.12.2017 14:28
Помогите понять задание! Непонятно, что вообще требуется сделать, объяните, пожалуйста olenka.ke Помощь студентам 7 25.10.2015 19:17
Не могу понять никак условие, что именно требуется для входных даннных zloywolk Помощь студентам 5 22.05.2012 20:46
Не могу понять, что требуется? Shuraken Общие вопросы Delphi 2 10.08.2007 11:41