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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2014, 21:07   #11
apofioz
Форумчанин
 
Регистрация: 22.01.2014
Сообщений: 313
По умолчанию

Ребят! может ещё поможете... при компиляции очередной проги выдаёт ошибку:
Цитата:
error A2006: undefined symbol : yc1
error A2006: undefined symbol : xc1
Что ему не нравится не пойму... Что за неопределённый символ и с чем его едят?))) Листинг прилагается.
Код:
     .386
data  segment
;Поля данных
x360      dd   180.0                 ;константа перевода градусы-радианы
x36       dw   360                   ;число точек на окружности
forcolor  db   10                    ;салатовый цвет
;Координаты цвета окружности
xc        dw   320
yc        dw   175
;Значение радиуса по осям
rx        dw   100
ry        dw   70
;Переменные
x         dw   ?                      ;текущие координаты точек окружности
y         dw   ?
angl      dw   1                      ;текущее значение угла
data   ends

text   segment use16
       assume cs:text,ds:data
;Программа изменения цвета пиксела
point   proc
      push cx
      mov  cx,xc
	  mov  ah,0Ch
	  mov  al,forcolor
	  mov  bh,0
	  fld  yc1     ----------------Вот это?
	  fistp yc
	  mov  dx,yc
	  fld  xc1      -------------- и вот это?
	  fistp xc
	  mov  cx,xc
	  sub  cx,x
	  sub  dx,y
	  int  10h
	  pop  cx
	  ret
point  endp
;Главная процедура
main   proc
;Подготовка данных
      mov  ax,data                     ;инициализация
	  mov  ds,ax                       ;регистра DS
	  mov  ah,0h                       ;функция установки графического режима
	  mov  al,10h                      ;режим 10h 640x350x16
	  int  10h                         ;прерывание BIOS
	  mov  cx,x36                      ;число шагов построения окружности
	  finit                            ;инициализация сопроцессора
	  fldpi                            ;загрузка в стек числа Pi
	  fld  x360                        ;загрузка в стек числа 360
	  fdiv                             ;pi/360, результат в ST
	  fstp x360                        ;сохраним в памяти коэффициента
	                                   ;перевод градусов в радианы
;Вычисление координат точек и вывод рисунка
do:
      fld  x360                        ;коэффициент градус-радианы в стек
	  fild angl                        ;очередное значение угла в стек
	  fmul                             ;перевод в радианы
	  fsincos                          ;sin(x) -- ST(1), cos(x) -- ST(0)
	  fild ry                          ;загрузка радиуса по координате Y
	  fmul                             ;вычисление координаты Y
	  fistp y                          ;запись её в память в формате целого
	                                   ;числа с извлечением из стека
	  fild  rx                         ;загрузка радиуса по координате X
	  fmul                             ;вычисление координаты X
	  fistp x                          ;запись её в память в формате целого
	                                   ;числа с извлечением из стека
	  fwait                            ;ожидание завершения работы сопроцессора
	  call  point                      ;вывод точки на экран
	  inc   angl                       ;приращение угла
	  loop  do                         ;цикл
;Задержка до нажатия клавиши
      mov   ah,8
	  int   21h
	  mov   ax,4C00h                   ;выход в DOS с кодом ошибки 0
	  int   21h

main   endp
text   ends

stk   segment stack 'stack'
      dw 128 dup (?)
stk   ends

end   main

Что-то больно часто не нравится ему обозначения различных переменных....
apofioz вне форума Ответить с цитированием
Старый 17.02.2014, 21:13   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а вы ткните пальцем в ваш код, где у Вас описаны переменные yc1 и xc1 ?!
Нет переменных - нет скопилированного кода!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.02.2014, 21:23   #13
apofioz
Форумчанин
 
Регистрация: 22.01.2014
Сообщений: 313
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а вы ткните пальцем в ваш код, где у Вас описаны переменные yc1 и xc1 ?!
Нет переменных - нет скопилированного кода!
В смысле их надо объявить в сегменте данных?!
Дело в том, что это я не от балды писал, а всего навсего списал с книги, там они не объявлялись, такое подозрение у меня было, ну, а что сделать... похоже автор прикололся . Надо подумать как их объявить.
apofioz вне форума Ответить с цитированием
Старый 17.02.2014, 21:30   #14
apofioz
Форумчанин
 
Регистрация: 22.01.2014
Сообщений: 313
По умолчанию

xc1 = 320
ус1 = 175

так или нет?
apofioz вне форума Ответить с цитированием
Старый 17.02.2014, 21:34   #15
apofioz
Форумчанин
 
Регистрация: 22.01.2014
Сообщений: 313
По умолчанию

А зачем при объявлении сегмента стека :
Цитата:
stk segment stack 'stack'
ещё раз в одинарных кавычках записывать 'stack'? Просто интересно... Или ответ, так исторически сложилось)))
apofioz вне форума Ответить с цитированием
Старый 17.02.2014, 22:12   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от apofioz Посмотреть сообщение
xc1 = 320
ус1 = 175

так или нет?
нет, не так.
это
xc равно 320
yc равно 175

а переменны xc1 и yc1 в коде не описаны!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.02.2014, 22:44   #17
apofioz
Форумчанин
 
Регистрация: 22.01.2014
Сообщений: 313
По умолчанию

Цитата:
а переменны xc1 и yc1 в коде не описаны!
Нет это для моих познаний пока что сложно. На кой их объявлял автор, если не описывал, что-то мне не понятно совсем. Хотя бы предупредил, что надо додумать самому или что-то в этом роде.
apofioz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки при инжекте joker Win Api 5 21.08.2012 11:04
Ошибки при линковке. ТриСемёрки Общие вопросы C/C++ 3 02.09.2010 21:31
MS Visual C++, ошибка при линковке... Пепел Феникса Visual C++ 2 08.09.2009 16:20
Ошибка при линковке Лотос Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 25 22.02.2009 20:24
ошибки при компиляции |{ot Общие вопросы Delphi 14 02.08.2008 01:20