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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2010, 17:12   #1
QBobs
Новичок
Джуниор
 
Аватар для QBobs
 
Регистрация: 22.11.2008
Сообщений: 2
По умолчанию Установка видеорежимов (ассемблер + С++)

Здраствуйте, вопрос в следующем
Имеется файл Set_mode.obj:
======================
Код:
;функция устанавливает нужный видеорежим

.MODEL MEDIUM,C
.CODE
PUBLIC Set_mode

Set_mode PROC FAR C mode:WORD

mov AH, 0
mov AL, BYTE PTR mode
int 10h
ret

Set_mode ENDP
END
======================

Как мне её подключить и использовать в VC++ 2008,
чтобы получилось следующее без ошибок:

======================
//Си часть
Код:
#include <stdio.h>
#include <conio.h>
#define VGA256 0x13
#define TEXT_MODE 0x03

void main()
{
Set_Mode(VGA256);
_getch();
Set_Mode(TEXT_MODE);
}
======================


Спасибо

Последний раз редактировалось Stilet; 19.08.2010 в 17:16.
QBobs вне форума Ответить с цитированием
Старый 19.08.2010, 17:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Звиняюсь за оффтоп, но по-моему финт с вызовом прерываний виндоус не позволит.
В ДОС такое прокатит, но в винде...

Я вот ради интереса попробовал:
Код:
{
	_asm{
		mov AH, 0
		mov AL, 0x13
		int 10h
	}
	getchar();
	_asm{
		mov AH, 0
		mov AL, 0x03
		int 10h
	}
		return 0;
}
Соответственно попался на AV
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.08.2010, 17:21   #3
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Код ассемблера для ОС DOS, VC++ 2008 для ОС windows, следовательно никак.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 19.08.2010, 17:23   #4
QBobs
Новичок
Джуниор
 
Аватар для QBobs
 
Регистрация: 22.11.2008
Сообщений: 2
По умолчанию

Спасибо понял
QBobs вне форума Ответить с цитированием
Старый 20.08.2010, 07:07   #5
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

QBobs
Пример установки разрешения 1152х864 под Windows
Код:
; masm windows gui #
.686P
.model flat
include windows.inc
includelib user32.lib
extern _imp__ChangeDisplaySettingsA@8:dword
extern _imp__EnumDisplaySettingsA@12:dword

.code
start:	mov edi,offset lpDevMode
	push edi
	push ENUM_CURRENT_SETTINGS
	push 0
	call _imp__EnumDisplaySettingsA@12
	assume edi:ptr DEVMODE
	mov [edi].dmPelsWidth,1152;
	mov [edi].dmPelsHeight,864;
        mov [edi].dmFields,(DM_PELSWIDTH or DM_PELSHEIGHT)
	assume edi:nothing
	push CDS_UPDATEREGISTRY
	push edi
	call _imp__ChangeDisplaySettingsA@8
	ret
.data
lpDevMode DEVMODE <>
end start
И не надо никаких int 10h
Mikl___ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ассемблер farxad Помощь студентам 6 11.09.2016 14:19
Ассемблер varyat Помощь студентам 0 23.05.2010 17:48
Ассемблер. чтение/установка времени blackbanny Помощь студентам 2 27.10.2009 17:57
Ассемблер maziLa Помощь студентам 3 06.07.2009 10:31
Ассемблер InTest Фриланс 1 12.12.2007 02:05