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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2012, 19:21   #1
The Real Kos
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 18
Восклицание Не могу понять, почему ругается на это :(

В общем. Нужно создать загрузочный файл для флешки. Препод сказал использовать программу debug.exe. Прописываю все необходимое. И вот нужно вводить свой код.
Есть формула окружности x^2+y^2=R^2. Если рисовать по ней, то на экране получатся только концентрические окружности. Сделаем формулу x^2-y^2=R^2. Это даст муаровый эффект, особенно при небольших R, который мы и наблюдаем в программе. Переносим R^2 влево. (x^2-y^2)/R^2=c.
Теперь, если рисовать на экране по очереди точки с координатами x и y и цветом c and 1, то будет рисоваться муаровый эффект. R^2 - просто константа. От нее зависит вид рисунка.

Код:
{ Переход в графич. режим }
mov ax,13h
int 10h

std // установка флага направления DF, рисовать будем в обратном направлении от конца экрана к началу
push 0a000h // сохранение в стеке, почему имеено такого слова и вообще зачем?(сегмент видеопамяти для прямого доступа к видеопамяти)
pop es // извлечение из стека
mov bp,4 // ?R^2
m3:
mov di,320*200-1 //послений байт видеопамяти в режиме 13Н
mov bx,200 //y
m2:
mov cx,320 // x
m1:
mov ax,bx //
mul ax //y^2
mov si,ax //сохраняем y^2
mov ax,cx //
mul ax //x^2
sub ax,si // вычитание одного из другого x^2-y^2
sbb dx,0 // коррекция dx для деления 32/16 бит
idiv bp // деление ???(x^2-y^2)/y^2
and al,1 получения цвета, которым рисовать
stosb рисование точки на экране
loop m1 // переход на m1, уменьшение х
dec bx уменьшение y
jnz m2 // переход на m2, если не 0
inc bp увеличение R^2
jnz m3
{ Ожидание нажатия клавиши }
xor ah,ah
int 16
{ Восстановление видеорежима }
mov ax,3
int 10
{ Перезагрузка }
int 19
Ругается, когда начинаю писать m3, дальше вообще не дает, думаю что так же будет ругаться на m2 и m1. Если смотреть через dosBox то все нормально

Последний раз редактировалось The Real Kos; 18.09.2012 в 20:27.
The Real Kos вне форума Ответить с цитированием
Старый 19.09.2012, 04:07   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

TheRealKos, судя по комментариям, заключенным в фигурные скобки -- это ассемблерный фрагмент вставленный в программу на Паскале, на сколько я помню, в паскальевских программах метки описываются в разделе описания меток, вот фрагмент из учебника
Цитата:
Любой оператор в программе может быть помечен меткой. Имя метки задается по правилам образования идентификаторов Турбо Паскаль. В качестве метки также могут использоваться произвольные целые числа без знака, содержащие не более четырех цифр. Метка ставится перед оператором и отделяется от него двоеточием. Все метки, используемые в программе, должны быть перечислены в разделе описания меток, например:
label 3, 471, 29, Quit;

Последний раз редактировалось Mikl___; 19.09.2012 в 10:08.
Mikl___ вне форума Ответить с цитированием
Старый 19.09.2012, 08:25   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
это ассемблерный фрагмент вставленный в программу на Паскале
Врядли... Паскаль, в котором применяются прерывания и 16-битные регистры не понимает коментов через //
Цитата:
Ругается, когда начинаю писать m3
Как ругается?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.09.2012, 08:46   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

кто понял, о чём данная тема (что нужно TC) - просьба переименовать тему, так,
чтобы название отражало суть проблемы.
Заранее большое спасибо.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.09.2012, 10:07   #5
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

Кажется, я понял, здесь ключевые слова
Цитата:
Препод сказал использовать программу debug.exe
The Real Kos, для начала напиши и отладь программу обычным способом через компилятор и линкер, затем получи листинг программы, там вместо меток будут стоять адреса, вот их и будешь использовать, когда будешь писать программу через debug.exe, хотя, IMHO, преподаватель заставляет вас заниматься онанизмом
Mikl___ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу понять почему не дорисовывает.. victor5133 Общие вопросы C/C++ 0 24.02.2012 12:55
не могу понять как это работает Константин78 Помощь студентам 4 01.09.2011 00:31
Не могу понять в почему ошибка Donim Паскаль, Turbo Pascal, PascalABC.NET 5 08.06.2011 23:07
Почему не работает...хм....понять не могу! Артур Иваныч Microsoft Office Excel 9 01.12.2009 17:58
Не могу понять почему блокируется папка Paul Hindenburg Общие вопросы Delphi 4 07.05.2009 10:47