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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2011, 20:12   #1
dessaber
 
Регистрация: 07.03.2011
Сообщений: 4
По умолчанию Assembler - Рисование эллипса

Здравствуйте, дорогие люди. Дали задание - нарисовать эллипс. Придумал я рисовать так - вспомнил уравнение эллипса; возьму Y, к примеру, за -B; Х - за -A; буду наращивать Х до тех пор, пока ((X^2)/(A^2))+((Y^2)/B^2)) не равно 1; как только равно - нарисовал четыре точки: (Х, Y), (-X,Y), (-X,-Y), (X,-Y); скинул Х, нарастил Y и т.д. Вот до куда дошел:

Код:
.model  small
.stack  100h
.data
message1 db  0ah,0dh,'Enter A :  $'       
message2 db  0ah,0dh,'Enter B :  $'
message3 db  0ah,0dh,'Press <R> to repeat...$'
x db 0
y db 0
a db 0
b db 0
form db 0            ;((x^2)/(a^2))+((y^2)/(b^2))
.code
mov     ax,@data
mov     ds,ax
xor     ax,ax                    
;----------------------A-INPUTIN-------------------------
mov ah,9                               ;function for a string inputin
mov dx, offset message1                ;sendin the string to dx
int 21h                                ;callin an interception
mov ah, 1                              ;function for a symbol inputin
int 21h  
sub al,30h        
mov a,al
;---------------------B-INPUTIN--------------------------
xor al,al
mov ah,9                               
mov dx, offset message2                 
int 21h                                   
mov ah, 1        
int 21h       
sub al,30h   
mov b,al
;---------------------------------------------------------------
mov cl,a                               ;sendin A to CL
mov x,cl                               ;sendin CL to X
neg x                                  ;makin X equal to -A
xor cl,cl

mov cl,b                     
mov y,cl
neg y                                  ;makin Y equal to -B
xor cl,cl
computin:			
mov al,x                               ;sendin X to AL
mul x                                  ;makin AХ equal to X^2
div a



xor ax,ax
mov ax,4c00h
int 21h
END
После ввода числа B окошко закрывается сразу. По регистрам прогнал - divide by zero. По переменным прогнал - вроде все на месте,у А конкретное значение, ну нуль. В чем косяк?



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 21.11.2011 в 08:16.
dessaber вне форума Ответить с цитированием
Старый 21.11.2011, 08:21   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
По регистрам прогнал - divide by zero. По переменным прогнал - вроде все на месте,у А конкретное значение, ну нуль.
в A конкретное значение, равное нулю?! o_O !
Напомните мне, пожалуйста, 2/0 - что должно вернуть (какое КОНКРЕТНОЕ число) ?!

p.s. делить на ноль НЕЛЬЗЯ.
Точнее можно, но получается бесконечность.
Которую трудно выразить конечным числом.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.11.2011, 09:13   #3
dessaber
 
Регистрация: 07.03.2011
Сообщений: 4
По умолчанию

Цитата:
ну нуль
пардон, очепятка. Не нуль. Конкретное значение, которое ввел тобиш.
dessaber вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Assembler. Рисование прямоугольника KaRaNTiN Помощь студентам 0 27.05.2011 00:36
Поворот эллипса. Kingdom_Reborn Помощь студентам 1 21.10.2010 15:54
Рисование эллипса на канве и последующее его стирание Vohakisa Помощь студентам 3 21.05.2010 14:11
Центр эллипса. Vergil Помощь студентам 2 21.05.2010 12:37
Рисование Эллипса Macwin Общие вопросы C/C++ 1 18.03.2010 14:38