Консультация № 194705
14.02.2019, 16:56
0.00 руб.
0 50 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:

не было раздела для ms-dos, поэтому написал тут, сделал загрузочный диск и флешку с ms-dos 6.22, пытался установить на реальное железо, но почему то не могу, на виртуальной машинке устанавливается норма, на реальном железе пишет "can't find bootable cd-rom litter"
Диск подготавливал и в fat16, 32, так же потом поставил жёсткий диск вместо ssd. Ничего не помогает.

Обсуждение

давно
Советник
3818
2147
14.02.2019, 18:46
общий
14.02.2019, 18:54
Адресаты:
А чем не устраивает грузиться в MS-DOS с флешки и работать с нее? Почему надо именно с HDD?
Об авторе:
Правильно заданный вопрос должен содержать ответ!
давно
Посетитель
402218
66
14.02.2019, 19:10
общий
Цитата: Андреенков Владимир
А чем не устраивает грузится в MS-DOS с флешки и работать с нее? Почему надо именно с HDD?

Я откинул этот вариант так как Мне подсказали что ошибка которая на картинке возникает из-за того что не на харде(хотя сомневаюсь), решил проверить и столкнулся с непреодолимым, установкой дос :)
Прикрепленные файлы:
565c1953a52dc891d5d042dc45b01f7f.jpg
давно
Советник
3818
2147
14.02.2019, 20:22
общий
15.02.2019, 16:34
Адресаты:
сделать раздел fat16, сделать его активным скинуть, файлы ms-dos на него с той же флешки (включая скрытые) или скачанные из сети. Должно работать. У dos есть ограничения
https://dic.academic.ru/dic.nsf/ruwiki/1322657#cite_note-part-type-2
Ограничение MS DOS на допустимое число головок — 16 (1024 цилиндра, 63 сектора на трек, 16 головок, 512 байт на сектор)

лучше взять старенький маленький hdd
Об авторе:
Правильно заданный вопрос должен содержать ответ!
давно
Старший Модератор
312929
1973
15.02.2019, 03:50
общий
Адресаты:
сделать раздел fat32, сделать его активным скинуть, файлы ms-dos на него с той же флешки

MS-DOS 6.22 не поддерживает FAT32 (только FAT16/FAT12), нужна MS-DOS 7 (которая в Windows 98).
давно
Посетитель
402218
66
15.02.2019, 04:06
общий
от ошибки избавился отключив himem и mem386 в конфиге.
И вот тут один фиг всё напрасно, запускал программы в которых переходит в защищённый режим а потом обратно в реальный, так вот при переходе обратно перезагружается компьютер, что установкой бита CR0 для что выставлением адреса в биос для возврата в программу и сброса процессора, хотя на виртуалке при сбросе адреса всё работает нормально, так же перезагружается при загрузке таблицы дескрипторов прерываний(смотрел в td). Ну раз так пошло подскажет кто где можно, по практиковаться по этой книге Рудаков Финогенов 2001 года издание (Язык ассемблера. Уроки программирования - Рудаков П.И.) на 286 странице начинаются программы которые не всегда корректно работают на виртуалке, а так же и в досе(хотя Мне посоветовали дос на реальном железе)
Буду признателен )
давно
Советник
400484
472
15.02.2019, 09:47
общий
Много уважаемый Kdsfofwe21, а почему вы не хотите поднять виртуальную машину и установить в нее dos? Или по крайней мере поставить какой-нибудь DOSBOX (сайт)?
давно
Посетитель
402218
66
15.02.2019, 11:02
общий
Цитата: solowey
а почему вы не хотите поднять виртуальную машину и установить в нее dos?

Для некоторых программ, которые не могут выполняться корректно на виртуалках.
в сети
Управляющий
143894
2148
15.02.2019, 11:13
общий
15.02.2019, 11:17
Адресаты:
Цитата: Kdsfofwe21
что ошибка которая на картинке возникает из-за того что не на харде

Вас обманули.
Это ошибка некорректной работы драйвера верхней памяти.
Кроме всего прочего, я вижу по картинке, что у вас "корявый" драйвер руссификации.
Об авторе:
Устав – есть устав! Если ты устав – то отдыхай!


давно
Посетитель
402218
66
15.02.2019, 12:11
общий
15.02.2019, 12:13
[q=143894][/q]
Да, отключил и хаймем и емм и начал комп перезагружается без данного сообщения, хотя должен был переходить дос обратно из защищённого в рельный мод, и при том в разных вариантах.
давно
Мастер-Эксперт
259041
7459
15.02.2019, 12:25
общий
Адресаты:
В 2005г я работал в Хабаровской академии экономики и права в комп-отделе. На одной из кафедр странный преподаватель слишком часто вызывал кого-нибудь из нашего отдела переустановить ему ОС (ОперСистему). Мы уже заменили ему жёсткий диск (думали, диск НЕ надёжный), потом сисблок я отдал ему свой, как проверенный, а егойный взял себе тестировать. Выяснилось, что этот препод учился программировать на Ассемблере, и его команды имели прямой доступ к ячеям памяти и диска. При малейшей ошибке этого препода, его ОС портилась. Ему предложили использовать Витуальную машину, имеющую хоть какую-то "защиту от дурака". После этого порча ОС у него прекратилась.

Предлагаю Вам посмотреть "Архив консультаций по языку Assembler" https://rfpro.ru/issues/18,
Задать Вопрос по теме "Создание программ на языке Assembler" https://rfpro.ru/ask/18
Возможно, Assembler-спецы на rfpro уже решили Вашу проблему с Assembler под DOS .
На упомянутых страницах есть ссылка Книги по Ассемблеру Assembler для DOS, Windows и UNIX - Зубков С.В. kalashnikoff.ru/Assembler/prog/b09.rar

Также Вы можете опубликовать на этой странице свой простейший тестовый файлик типа TestForDOS.exe , чтоб я или другие эксперты могли убедиться в правильной его обработке в среде DOS7 (от Windows98), загруженной с флэшки, CdRom или Hdd . При успешном результате теста мы можем возвратить Вам DOS-ПО и хронологию успеха.
давно
Посетитель
402218
66
15.02.2019, 13:08
общий
[q=259041][/q]
https://rfpro.ru/question/194651

Да, в виртуалках и срабатывает эта защита, судя по данным ответам по ссылке которую Я написал. Но получается что читая ту книгу и учась, Я упираюсь в тупик. Но ведь тот кто писал применял на практике эти знания/код. И поэтому все скаллапсировалось в установке дос
давно
Советник
400484
472
15.02.2019, 13:12
общий
В книгах полно ошибок Подумай и над этим
давно
Советник
399015
1996
15.02.2019, 13:47
общий
Адресаты:
Я в начале 90-х учился программировать дизассемблируя программы, у меня первой программой был отладчик (дебуггер) и ни одной книги, одни эксперименты и только 1 знакомый, который сам осваивал это дело самостоятельно, и это была страсть и эксперименты... Дни, ночи, сутки... Честно говоря я не знаю как учат его сейчас.

Компьютер был БК-11 (16 разрядный процессор КР1801ВМ1 и где было всего лишь 6! общих регистров R0-R5)
давно
Посетитель
402218
66
15.02.2019, 13:50
общий
[q=400484] В книгах полно ошибок/q]
Угу сталкивался с ними и пока что решал их силами гугла и собственными, конкретно Мой случай(я не про установку дос) не в ошибке, поскольку текст кода и описание работы совпадает, даже на других ресурсах.
давно
Посетитель
402218
66
15.02.2019, 14:03
общий
[q=399015][/q]
До ассемблер изучал другие языки, ассемблером увлёкся с третьего захода , накачал книг, и читаю все что написано, если не понимаю, то перечитываю, естественно что практикуясь сразу же. В итоге получилось так, что сам язык ассемблер не такой уж и сложный, проблема была с понимание архитектуры, которая легко решилась тем что начинал читать книгу заново и составлял в пэинте одну большую картинку из полей памяти, регистров, которая облегчило ориентирование при программировании.
давно
Советник
399015
1996
15.02.2019, 14:43
общий
Я бы сейчас занялся С++, а не ассемблером, но к сожалению годы к полтиннику приближают, что мозги уже не те, чувствуется.
давно
Советник
399015
1996
15.02.2019, 23:51
общий
15.02.2019, 23:52
Адресаты:
Вы не поняли наш юмор. Представьте что моя фраза относится к началу 90-х когда у меня стоял 286 компьютер (да и то не мой) с 1 мегабайтом памяти и всё.

Добрый день, Как же это давно было....


solowey: MS-DOS 6.22 ... Документации мало ... практически нет ... русского языка в программах ... эээ а вам зачем smile интернет ... эээ ааа ооо ... а что это ? Голова есть, разбирайся. Сейчас даже головы не нужно ... smile
давно
Старший Модератор
31795
6196
16.02.2019, 00:25
общий
Адресаты:
Цитата: Kdsfofwe21
Я учусь ассемблеру

это происходит сейчас.
Цитата: Sergey V. Gornostaev
к началу 90-х когда у меня стоял 286 компьютер (да и то не мой) с 1 мегабайтом памяти и всё.

аналогично, только в моём распоряжении был ещё "Персональный Комп" - РК-86, голый без довесков.

Ну учит человек ассемблер, ну и ладно, вот только RM-PM-RM, кратковременно не влияет на железо. Если прыжок будет длительный, то после перезагрузки или прыжка обратно таймер будет не адекватный - в минусе.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
16.02.2019, 01:08
общий
Адресаты:
Цитата: Kdsfofwe21
хочу набраться навыка для программирования в защищённом режиме

Программирование в РМ, это не программирование под ОСью, Это сама ОСь. Если при работе с внешними устройствами, системный таймер - один из них, под ОСью, за все отвечает сама ОСь, то в РМ - это Ваша ответственность, Вам нужно будет писать Самому все обработчики, даже самой мелкой СБИС, размером с копейку.

Если, Вы собрались писать программы в 32-ух или 64-ом битном режиме адресации, без лишних проблем, под ОСью - пропускайте раздел(т.е. бегло прочитайте) РМ, просто помните, что это есть.


Если, Вы собрались писать ОСь, то Рудаков и Финогенов, Вам не помогут, даже Таненбаум со Столлингсом, с их кучей книг по анализу ОСей, то всё, чем занималась ОСь, Вы должны будете Сами это делать.

Ответ, за Вами: ОСь или приложение под ОСь?
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
402218
66
16.02.2019, 09:37
общий
Цитата: Зенченко Константин Николаевич
Программирование в РМ, это не программирование под ОСью, Это сама ОСь

То есть Я просто должен использовать, для вин 10 например, винАпи, и не пытаться обратиться участкам памяти/регистрам, потому что ось Мне это не позволит сделать?

Вы наверное помните, Я задавал Вам вопрос в разделе Ассемблер, там у Меня вопрос был на счёт RM-PM-RM, получается что именно эти переходы можно сделать только на голом железе?
В книге Рудакова Финогенова написан код который выполняет сначала прерывания дос, потом переходит в защищённый режим, затем обртано в реальный.
При отработке такой проги в одном варианте виртуалка зависает, но если сбрасывать процессор то дос виртуалка продолжает работать.
Так как Я не смог установить дос на реальное железо, то работал через флэш-hdd, там у меня оба варианта перезагружали комп.
Цитата: Зенченко Константин Николаевич
Ответ, за Вами: ОСь или приложение под ОСь?

Приложение под ось.
Да Я уж думал как Вы :), что бы пропустить этот раздел, но посчитал что если не делать примеры которые там описаны, то толку от чтения. Хотя конечно эти дескрипторы, селекторы, теневые регистры, и их поля, на почве моих неудач Я запомнил на всю жизнь
давно
Старший Модератор
31795
6196
16.02.2019, 21:26
общий
Адресаты:
Цитата: Kdsfofwe21
То есть Я просто должен использовать, для вин 10 например, винАпи, и не пытаться обратиться участкам памяти/регистрам, потому что ось Мне это не позволит сделать?

Ну, Вы не правильно все поняли. Код под ОСью, будет выглядеть так:
[code lang=asm]format PE console
entry enter_num
include 'win32a.inc'

section '.data' data readable writable
msg1 db "Test %d",0dh,0ah,0
text db '10',0

section '.text' code readable executable
enter_num:
mov edi, text
mov eax, '1'
invoke printf,msg1,eax
invoke printf,msg1,[edi]

finish: invoke getch
cmp eax,27
jnz enter_num
invoke ExitProcess, 0

section '.idata' import data readable
library kernel,'kernel32.dll',\
msvcrt,'msvcrt.dll'

import kernel,\
ExitProcess,'ExitProcess'

import msvcrt,\
printf,'printf',\
scanf,'scanf',\
getch,'_getch'[/code]

Средства, которые предоставляет ОСь:-библиотеки( library kernel,'kernel32.dll', msvcrt,'msvcrt.dll' ) , а также функции, которые эти библиотеки содержат (msvcrt: printf,'printf', scanf,'scanf', getch,'_getch').

В отличии, от RM, где, любая программа, из любого места, могла обратится к любому участку памяти, к любому ресурсу. Ось, Вам такой роскоши не даст.
Под ОСью, Ваша программа, может делать всё, что ей угодно, но только на выделенном ей участке памяти 4Гб, даже когда физической памяти, всего 1Гб, и некоторое её количество сожрала сама ОСь. Виртуальная память, будет поделена на страницы, активные в данный момент - будут в памяти, не активные - выгружены, при необходимости, они могут быть загружены в любой момент, по нужному виртуальному адресу, но не факт, что тот физический адрес, где этот код был раньше, снова окажется там. Скорее всего будет новый свободный физический адрес.

К ресурсам, у Вас тоже будет доступ, но только посредством WinAPI, вернее функций, которые предоставляет эта WinAPI. Работу с ресурсами РС, посредством драйвером, пока не вспоминаем.


Цитата: Kdsfofwe21
Да Я уж думал как Вы :), что бы пропустить этот раздел, но посчитал что если не делать примеры которые там описаны, то толку от чтения.

В реальности IDE(Delphi, C++, и другие Studio) позволяют писать код уже в РМ, но только под ОСь. При этом, они избавляют Вас от всех тонкостей взаимодействия с железом. Чтобы прочитать файл, Вам не нужно знать сектор, дорожку, головку HDD, ОСь, всё сделает сама, ей нужно только имя файла, для функции. Для вывода информации, Вам не нужно знать физический адрес памяти, который связан, с видео-картой, Вам не нужно знать видео-режим, просто выводите выводите текст нужной функцией.

Знание РМ будет полезно, но практическое применение этих знаний возможно только при программировании железа и написании драйверов.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
402218
66
17.02.2019, 05:56
общий
Цитата: Зенченко Константин Николаевич
В отличии, от RM, где, любая программа, из любого места, могла обратится к любому участку памяти, к любому ресурсу. Ось, Вам такой роскоши не даст.

Когда начинал изучать ассемблер, естественно под дос, то поняв как всё там работает, Я просто сделал вывод что 32-х разрядное программирование всего лишь изменит обращение к операндам которые будут тоже 32х битными, но сейчас то Я уж понимаю что в связи с архитектурной особенностью такой принцип не позволит обратиться ко всему адресному пространству, и тут в силу вступают дескрипторные таблицы, это для Меня понятно, и понятно что в таблицах будут находится и свои "фирменные" прерывания, и даже давайте Я не буду углубляться именно в эти прерывания, Мне интересно, в ms-dos каким способом реализовано прерывание 21H? По началу Я думал что возможно через прерывания BIOS, но как то слишком было бы. Или к примеру у разработчиков(Била Гейтса возьмём) был список с машинными кодами микропроцессора и Он уже таким образом создавал для своей операционки прерывания?

Цитата: Зенченко Константин Николаевич
В реальности IDE(Delphi, C++, и другие Studio) позволяют писать код уже в РМ, но только под ОСь...

Да понятно что абстрагирование, ускоряет и облегчает программирование, и даже по началу Я бы мог и не обращать на это внимание, а может некоторые даже и не разбираются в том что это за библиотеки используются в их коде, просто пишут и всё. Мне вот стало интересно, вот и начал с самого (почти что)начала. Поэтому и терроризирую некоторых людей и Вас тут
Цитата: Зенченко Константин Николаевич
Знание РМ будет полезно, но практическое применение этих знаний возможно только при программировании железа и написании драйверов.

Спасибо за совет. Операционку писать это для Меня слишком было бы. А вот программирование, написание драйверов для аппаратуры может и было бы интересно
давно
Мастер-Эксперт
259041
7459
17.02.2019, 09:58
общий
Адресаты:
Когда Вы приступаете к очередному диалогу "Добавить сообщение в мини-форум консультации", то пожалуйста не ленитесь кликнуть по чёрному треугольничку правее поля "Кому", и из выпадающего списка участников Вашего минифорума выберите адресата, к которому Вы обращаетесь. Иначе почтовая программа Портала рассылает Ваше сообщение ВСЕМ участникам и понапрасну беспокоит их.
давно
Посетитель
402218
66
17.02.2019, 10:02
общий
Адресаты:

хорошо. не обратил внимания на такую функцию, спасибо.
давно
Мастер-Эксперт
259041
7459
17.02.2019, 14:20
общий
Адресаты:
Вы готовитесь стать Программистом. Поэтому Вам теперь надо обращать внимание на все кнопки, контексты и даже пытаться ловить всплывающие подсказки! =Удачи!
давно
Старший Модератор
31795
6196
17.02.2019, 15:55
общий
Адресаты:
Цитата: Kdsfofwe21
Мне интересно, в ms-dos каким способом реализовано прерывание 21H

Механизм прерывания устроен одинаково для аппаратной и программной части. Разница в том, что программное прерывание запланировано, а аппаратное - нет и может произойти в любой момент, поэтому имеет больший приоритет. Аппаратное прерывание может прервать, только аналогичное прерывание, но с высшим приоритетом, а программное имеет самый низкий приоритет. Аналогично обрабатываются и исключения типа "деление на ноль".
Генерируется аналог программного прерывания.
Произошло прерывание, в стеке пишут флаги, сегмент и смещение. Код который обрабатывает все прерывания, читает следующий байт, и JMP FAR [ 0000 : byte*4 ], все дальше работает код обработчика.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
402218
66
17.02.2019, 16:29
общий
Адресаты:
не. имел ввиду такое. функция 09h, вывод на экран, Я к примеру как не знающий человек, попытался бы с помощью биоса реализовать подобною функцию, но один фиг Мне бы пришлось прибегнуть к функции доса 25h, что бы установить вектор собственного прерывания.
Но вот если нету доса, то как то ведь прерывания создавались, у Меня сейчас одна идея, что прерывания ms-dos могли программировать на прямую, через машинные команды, так как у Меня в голове не укладывается как ещё такое можно сделать. Или всё на самом деле просто, и Я чего то не знаю(что вероятно )
давно
Старший Модератор
31795
6196
17.02.2019, 21:02
общий
Не хочу Вас огорчать, но каждая книга по Ассемблеру, показывает только грань всех возможностей этого языка. Какие аспекты рассмотрены, зависит от предпочтений автора книги.

Одни - ставят упор на DOS, кратко охватывая, или игнорирование остальное.
Другие - ставят упор на Windows, кратко охватывая, или игнорирование остальное.
Третьи - кратко, так ничего и не сказав, охватывают всё, но пол книги посвящено основам языка.

Грустно, но таковы реалии, всех книг по Ассемблеру. Если, это сравнивать с другими ЯП, там все просто: ввод - вывод - циклы - условия. Блин никакой романтики.
Другое дело АСМ:
- вывод: функции DOS, документированные и нет, BIOS, прямая запись в буфер.
- ввод: функции DOS, BIOS, обработчик клавы.
- циклы и условия, это вообще полет фантазии.

Список книг, Вы могли видеть, когда задавали свои вопросы:
Книги по Ассемблеру
Assembler для DOS, Windows и UNIX - Зубков С.В.
Assembler. Практикум - Юров В.И.
Assembler. Учебник для вузов - Юров В.И.
Assembler. Учебный курс - Пирогов В.Ю.
Архитектура IBM PC и язык Ассемблера - Митницкий В.Я.
Программирование на языке ассемблера IBM PC - Пильщиков В. Н.
Ассемблер в задачах защиты информации - Абашев А.А.
Ассемблер для процессоров Intel Pentium - Магда С.Ю.
Ассемблер и дизассемблирование - Пирогов В.Ю.
Ассемблер и программирование для IBM PC - Абель Питер
Изучаем ассемблер - Крупник А.Б.
Искусство программирования на Ассемблере. Лекции и упражнения - Голубь Н.Г.
Персональные ЭВМ IBM PC и XT. Программирование на языке ассемблера - Скэнлон Л.
Системное программирование на персональном компьютере - Фельдман С.К.
Язык ассемблера для процессоров Intel - Ирвин, Кип
Язык ассемблера. Уроки программирования - Рудаков П.И.
Ассемблер для Windows - Пирогов В.Ю.
Ассемблер. Разработка и оптимизация Windows-приложений - Магда Ю.С.
Программирование на аппаратном уровне. Специальный справочник - Кулаков В.
Программирование аппаратных средств в Windows - Несвижский В.
Программирование на языке ассемблера для микропроцессоров 8080 и 8085 - Л. Левенталь
Программирование на языке ассемблера для микроконтроллеров семейства i8051 - Каспер Эрни

Ссылки, которые там указаны, могут и не работать, но главное название.

Цитата: Kdsfofwe21
функция 09h, вывод на экран

Калашников О. Ассемблер. Это просто.. Глава 10.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Советник
399015
1996
18.02.2019, 07:53
общий
В своё время сломав сотни программ через дебугер я поражался различию в стилях написания кода, одни делали программы явно и как по нотам, можно было разобрать программу на винтики, другие начинали программировать так нестандартно что подготовка прерываний, переадресация была неявной и запутывала начиная с первых строк, практически не использовались все стандартные подпрограммы системы. В "конце" пути я подошёл не, как и многие, к написанию своего языка, а к функциональному отладчику, но остановило отсутствии документации по командам и в следствии этого нудная и долгая необходимость обрабатывать 65535 единиц кода для перевода в команды ассемблера.

p.s. К посту Зенченко Константина Николаевича, в том что ассемблер ассемблеру рознь, у каждого формируется либо свой стиль программирования, либо какая то настольная книга по языку накладывает сильный отпечаток на системщика, тем более в наше время, когда за модернизациями, программами просто не успеваешь физически изучить достаточно, завтра уже выходи что-то новое и всё начинается сначала. Век скоростей блин, поэтому и годами выпускают заплатки, следующие редакции программ, а об оптимизации кода даже речи не идёт. Как то так.
давно
Старший Модератор
31795
6196
18.02.2019, 22:43
общий
это ответ
Здравствуйте, Kdsfofwe21!

Посмотрел "Оглавление" - Рудаков - Финогенов.
Приложение 1,3 Команды процессора 523 - 558 =35 страниц, добавим сопроцессор 594 - 563=31 страница =66 страниц. Зубков С. Assembler для DOS, Windows и UNIX - пол книги.
Приложение 4-5 Справочные данные по функциям DOS - BIOS 629 -594, вместе форой "коды ошибок" = 35 страниц. Данкан Р. Профессиональная работа в MS-DOS -505 - 259=246 страниц.

Статья 50. Ввод с клавиатуры
Статья 51. Вывод на экран средствами DOS
Статья 52. Вывод на экран средствами BIOS
Статья 53. Вывод графических изображений. Современные видео-режимы 237 - 223 = 14 страниц

Забыли указать прямая запись в видео-буфер.

Вывод с помощью OUT в видео-контролер, в любых видео-режимах, это вообще на книгу потянет.
И такое сравнение, можно, продолжать и продолжать.

Это о том, что:
Цитата: Зенченко Константин Николаевич
Одни - ставят упор на DOS.
Другие - ставят упор на Windows.
Третьи - кратко, так ничего и не сказав, охватывают всё.

Но все авторы : пол книги посвящают основам языка. Вот так все грустно.

Список книг, у Вас есть. Но до РМ, Вам ещё далеко.
Удачи!
5
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа