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

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

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2013, 05:15   #61
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Цитата:
кидаю через виртуальный диск в DOS машину
По моему дос-эмулятор не умеет в полноценную эмуляцию x86 (т.е. с защищенным режимом и всем таким, это если про DOSBOX). Код выше это загрузчик из реального режима в защищенный. Тут нужна полноценная виртуальная машина, например Bochs. Да и честно говоря я не уверен, что это будет работать. Насколько помню биос грузит кажется на 7900-куда-то (в 16-ричной системе), соотвественно ORG должен быть другим, разве что если это все из dos-а грузится, тогда да, там уже все основные этапы загрузки пройдены и обитает программа там откуда ее запустили. Хотя я уже не помню честно говоря, давно это было.
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 08.11.2013, 08:50   #62
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Цитата:
разве что если это все из dos-а грузится, тогда да, там уже все основные этапы загрузки пройдены и обитает программа там откуда ее запустили. Хотя я уже не помню честно говоря, давно это было
Там org 100h, значит по задумке автора это com программа.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 08.11.2013, 09:03   #63
fipsiksi
Пользователь
 
Регистрация: 07.11.2013
Сообщений: 20
По умолчанию

У меня VMware player. Образ MS-DOS_6.22_for_VMware_Workstation. Ну в книге конечно написано, что VMWare слишком сложный и заточен под windows...но каккая разница? Что он как-то неправильно эмулирует? QEMU я как-то не нашёл. Придется реальный dos запускать. Может у кого-нить есть...попробуйте работает? Просто работает или нет? (Самое забавное что это каркасная программа, и остальные программы в книге как бы дополнения, т.е. они тоже не будут работать. Кто-нибудь из тех кто читал эту книгу ассемблировал эти программы?)

Последний раз редактировалось fipsiksi; 08.11.2013 в 09:33.
fipsiksi вне форума Ответить с цитированием
Старый 09.11.2013, 01:05   #64
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от fipsiksi Посмотреть сообщение
У меня VMware player. Образ MS-DOS_6.22_for_VMware_Workstation. Ну в книге конечно написано, что VMWare слишком сложный и заточен под windows...но каккая разница? Что он как-то неправильно эмулирует? QEMU я как-то не нашёл. Придется реальный dos запускать. Может у кого-нить есть...попробуйте работает? Просто работает или нет? (Самое забавное что это каркасная программа, и остальные программы в книге как бы дополнения, т.е. они тоже не будут работать. Кто-нибудь из тех кто читал эту книгу ассемблировал эти программы?)
VMWare, QEMU, Bochs - прекрасно работают

Цитата:
Сообщение от Ivan_32 Посмотреть сообщение
. Да и честно говоря я не уверен, что это будет работать. Насколько помню биос грузит кажется на 7900-куда-то (в 16-ричной системе), соотвественно ORG должен быть другим, разве что если это все из dos-а грузится, тогда да, там уже все основные этапы загрузки пройдены и обитает программа там откуда ее запустили.
Посмотри внимательно, адреса там вручную перевычисляются.
rpy3uH вне форума Ответить с цитированием
Старый 09.11.2013, 22:36   #65
fipsiksi
Пользователь
 
Регистрация: 07.11.2013
Сообщений: 20
По умолчанию

rpy3uH,
а у меня не работает. Я бы .com выложил, но вроде как нельзя. А можно хотя бы скрин выложить. Вот у меня просто курсор и темный экран в вирт машине.. кстати VMware Player версия 3.1.4 build-385536, а у вас?
fipsiksi вне форума Ответить с цитированием
Старый 09.11.2013, 22:56   #66
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что нельзя? На форум не загружается? Ну залейте в другое место и киньте ссылку. rghost, яндекс.диск, etc.
А скрины должны выкладываться. Ну или imgur, hostingkartinok, etc.

3.1.4 это что-то сильно древняя, последняя 6 на офф. сайте.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 09.11.2013 в 23:01.
Alex11223 вне форума Ответить с цитированием
Старый 10.11.2013, 19:11   #67
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от fipsiksi Посмотреть сообщение
rpy3uH,
а у меня не работает.
А теперь для особо одарённых.

Нужно:
1. Нормальная виртуальная машина
2. На виртуальной машине должен быть DOS
3. запустить программу

Последовательность:
1. Запустить виртуальную машину
2. Должна загрузиться операционная система DOS
3. Перейти в каталог с программой
4. Запустить программу

В конце концов можно провертить на реальной машине. Создаём загрузочную дискету DOS, кидаем на неё .com-файлик. Перезагружаем компьютер, в биосе ставим загрузку с дискеты. С дискеты загружается DOS, запускаем программу.
rpy3uH вне форума Ответить с цитированием
Старый 10.11.2013, 22:14   #68
fipsiksi
Пользователь
 
Регистрация: 07.11.2013
Сообщений: 20
По умолчанию

rpy3uH,
я вроде бы не идиот и понимаю как это делается, можно было без подробностей. Говорю же не работает. У кого-нибудь ещё работает? А то это какая-то тупиковая ситуация получается.
http://rghost.ru/50082801 - вот..com файл, прямо к книге прилагался. правда это не совсем тот код который я написал выше, а "усовершенствованный". Вот он:
Код:
ORG 100h

     STACK_BASE_ADDRESS 	 equ 200000h
     USER_PM_CODE_BASE_ADDRESS	 equ 400000h
     USER_PM_CODE_SIZE equ USER_PM_CODE_END - USER_PM_CODE_BASE_ADDRESS

     CODE_SELEKTOR  equ 8h
     DATA_SELEKTOR  equ 10h
     VIDEO_SELEKTOR equ 18h

start:
		mov		ax,3
		int		10h

		in		al,92h
		or		al,2
		out		92h,al

		xor		eax,eax
		mov		ax, cs
		shl		eax,4
		add		eax, PROTECTED_MODE_ENTRY_POINT
		mov		[ENTRY_OFF],eax

		xor		eax,eax
		mov		ax,cs
		shl		eax,4
		add		ax, GDT

		mov		dword [GDTR+2],eax
		lgdt		fword [GDTR]

		cli
		in		al,70h
		or		al,80h
		out		70h,al

		mov		eax,cr0
		or		al,1
		mov		cr0,eax

		db		66h
		db		0EAh			
ENTRY_OFF	dd		PROTECTED_MODE_ENTRY_POINT		      
		dw		CODE_SELEKTOR

align 8
GDT:
	NULL_descr	db		8 dup(0)
	CODE_descr	db		0FFh,0FFh,00h,00h,00h,10011010b,11001111b,00h
	DATA_descr	db		0FFh,0FFh,00h,00h,00h,10010010b,11001111b,00h
	VIDEO_descr	db		0FFh,0FFh,00h,80h,0Bh,10010010b,01000000b,00h
	GDT_size	equ		$-GDT

label GDTR fword
		dw		GDT_size-1		
		dd		?		

use32

PROTECTED_MODE_ENTRY_POINT:
		mov	       ax, DATA_SELEKTOR
		mov	       ds, ax
		mov	       es, ax
		mov	       ss, ax
		mov	       esp, STACK_BASE_ADDRESS

		call delta
         delta:
		pop ebx
		add ebx, USER_PM_CODE_START-delta

		mov	       esi, ebx
		mov	       edi, USER_PM_CODE_BASE_ADDRESS
		mov	       ecx, USER_PM_CODE_SIZE
		rep	       movsb


		mov	       eax,USER_PM_CODE_BASE_ADDRESS
		jmp	       eax

USER_PM_CODE_START:
ORG USER_PM_CODE_BASE_ADDRESS

		include 'PM_CODE.ASM';

USER_PM_CODE_END:
PM_CODE.ASM:
Код:
	mov	       ESI, message	
	mov	       EDI, 0B8000h		   
	mov	       ECX,18		

	rep	       movsb			
	jmp	       $		

message: db "152535455565758595"
Правда этот код, довольно своеобразный, но по идее должен делать то же самое. Запустите com файл.

Последний раз редактировалось fipsiksi; 10.11.2013 в 22:33.
fipsiksi вне форума Ответить с цитированием
Старый 10.11.2013, 23:36   #69
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Ну например так.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 11.11.2013, 00:26   #70
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Ещё раз пошагово со скриншотами. Для особо одарённых.


Запустить виртуалку и загрузить DOS


Запустить файл pm.com



Файл работает




Ну и чего тут непонятного? Всё просто.
rpy3uH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование на Ассемблере Николай ПН Помощь студентам 3 23.03.2010 00:56
Программирование микроконтроллера 80С196КС на ассемблере KOCT9IH Фриланс 3 07.11.2008 13:03
На форуме был замечен супермодератор - Руслан. Alar О форуме и сайтах клуба 17 25.07.2008 21:01