WMmail.ru - сервис почтовых рассылок

четверг, 26 апреля 2018 г.

RFpro.ru: Ассемблер? Это просто! Учимся программировать

  
Зарегистрируйся в Goodgame Empire и получи настоящий меч!
  
  
Зарегистрируйся в Goodgame Empire и получи настоящий меч! Зарегистрируйся в Goodgame Empire и получи настоящий меч!
Ты также можешь выиграть замечательные призы в событии "Сражение за Клинок ярости". Получай уровни и продвигайся в списке лучших игроков.
  
Subscribe.ru
RFpro.ru: Ассемблер? Это просто! Учимся программировать

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 242
• повысить рейтинг »
Evgen aka Chuma
Статус: 6-й класс
Рейтинг: 0
• повысить рейтинг »
quirck
Статус: 1-й класс
Рейтинг: 0
• повысить рейтинг »

• Assembler

Номер выпуска:1694
Дата выхода:27.04.2018, 01:15
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:56 / 18
Вопросов / ответов:1 / 1

Консультация # 193128: Здравствуйте уважаемые эксперты! Подскажите, пожалуйста, на примерах (с поясниниями), как рассчитать рамку окна в центре экрана? Дано: нулевая видеостраница в текстовом режиме (№ 0); Адрес 0B800:0000h – 0B800:0FFFh Экран 80х25. видеорежим 3; Задание, вывести рамку в середину экрана (в середину экрана 80х25). Регистры, оп...

Консультация # 193128:


Здравствуйте уважаемые эксперты!
Подскажите, пожалуйста, на примерах (с поясниниями), как рассчитать рамку окна в центре экрана?
Дано:
нулевая видеостраница в текстовом режиме (№ 0);
Адрес 0B800:0000h – 0B800:0FFFh
Экран 80х25.
видеорежим 3;
Задание, вывести рамку в середину экрана (в середину экрана 80х25).
Регистры, операторы, числа по высоте, и ширине – ваши, на ваше усмотрение.
---------------
С уважением, KerenskyAF

Дата отправки: 22.04.2018, 00:55
Вопрос задал: kerenskyaf (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Зенченко Константин Николаевич (Модератор):

Здравствуйте, kerenskyaf!

Код TASM:

Код (Assembler) :: выделить код
model	tiny,pascal  code  org	100h  szScreenH	equ	80;разиер экрана  szPole		equ	2;кол-во байт на символ(символ+аттрибут)  RamkaH		equ	10;левый верхний угол по горизонтали  RamkaV		equ	05;левый верхний угол по вертикали  szRamkaH	equ	20;разиер по горизонтали  szRamkaV	equ	9;размер по вертикали  Fon		equ	3;цвет фона  color		equ	15;цвет выводимого символа  Simbol		equ	'*';выводимый сивол  Space		equ	' ';пробел для фона  ;цстанавливаем режим  begin:	mov	ax,3  	int	10h  ;сегментный регистр настраиваем на видео буфер  	mov	ax,0B800h  	mov	es,ax  	cld  ;рисуем фон  	mov	ax,(RamkaV*szScreenH+RamkaH)*szPole  	MOV	bx,szRamkav;  	mov	cx,szRamkaH;  	mov	dx,(Fon*16+color)*100h+space;  	call	Squere,ax,bx,cx,dx  ;рисуем линию символов рамки горизонтальную  	mov	ax,(RamkaV*szScreenH+RamkaH)*szPole  	MOV	bx,1;  	mov	cx,szRamkaH;  	mov	dx,(Fon*16+color)*100h+simbol;  	call	Squere,ax,bx,cx,dx  ;рисуем линию символов рамки вертикальную  	mov	ax,(RamkaV*szScreenH+RamkaH+szRamkaH)*szPole  	MOV	bx,szRamkaV;  	mov	cx,1;  	mov	dx,(Fon*16+color)*100h+simbol;  	call	Squere,ax,bx,cx,dx  ;рисуем линию символов рамки горизонтальную  	mov	ax,((RamkaV+szRamkaV-1)*szScreenH+RamkaH)*szPole  	MOV	bx,1;  	mov	cx,szRamkaH;  	mov	dx,(Fon*16+color)*100h+simbol;  	call	Squere,ax,bx,cx,dx  ;рисуем линию символов рамки вертикальную  	mov	ax,(RamkaV*szScreenH+RamkaH)*szPole  	MOV	bx,szRamkaV;  	mov	cx,1;  	mov	dx,(Fon*16+color)*100h+simbol;  	call	Squere,ax,bx,cx,dx  ;возврат в ОСь  	ret  ;  Squere	proc	a:word,b:word,c:word,d:word  uses	ax,cx,di  	mov	di,a  	mov	cx,b  	mov	ax,d  @@01:	push	cx  	push	di  	mov	cx,c  	rep	stosw  	pop	di  	add	di,szScreenH*szPole  ;	add	di,c  	pop	cx  	loop	@@01  	ret  Squere	endp  	end	BEGIN

Результат работы на картинке(у меня WIN7-32 бита).
Удачи!

Консультировал: Зенченко Константин Николаевич (Модератор)
Дата отправки: 22.04.2018, 17:46
Прикреплённый файл: посмотреть » [6.8 кб]
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


 
     Прошлые выпуски
RFpro.ru: Ассемблер? Это просто! Учимся программировать RFpro.ru: Ассемблер? Это просто! Учимся программировать RFpro.ru: Ассемблер? Это просто! Учимся программировать Все выпуски рассылки
 
Если выпуск не отображается, вы можете прочесть его на сайте

Это сообщение было отправлено на admin10383.deep@blogger.com потому, что вы подписались на рассылку comp.prog.assembler на subscribe.ru.
Чтобы гарантировать получение писем от нас — добавьте наш адрес в адресную книгу.

Вы можете отказаться от получения писем.

Архив рассылки Поддержка подписчиков

Комментариев нет:

Отправить комментарий