Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler
Регистрация

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

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

"В ассемблерной вставке в С. Дано слово из трех букв (например ОКН). С помощью битовых операций запишите последовательность 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, 20:45   #2
7in
(aka Jin X) !RTFM!
Форумчанин
 
Аватар для 7in
 
Регистрация: 14.12.2014
Адрес: Самара
Сообщений: 285
Репутация: 147
По умолчанию

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


12:20.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru