Форум программистов, компьютерный форум, киберфорум
ОС на Assembler
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
8 / 8 / 5
Регистрация: 28.03.2014
Сообщений: 137

Резервирование пространства в с++ struct

29.06.2015, 21:02. Показов 1121. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я пишу ОСь на c++ & assembler.

как на с++ выглядит следующая структура
Assembler
1
2
3
4
5
6
7
8
9
struc task_ctxt
{
.tss tss
.ID dd ?
.RESMEM dd ?
;...
.db 0x1000-($-.tss ) dup(?)
;...
}

меня интересует именно строка .db 0x1000-($-.tss ) dup(?)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.06.2015, 21:02
Ответы с готовыми решениями:

Как открыть struct в struct
Здравствуйте, есть код, мне нужно узнать как можно открыть struct в struct, к примеру чтобы заполнить public string Osnv_Glagol; ...

Struct sockaddr vs. struct sockaddr_in
Вопрос,связанный с переносимостью кода на другие платформы. Читаю эту книжку http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html...

Являются ли все векторы n-мерного пространства линейным подпространством соотв. векторного пространства?
Итак, необходимо определить являются ли все векторы n-мерного пространства, координаты которых - целые числа линейным подпространством...

6
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
30.06.2015, 07:57
руками посчитать.

Добавлено через 1 минуту
не уверен, но можно попробовать объявить как
C++
1
char __reserved__[0x1000-sizeof(tss)-2*sizeof(int)];
1
8 / 8 / 5
Регистрация: 28.03.2014
Сообщений: 137
30.06.2015, 12:12  [ТС]
Спасибо, но может есть способ определять $ как в асме
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
30.06.2015, 17:21
Лучший ответ Сообщение было отмечено Вадик_ как решение

Решение

C++ - это не асм. Надо оперировать си-шными средствами. Тебе надо создать структуру с длиной 0x1000. Сделай union своей структуры с массивом из 0x1000 байт.
Объединение (union) - это тоже пользовательский тип данных, который очень похож на структуру. Только тут все данные объединения занимают одну и туже область в памяти. Т.е. на каком-то этапе вам нужен один тип данных, на другом - другой.
2
8 / 8 / 5
Регистрация: 28.03.2014
Сообщений: 137
30.06.2015, 21:49  [ТС]
а можно пожалуйста код?
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
30.06.2015, 23:27
Лучший ответ Сообщение было отмечено Вадик_ как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
union {
char srazu4kilogavna[0x1000] ;
struct {
  int id ;
  int resmem ;
 } ;
} task ;
 
void main()
{
    task.id = 5 ;
    task.resmem = 10 ;
    printf("%i",sizeof(task)) ;
}
2
8 / 8 / 5
Регистрация: 28.03.2014
Сообщений: 137
01.07.2015, 22:40  [ТС]
а есть ещё способы?

Добавлено через 15 минут
А как для этого кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#pragma pack(push, 1)
struct task_ctxt
{
       tss __tss__; //TSS
 
       int ID;
       int state;
       int access;
       int prev;
       int next;
      
       //Резерв пространства для выравнивания
       //asm("db 0x1000-($-tss)")
       //Каталог и таблицы страниц
       uint8_t pbd[0x1000];
       uint8_t first_pt[0x1000];
       uint8_t second_pt[0x1000]; 
};      
#pragma pack(pop)
Добавлено через 2 часа 56 минут
Спасибо, разобрался уже!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.07.2015, 22:40
Помогаю со студенческими работами здесь

Найти размерность пространства и базис линейного подпространства
Помогите пожалуйста. Найти размерность пространства и базис линейного подпространства Rn, заданного в некором базисе системой уравнений. ...

В чем разница между подключением пространства имен в начале файла и внутри другого пространства имен?
Привет! Есть свой класс: namespace MyNamespace { public class MyClass { }

typedef struct Foo или struct Foo
В чём разница между: typedef struct { int a; }Foo; и struct Foo { int a; }

Резервирование ip
Добрый день, есть оборудование которому присвоен статический ip в dhcp они не фигурируют. Возможно что dhcp сервер будет выдавать эти ip...

Резервирование в БД
Всем доброго дня, В университете получил задание по БД, и не знаю с какой стороны подойти даже к нему. Буду благодарен за все советы,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru