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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2009, 00:12   #1
Познающий
Форумчанин
 
Аватар для Познающий
 
Регистрация: 09.05.2009
Сообщений: 162
По умолчанию Рисуем треугольник

Рисуем рисуем и никак не нарисуем

В общем вот отрывки кода

Код:
.MODEL small
	.STACK 100h
.DATA
N	DB	5
X	DB	4h
mes	db	'message ','$'

X1	db	4
x2	db	2

y1	db	4
y2	db	8


.CODE
main:

	assume	ss:@stack,ds:@data,cs:@code
	mov	ax,@data
	mov	ds,ax

;	call	task1
;	page закоментил вроде
	call	task2
	



	mov	ax,4c00h
	int	21h

task2	proc	near

	MOV	ah,0ch
	MOV	al,03h
	mov	BH,0
	MOV	DX,15
	MOV	CX,20
	INT	10H	

	mov	ah,0ah
	int	21h ;------ ввод с клавиатуры, чтоб приостановить программу

	ret
task2	endp

	end	main

покамись попробовал нарисовать точку - не получается (
Вываливается с примерно такими словами "инструкция по адресу 0х00000(ну вы поняли) якобы не может обратиться(или еще как-то взаимодействовать) с данными по адресу 0хba2354f(итд)"

И всё.

А задание,кстати, нарисовать треугольник прямоугольный сплошной толстой линией с шаблоном заполнения/////////

вот так...

Вопрос:
1 Почему вываливается?
1а Подскажите что дальше делать особенно, как сделать сплошную линию, и как заполнить слешами все?
С наилучшими пожеланиями.
Познающий вне форума Ответить с цитированием
Старый 19.11.2009, 00:23   #2
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Наверно чтобы нарисовать графическую точку нужно переключиться в графический режим ?
ф-ция 00h int 10h
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 19.11.2009, 08:43   #3
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Линию можно нарисовать при помощи алгоритма Брезенхема. В гугле можно найти исходник
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 19.11.2009, 18:02   #4
Познающий
Форумчанин
 
Аватар для Познающий
 
Регистрация: 09.05.2009
Сообщений: 162
По умолчанию

Goodwin98, не получилось (

Код:
task2	proc	near

	mov	ah,00h ; graghic mode
	int	10h

	MOV	ah,0ch
	MOV	al,03h
	mov	BH,0
	MOV	DX,15
	MOV	CX,20
	INT	10H	

	mov	ah,0ah
	int	21h ;------ ввод с клавиатуры, чтоб приостановить программу

	ret
task2	endp
я чессно вообще не разбираюсь фактически(
а лаба у нас "галопом по Ассемблеру"(
Я уже за середину Авеля зашел(
С наилучшими пожеланиями.
Познающий вне форума Ответить с цитированием
Старый 19.11.2009, 18:14   #5
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Нет ну наверно можно было и поглядеть про что я такого понаписал выше...
PHP код:
Описание режимовТо что нужно передовать в al
     AL  Type     Format   Cell  Colors        Adapter  Addr  Monitor
     
═══ ═══════  ═══════  ════  ═════════════ ═══════  ════  ═════════════
      
0  text     40x25     8x816/(shadesCGA,EGA  b800  Composite
      1  text     40x25     8x8
16/8          CGA,EGA  b800  Comp,RGB,Enh
      2  text     80x25     8x8
16/(shadesCGA,EGA  b800  Composite
      3  text     80x25     8x8
16/8          CGA,EGA  b800  Comp,RGB,Enh
      4  graphic  320x200   8x8  4             CGA
,EGA  b800  Comp,RGB,Enh
      5  graphic  320x200   8x8  4 
(shades)    CGA,EGA  b800  Composite
      6  graphic  640x200   8x8  2             CGA
,EGA  b800  Comp,RGB,Enh
      7  text     80x25    9x14
(b/w/bold)  MDA,EGA  b000  TTL Mono
 8
,9,0aH  PCjr modes
 0bH
,0cH  (reservedinternal to EGA BIOS)
     
0dH graphic  320x200   8x8  16            EGA,VGA  a000  Enh,Anlg
     0eH graphic  640x200   8x8  16            EGA
,VGA  a000  Enh,Anlg
     0fH graphic  640x350  8x14  3 
(b/w/bold)  EGA,VGA  a000  Enh,Anlg,Mono
     10H graphic  640x350  8x14  4 
or 16       EGA,VGA  a000  Enh,Anlg
     11H graphic  640x480  8x16  2             VGA      a000  Anlg
     12H graphic  640x480  8x16  16            VGA      a000  Anlg
     13H graphic  320х200  8x16  256           VGA      a000  Anlg 
Кстати если в треугольнике будут только углы 90° и 45° то можно обойтись и без алгоритма товарища Брезенхема.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 19.11.2009 в 20:17.
Goodwin98 вне форума Ответить с цитированием
Старый 19.11.2009, 19:13   #6
Познающий
Форумчанин
 
Аватар для Познающий
 
Регистрация: 09.05.2009
Сообщений: 162
По умолчанию

Гудвин, прочитал, но я глубоко извиняюсь... и не понимаю ничего(
Я прочел "нужно перейти в граф режим"

ф-ция 00h int 10h

я привел исходник

Код:
	mov	ah,00h ; graghic mode
	int	10h
теперь я изменил ah на al


Код:
	mov	al,00h ; graghic mode
	int	10h
затем в параметр поставил 06н( наугад есессно(
ну вываливается он,ну что делать?(
Я где-то не так объявляю наверное, но я не понимаю что не так(
С наилучшими пожеланиями.
Познающий вне форума Ответить с цитированием
Старый 19.11.2009, 19:20   #7
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

для примера
Код:
mov ax,0013h
int 10h
; число которое передается это режим 640х480 точек с 256 цветами, а список этих режимов я привел в таблице
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 19.11.2009, 19:54   #8
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Гудвин, извините, поправлю. Режим 13h - 320х200х256 цветов. Видеопамять начинается с сегмента A000h, каждая точка - это один байт памяти, его значение определяет цвет точки.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 19.11.2009, 20:11   #9
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Да виноват, подвел справочник. Конечно разрешение 320х200
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 19.11.2009, 20:58   #10
Познающий
Форумчанин
 
Аватар для Познающий
 
Регистрация: 09.05.2009
Сообщений: 162
По умолчанию

вот в чем дело было.
Регистр ah у меня просто необнуленный был

Спасибо Goodwin98)))

Только как линию-то жирной сделать?
С наилучшими пожеланиями.
Познающий вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисуем на image. Прозрачный фон. TwiX Общие вопросы Delphi 8 02.10.2009 19:22
Рисуем крестик (Delphi 7) alxd Помощь студентам 4 09.09.2009 17:46
РИСУЕМ В ПАСКАЛЕ red141 Паскаль, Turbo Pascal, PascalABC.NET 1 11.04.2009 00:52
Рисуем в ячейке DBGrig _SERGEYX_ Компоненты Delphi 10 02.06.2008 13:39
Треугольник serega11 Помощь студентам 2 22.05.2008 09:01