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

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

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

Ответ
 
Опции темы
Старый 04.06.2018, 16:47   #1
Vantozik
Новичок
 
Регистрация: 04.06.2018
Сообщений: 4
Репутация: 10
Восклицание Дополнительные регистры в Debug 16-bit

Подобная тема уже была, но там ответа так никто и не дал. Задача: найти два регистра, не отображаемых в 16-битном дебаге, объяснить что это за регистры, как называются, чем занимаются и почему не выводятся (путём поисков нашёл, что это GS и FS, но по ним инфы не нарыл).
Прошу помощи, только что C и Паскаль сдавал, ночь не спал, голова не соображает, ничего найти в текстах того же Питера Абеля не могу.
Большущая просьба именно объяснить, а не скинуть ссыль на вики или подобное, очень надеюсь на помощь.
P.S. От вашей помощи зависит моя стипуха, так как это единственный предмет, который я не могу сдать в своей мухосранской шараге на 4/5 из-за преподши - маразматички и совершенно неинтересного содержания лекций.

Последний раз редактировалось Vantozik; 04.06.2018 в 17:00.
Vantozik вне форума   Ответить с цитированием
Старый 04.06.2018, 17:01   #2
Sciv
Профессионал
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Адрес: Курган
Сообщений: 3,222
Репутация: 1205
По умолчанию

Цитата:
Сообщение от Vantozik Посмотреть сообщение
это GS и FS, но по ним инфы не нарыл
Цитата:
Начиная с микропроцессора 80386, появились два дополнительных регистра fs,gs (следующие буквы в латинском алфавите после e).

При использовании дополнительных сегментов данных их адреса требуется указывать с помощью специальных префиксов переопределения сегментов в команде (например, fs.
отсюда

Или даже поиск по форуму: http://www.programmersforum.ru/showthread.php?t=116961
__________________
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума   Ответить с цитированием
Старый 04.06.2018, 19:00   #3
Vantozik
Новичок
 
Регистрация: 04.06.2018
Сообщений: 4
Репутация: 10
По умолчанию

Бабке, которая принимает экзамен, нужна точная инфа: почему эти регистры не использовались в 8086? Из-за особенностей архитектуры? Если да, то что за особенность и что за изменение этой самой архитектуры в 80386 позволило безболезненно добавить ещё 2 регистра?...
Vantozik вне форума   Ответить с цитированием
Старый 04.06.2018, 19:05   #4
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 12,012
Репутация: 2028

icq: 216409213
По умолчанию

А почему мой старый телек не показывает цвет? Это ж легко...

А так можно долго рассуждать: как msw вдруг разросся до 8 регистров и почему в 8086 не использовались DRx.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 04.06.2018, 20:00   #5
Vantozik
Новичок
 
Регистрация: 04.06.2018
Сообщений: 4
Репутация: 10
По умолчанию

К сожалению, подобными рассуждениями я её не растрогаю, нужны именно факты.
Vantozik вне форума   Ответить с цитированием
Старый 04.06.2018, 20:34   #6
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 12,012
Репутация: 2028

icq: 216409213
По умолчанию

Какие факты? Идет прогресс, технологии развиваются, процессоры улучшаются.
Вот добавились DRx регистры или SSE, или AVX, или ... какие факты вам нужны для обоснования этого?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 04.06.2018, 21:32   #7
R71MT
Профессионал
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,169
Репутация: 953
По умолчанию

Цитата:
Сообщение от Vantozik Посмотреть сообщение
Бабке, которая принимает экзамен, нужна точная инфа:
Сегментные регистры появились в 1978 году вместе с процессором i8086.
В то время их было всего 4:
Код:

CS - Code segment - кода;
DS - Data segment - данных;
SS - Stack segment - стека;
ES - Extra segment - дополнительный для данных;

Они определяют границы сегментов памяти ОЗУ.
Так.., адрес начала сегмента-кода находится в регистре(CS), сегмента-данных(DS) и т.д.
Под досом, для команд ассемблера существовали соглашения по умолчанию: адреса переходов вычислялись по регистру(CS), обращения к данным - по регистру(DS), а обращения к стеку – по регистру(SS).

Это был рассвет системы MS-DOS, и чтобы программистам было легче отлавливать в своих программах ошибки, был придуман упомянутый выше отладчик 'DEBUG'. Кстати, есть серьёзное предположение, что отладчики назвали так в честь жука (по анг.Bug), который залез в компьютер и чем-то нарушил его работу. Так появился De'Bug - убийца жуков, официальная поддержка которого в последующем была заброшена, хотя программистам идея понравилась и они стали развивать её сами.
--------------------------------

В 1982 году появился новый процессор i80286, который презентовал революционное решение - защищённый режим! Он был по-прежнему 16-битным, но уже в 1985 году превратился в 32-битный i80386 - первый достойный внимания процессор с адресацией памяти в 4Gb.

В 386-ом полностью была переработана модель памяти, для поддержки которой было добавлено свыше (!)200 новых регистров. Это регистры: управления процессором CR0-4, управления памятью GDTR/LDTR/IDTR/TR, огромное кол-во машинных MSR-регистров, Debug-регистры DR0-7, тестовые регистры TR3-7 и т.д. и т.п.

Вместе с дивизионом системных регистров, появились и 2 новых сегментных регистра GS/FS. Трудно предугадать, что двигало разработчиками, когда они давали названия этим регистрам (ведь нас там не было) - в отличии от основных, их литеры нигде не документированы. Однако в сети можно встретить довольно убедительный вариант - General Segment(GS). Второй(FS) добавили в нагрузку по-алфавиту, поэтому назначение их совпадают. Кстати, все сегментные регистры на самом деле не 16-битные, а 10-байтные, 8 из которых скрыты от программиста - в них загружаются дескрипторы из GDT.

Чистокровный отладчик MS-DEBUG появился на свет раньше процессора 386 с регистрами GS/FS, поэтому он и не видит их. Не понимает дебуг и новые инструкции, которыми природа щедро одарила 386. Однако существуют и 32-битные консольные отладчики, заточенные специально под i386+, например 'GRDB' от компании 'LADsoft'. Он как птица-говорун отличается от 'DEBUG' и знаком уже с FPU/PCI регистрами, с точками-останова(ВР), и имеет многие/другие вкусности. Одним словом, дебуг по сравнении с ним - полный отстой:
Код:

GRDB version 1.7 Copyright (c) LADsoft
History enabled

eax:00000000  ebx:00000000  ecx:00000000  edx:00000000  esi:00000000  edi:00000000
ebp:00000000  esp:000BFFEE  eip:00000100  eflags:000B0202  NV UP EI PL NZ NA PO NC
cs:0E87       ds: 0E87      ss:0E87       es:0E87       fs:0E87       gs:0E87  
;----------------
->?
a  [address]                   - assemble
b  [d][#]                      - Show breakpoint(s)
b  [d][-]#,addr[,r/w/x[,len]]  - set or clear a breakpoint
d  [start [,end]]              - dump memory
e  start [,list]               - examine memory
g  [=start] [,break]           - run from start (or pos) to break
h  val1 [+-*/] val2            - hex arithmetic
i[bwd]  port                   - read from port
l  [@] [-] [name[ command]]    - read from file
n  [s]                         - show fp regs/status
n  #, val                      - set value in an FP reg
o[bwd]  port,val               - write to port
p  [r]                         - step through
q                              - quit
r  [reg[:val]]                 - show/modify regs
t  [count]                     - step into
u  [start [,end]]              - unassemble
w  [@addr] [name] [,len]       - write to file
?                              - this help
??                             - help for extended commands
;----------------
->??
c  start,end,start2            - compare memory
f  start,end [,val]            - fill memory
m  source,end,dest             - move memory
s  start,end [,list]           - search for a byte pattern
xr drive: addr,start [,len]    - read logical disk sector
xw drive: addr,start [,len]    - write logical disk sector
y  pfa,reg[,val]               - read/[write] PCI reg
y? bus, dev, func              - get PFA from bus:dev:func
@  [a] [logfile]               - start/stop logging to a file
?i                             - view interrupt info
?m [x]                         - view arena tags
?o [+-option]                  - view/set options
?p                             - view program status
->

__________________
Нашедшего выход - затаптывают первым..
R71MT вне форума   Ответить с цитированием
Старый 05.06.2018, 06:20   #8
D1973
Пользователь
 
Регистрация: 04.04.2018
Адрес: Сибирь
Сообщений: 19
Репутация: 62
По умолчанию

Вот только что эта тема делает в разделе Delphi???
D1973 вне форума   Ответить с цитированием
Старый 05.06.2018, 08:40   #9
digitalis
Участник клуба
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Адрес: Минск
Сообщений: 920
Репутация: 365
По умолчанию

Delphi - это девичья фамилия ассемблера ? Именно там у меня видится обсуждаемая тема - или только у меня ?
digitalis на форуме   Ответить с цитированием
Старый 05.06.2018, 09:55   #10
Vantozik
Новичок
 
Регистрация: 04.06.2018
Сообщений: 4
Репутация: 10
По умолчанию

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

Последний раз редактировалось Vantozik; 05.06.2018 в 09:59.
Vantozik вне форума   Ответить с цитированием
Ответ

Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
регистры pcmax Assembler 10 20.04.2018 04:20
Регистры olenka1808las Общие вопросы C/C++ 17 17.09.2013 18:19
Импорт 32-bit dll в 64-bit valchakov Общие вопросы Delphi 8 25.12.2009 16:18
Регистры Волк Microsoft Office Excel 9 08.04.2009 16:07
Регистры Манжосов Денис :) Помощь студентам 8 28.07.2008 12:48


22:19.


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

RusProfile.ru


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