Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
 
Gasssss
1 / 1 / 0
Регистрация: 02.12.2014
Сообщений: 66
#1

Добавить стрелочки x,y

21.11.2016, 15:27. Просмотров 359. Ответов 2
Метки нет (Все метки)

Всем привет. Добавьте пожалуйста стрелочки x,y

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
;Программа вычисления и построения графика функции вида
;Y=-3X^4+9X^3-5X^2+1X+2
TITLE POLINOM
.Model SMALL
.stack  256             ;сегмент стека 256 байт
.486                        ;используем расширенную систему команд
.data                       ;сегмент данных
mas_a DW -3, 9, 5, 1, 2                 ;массив коэффициентов полинома ai
NUMBER DW 0                 ;номер отсчета для значений Х
M DW 180                ;масштабный коэффициент для вывода графика
X DD -9.0               ;начальное значение аргумента Х
step DD 0.1             ;шаг изменения аргумента Х
N DW 4                      ;порядок полинома
Y DD 0                      ;переменная для хранения значения полинома
 
.code                       ;сегмент кодов
;============== Инициализация графического режима============
InitGraph PROC                          ;начало процедуры
    PUSHA               ;все регистры в стек
    MOV AH, 00                  ;установить режим экрана
    MOV AL, 13h             ;320x200x256
    INT 10h             ;средствами BIOS
    POPA                ;извлечение всех регистров общего назначения
    RET             ;возврат процедуры
InitGraph ENDP                  ;конец процедуры
;============== Закрытие графического режима =================
CloseGraph Proc 
    MOV AX, 3           ;Установить текстовый 
    INT 10h             ;режим 25x80 средствами BIOS. 
    RET                             ;возврат процедуры
CloseGraph ENDP 
;=============== Очистка экрана============================ 
CLEAR PROC 
    PUSHA               ;все регистры общего назначения в стек
    MOV CX, 64000           ;число пикселов экрана
    MOV AX, 0A000h          ;адрес графической видеопамяти
    MOV ES, AX              ;в ES
    MOV AL, 00010100b
    XOR DI, DI          ;очистка регистра DI
    CLD                 ;df=0
    REP STOSB               ;сохранение строки байтов
    POPA
    RET
CLEAR ENDP
;=============== Ожидание нажатия клавиши ==================     
WaitKey PROC 
    PUSHA                   ;поместить в стек все регистры
    MOV AH, 01h             ;ввод с клавиатуры 
    INT 21h                 ;прерывание DOS
    POPA                    ;снять все регистры из стека
    RET
WaitKey ENDP 
;=============== Рисование осей ========================
Osi PROC
    PUSHA
    MOV CX, 10              ;начало горизонтальной
    MOV DX, 25              ;оси
    MOV AL, 00000110b           ;цвет оси желтый
o1: MOV AH, 12              ;вывод точки        
    INT 10h                 ;вызов BIOS
    INC CX                  ;построить 
    CMP CX, 300             ;300
    JNE o1                  ;точек
;---------------------------------------------------------
    MOV CX, 160                 ;начало вертикальной
    MOV DX, 0               ;оси
    MOV AL, 00000110b           ;цвет оси желтый
o2: MOV AH, 12              ;вывод точки
    INT 10h
    INC DX          
    CMP DX, 200             ;200 точек
    JNE o2
    POPA
    RET
Osi ENDP
;================= Вывод точки на экран ===================
PutPixel PROC
    PUSHA; 
    MOV AL,0000010b             ;цвет пиксела
    mov EDX, 25                 ;номер строки 
    sub EDX, Y              ;вывода
    NOP                 ;программная задержка
    MOV CX, 60              ;номер столбца 
    add CX, Number              ;вывода
    NOP                 ;программная задержка
    MOV AH,12               ;вывести пиксел
    INT 10h             ;на экран
    NOP
    POPA                        ;извлечение всех регистров из стека
    RET
PutPixel ENDP
;=====================Основная программа===============
Start:  mov AX, @DATA                   ;начальная загрузка
    MOV DS, AX              ;регистра DS,инициализация сегмента данных
    call CLEAR              ;вызов процедуры очистки экрана
    call InitGraph              ;инициализация графического режима
    call Osi                ;построение осей
    call WaitKey                ;пауза
@2:mov CX, N                        ;загрузить счетчик циклов
    xor SI,SI           ;для вычисления полинома
    finit                   ;инициализировать сопроцессор
    fild mas_a[SI]              ;загрузить целое a1 в st(0)
    fld X                   ;загрузить вещественное X в st(1)
@1:fmul                         ;перемножть  st(0):=(st(0))*(st(1))
    inc SI                  ;перейти к следующему
    inc SI                  ;ai
    fiadd mas_a[SI]             ;добавить очередное ai к произведению
    fld X                   ;загрузить X в st(1) 
    loop @1                 ;перейти на метку, если CX не 0
    fxch st(1)          ;обменять st(0) и st(1)
    fidiv M                 ;разделить на масштабный коэффициент M=180
    frndint                 ;округлить до целого
    fistp Y                 ;переслать (st(0)) в Y
    call PutPixel               ;вывести полученное значение на график
    fadd step           ;увеличить на шаг st(0):=(st(0))+0.1
    fstp X                  ;сохранить st(0)+0.1 в память Z
    inc NUMBER              ;перейти к следующему отсчету по X
    cmp NUMBER,199              ;повторить еще 199 раз
    jnz @2                      ;если CX<>0
    call WaitKey                ;пауза
    call CloseGraph             ;закрыть графический режим
    MOV AX, 4C00h               ;и выйти
    INT 21h                     ;в DOS
    END Start
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2016, 15:27
Ответы с готовыми решениями:

Можно ли в DBNavigator изменить стрелочки-галочки на текст - вперед, назад, добавить?
Может какая-нибудь процедура на этот случай есть?

Стрелочки на ярлычках
Как вернуть? Win XP я так понимаю сборка extremal(неуверена), на всех ярлыках...

Рандомные стрелочки в Делфи 7
Доброго времени суток! Пишу программу на на тему сетевое планирование...

Замапить Alt+a/r/s/t на стрелочки
А конкретно LAlt. Пробовал через .Xmodmap: keycode 38 = a A a A Left Left...

Стрелочки у осей координат
Здравствуйте . Нарисовал оси координат на канве формы . Вопрос такой : есть ли...

2
Manowar
1304 / 496 / 166
Регистрация: 12.03.2016
Сообщений: 1,882
Завершенные тесты: 1
21.11.2016, 17:46 #2
То есть Вы это сами все написали, а стрелочки добавить не можем?
0
Gasssss
1 / 1 / 0
Регистрация: 02.12.2014
Сообщений: 66
21.11.2016, 21:40  [ТС] #3
Нет, это готовый код из методички. не я его делал.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2016, 21:40

Как создать стрелочки?
Я создаю свою веб галерею, поэтому мне необходимо нарисовать всякие штучки,...

Плавное увеличение фигуры-стрелочки
Добрый вечер, мастера в области экселя. Помогите разобраться с макросом...

Определения нажатия стрелочки на клавиатуре
Здравствуйте, несколько дней назад начал изучать JAVA. Решил сделать игру...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru