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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2019, 13:42   #1
Андрей8Андрей
 
Регистрация: 11.12.2016
Сообщений: 7
По умолчанию Не могу разобраться с вычислением адресов сегментов в ассемблере

Начал изучать курс по ассемблеру на Интуите и застрял на таких заданиях, в самой лекции курса нифига не возможно разобрать, вопросы такие:

Определите физический адрес точки входа обработчика прерываний в реальном режиме для указанного ниже вектора некоторого прерывания. Вектор прерывания: 1011 0111 1110 0111 0101 1110 0011 1110

ответ 0DDCAEh

У меня такой вопрос почему такой ответ а не B7E75E3Eh как такие высчитываются?

И вот еще: В приведенной ниже таблице показано состояние основных регистров процессора при выполнении некоторой задачи в защищенном режиме
Вычислите смещение дескриптора сегмента данных (DS) от начала соответствующей дескрипторной таблицы для исполняемой в данный момент задачи 0000 0001 1010 1111DS

как это все правильно читать и высчитывать?
Андрей8Андрей вне форума Ответить с цитированием
Старый 14.02.2019, 14:15   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от Андрей8Андрей Посмотреть сообщение
У меня такой вопрос почему такой ответ а не B7E75E3Eh как такие высчитываются?
Потому что учить надо было.
1. В векторе две части, именно поэтому B7E75E3Eh уже быть не может.
2. Адрес 20битный, именно поэтому B7E75E3Eh уже быть не может.
1011 0111 1110 0111 0000 + 0101 1110 0011 1110 = 0BDCAE
p51x вне форума Ответить с цитированием
Старый 15.02.2019, 07:34   #3
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от Андрей8Андрей Посмотреть сообщение
ответ 0DDCAEh
Код:
1011.0111.1110.0111 = B7E7
0101.1110.0011.1110 = 5E3E
--------------------------
B7E7:5E3E (вектор в формате Seg:Offs)
---------
чтобы получить из него физ.адрес,
нужно сегмент умножить на 16 (10h) и прибавить к нему офсет.
---------
(B7E7 * 10) = B7E70 + 5E3E = BDCAE (линейный/физический адрес)
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 16.02.2019, 00:58   #4
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от Андрей8Андрей Посмотреть сообщение
У меня такой вопрос почему
вопрос где появился, там и....
и это не ново.. у всех так, кто сталкивается с асмом - где начали, там и оставились
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу написать данную программу на ассемблере? (смог на C++ ) Пиф Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 09.03.2013 20:58
Не могу разобраться с задачей на ассемблере (GAS Linux) (первая программа, схожу с ума?) Пиф Помощь студентам 0 05.03.2013 16:29
Создание меток отдельных сегментов таблицы Excel 2010 own Microsoft Office Excel 1 29.01.2011 22:12
Не могу вернуть float из процедуры на ассемблере в си yukas Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 14.05.2010 04:08
создание собственных сегментов памяти Майкл18 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 30.11.2009 02:19