С Новым годом! Форум программистов, компьютерный форум, киберфорум
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 29.10.2010
Сообщений: 13
TASM

График функции

06.12.2010, 09:28. Показов 875. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
дан код программы,которая строит график функции... у меня не компилируется... куда и что нужно правильно написать... это шаблон MASM...
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.model tiny
.data?
 
.data
 
;----------------
.code
.startup
 
 
 
 
.exit   0
;------
 
END
помогите пожалуйста.. заранее спасибо...



А ВОТ КОД САМОЙ ПРОГРАММЫ...

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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
.386p                   
st1 segment para stack use16        ;определение сегмента стека
    db 20 dup(?)
st1 ends
data segment para public use16  ;определение сегмента данных
    x dw 0
    y dw 0
    a dd 0.0
    b dd 0.0
    t dd 0.0
    k dd 0.01
    r dd 0.0
    buf db 255 dup(?)
    rr dw 0
    dlin dw 0
    des dw 10
    nadpic db 'Введите радиус (целое значение от 1 до 238): ' 
nadpic1 db 'Ошибка ввода, проверьте правильность данных',0dh,0ah 
data ends
 
cseg segment para public use16  ;определение сегмента кода
    assume ss:st1, ds:data,cs:cseg
 
pp proc
    fild rr     ;процедура преобразования в вещественное
    fstp r      ;значение
ret
pp endp
 
 
newt proc           ;процедура получения координат х и у
fld t           ;загрузка в стек вещественного значения
    fsincos     ;вычисление синуса и косинуса
    fstp a      ;извлечение значения выражения cos(t)
    fstp b      ;извлечение значения выражения sin(t)
    fld a           ;загрузка в стек вещественного значения
    fmul r      ;умножение вершины стека на значение r
    frndint     ;округление вершины стека до целого
    fistp x     ;извлечение из стека целого значения
    fld b           ;загрузка в стек вещественного значения
    fmul r      ;умножение вершины стека на значение r
    frndint     ;округление вершины стека до целого
    fistp y     ;извлечение из стека целого значения
fld t           ;загрузка в стек вещественного значения
fadd k      ;сложение вершины стека и значения k
    fstp t      ;извлечение вещественного значения
    ret
newt endp
 
begin:
    mov ax,st1      ;привязка сегментов к сегментным регистрам
    mov ss,ax
    mov ax,data
    mov ds,ax
    jmp nachalo 
    
repeat: 
mov bx,1            ;вывод сообщения об ошибке [3]
    mov cx,45
    lea dx,nadpic1
    mov ah,40h
    int 21h
    
nachalo: 
mov bx,1            ;вывод запроса на ввод радиуса [1]
    mov cx,45
    lea dx,nadpic
    mov ah,40h
    int 21h
    
mov rr,0
    mov ax,0            ;чтение с клавиатуры
    mov dx,offset buf   
    mov cx,255  
    mov bx,0    
    mov ah,3Fh  
    int 21h
    cmp ax,2            ;проверка на пустую строку
    jbe repeat
    
sub ax,2            ;проверка введенных данных [2]
    cmp ax,3
    ja repeat                 
    mov dlin,ax 
    
    mov bx,offset buf
    mov si,0
    mov cx,dlin
ll1:    mov dl, byte ptr[bx+si] 
    sub dl,30h
    mov byte ptr[bx+si],dl
    inc si
    loop ll1
 
    mov bx,offset buf
    mov cx,dlin 
    mov si,0
ll2:    mov dl, byte ptr[bx+si] 
    cmp dl, 0
    jb repeat
    cmp dl, 9
    ja repeat
    inc si
    loop ll2
    
    mov cx,dlin
    mov si,0
    mov bx,offset buf       ;преобразование в число
ll3:    mov ax,rr
    mul des
    mov rr,ax
    xor ax,ax
    mov al,byte ptr[bx+si]
    add rr,ax
    inc si
    loop ll3    
 
    mov ax,rr
    cmp ax,0
    je repeat
    cmp ax,238
    ja repeat
call pp
 
    mov ax,0012h        ;установка видеорежима(640*480) [4]
    int 10h
 
    mov cx,1256 
 
circl:
    push cx
    call newt           ;получение координат текущей точки
    
mov bx,0000h        ;построение графической точки [5]
    mov dx,y
    mov cx,x
    add dx,240          ;центр в начале координат
    add cx,320
    mov ax,0c0fh
    int 10h
pop cx
    loop circl
 
mov cx,640  
    mov dx,240
os1:                    ;построение оси х
    inc cx
    mov bx,0000h
    mov ax,0c0fh
    int 10h
    dec cx
    loop os1        
 
    mov cx,480
    mov dx,1
os2:                        ;построение оси у
    push cx
    mov bx,0000h
    mov ax,0c0fh
    mov cx,320
    int 10h
    inc dx
    pop cx
    loop os2
    
 
 
    mov ax,0000h        ;ожидание нажатия клавиши для выхода из    int 16h         ;видеорежима
 
    
    mov ax,0003h        ;выход из видеорежима [6]
    int 10h
 
exit:   mov ax,4c00h        ;выход из программы
    int 21h
cseg ends
end begin
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.12.2010, 09:28
Ответы с готовыми решениями:

График функции y=x/cos(x)
Доброе время суток, разработать программу вычисления значений функций согласно варианту и вывод на экран их графиков. Вывести оси...

Нарисовать график функции по значениям в bmp файл
Есть ф-я высчитываются ее значения по аргументам с каким-то шагом (это сделано), нужно только вывести график этой ф-и желательно в бмп. ...

график квадратичной функции
здр. в наличии следующее условие для написании программы.. задана квадратичная функция y=ax^2+bx+c.. коэффициенты a, b и c могут изменяться...

4
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
06.12.2010, 11:46
като, у меня к нет 16 разрядного масма, проверить не на чем, а разве второй код масмом не компилируется? Я проверял на тасме - все работает, только надо увеличить размер стека. Или надо переделать в com формат?
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16372 / 7684 / 1080
Регистрация: 11.11.2010
Сообщений: 13,758
06.12.2010, 13:10
като, в model tiny не может быть .data? и .data это КОМ, там все в одном сегменте и данные, и код, и стек
0
0 / 0 / 0
Регистрация: 29.10.2010
Сообщений: 13
06.12.2010, 19:08  [ТС]
а подскажите тогда,как эту же программу написать в масм????

Добавлено через 47 секунд
что и где нужно поменять?? напишите пожалуйста...
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16372 / 7684 / 1080
Регистрация: 11.11.2010
Сообщений: 13,758
07.12.2010, 06:36
като, наверное так:
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
.286p
.model tiny
.code
org 100h
 
pp proc
        fild rr         ;процедура преобразования в вещественное
        fstp r          ;значение
ret
pp endp 
newt proc                       ;процедура получения координат х и у
fld t                   ;загрузка в стек вещественного значения
        fsincos         ;вычисление синуса и косинуса
        fstp a          ;извлечение значения выражения cos(t)
        fstp b          ;извлечение значения выражения sin(t)
        fld a                   ;загрузка в стек вещественного значения
        fmul r          ;умножение вершины стека на значение r
        frndint         ;округление вершины стека до целого
        fistp x         ;извлечение из стека целого значения
        fld b                   ;загрузка в стек вещественного значения
        fmul r          ;умножение вершины стека на значение r
        frndint         ;округление вершины стека до целого
        fistp y         ;извлечение из стека целого значения
fld t                   ;загрузка в стек вещественного значения
fadd k          ;сложение вершины стека и значения k
        fstp t          ;извлечение вещественного значения
        ret
newt endp 
start:  jmp nachalo     
        
repeat: 
mov bx,1                        ;вывод сообщения об ошибке [3]
        mov cx,45
        lea dx,nadpic1
        mov ah,40h
        int 21h
        
nachalo: 
mov bx,1                        ;вывод запроса на ввод радиуса [1]
        mov cx,45
        lea dx,nadpic
        mov ah,40h
        int 21h
        
mov rr,0
        mov ax,0                        ;чтение с клавиатуры
        mov dx,offset buf       
        mov cx,255      
        mov bx,0        
        mov ah,3Fh      
        int 21h
        cmp ax,2                        ;проверка на пустую строку
        jbe repeat
        
sub ax,2                        ;проверка введенных данных [2]
        cmp ax,3
        ja repeat                 
        mov dlin,ax 
        
        mov bx,offset buf
        mov si,0
        mov cx,dlin
ll1:    mov dl, byte ptr[bx+si] 
        sub dl,30h
        mov byte ptr[bx+si],dl
        inc si
        loop ll1
 
        mov bx,offset buf
        mov cx,dlin     
        mov si,0
ll2:    mov dl, byte ptr[bx+si] 
        cmp dl, 0
        jb repeat
        cmp dl, 9
        ja repeat
        inc si
        loop ll2
        
        mov cx,dlin
        mov si,0
        mov bx,offset buf               ;преобразование в число
ll3:    mov ax,rr
        mul des
        mov rr,ax
        xor ax,ax
        mov al,byte ptr[bx+si]
        add rr,ax
        inc si
        loop ll3        
 
        mov ax,rr
        cmp ax,0
        je repeat
        cmp ax,238
        ja repeat
call pp
 
        mov ax,0012h            ;установка видеорежима(640*480) [4]
        int 10h
 
        mov cx,1256     
 
circl:
        push cx
        call newt                       ;получение координат текущей точки
        
mov bx,0000h            ;построение графической точки [5]
        mov dx,y
        mov cx,x
        add dx,240                      ;центр в начале координат
        add cx,320
        mov ax,0c0fh
        int 10h
pop cx
        loop circl
 
mov cx,640      
        mov dx,240
os1:                            ;построение оси х
        inc cx
        mov bx,0000h
        mov ax,0c0fh
        int 10h
        dec cx
        loop os1                
 
        mov cx,480
        mov dx,1
os2:                                    ;построение оси у
        push cx
        mov bx,0000h
        mov ax,0c0fh
        mov cx,320
        int 10h
        inc dx
        pop cx
        loop os2 
        mov ah,0 ;ожидание нажатия клавиши для выхода из  видеорежима
        int 16h        
        mov ax,0003h            ;восстановим видеорежим
        int 10h 
exit:  int 20h             ;выход из программы
x dw 0
        y dw 0
        a dd 0.0
        b dd 0.0
        t dd 0.0
        k dd 0.01
        r dd 0.0
        buf db 255 dup(?)
        rr dw 0
        dlin dw 0
        des dw 10
        nadpic db 'Введите радиус (целое значение от 1 до 238): ' 
nadpic1 db 'Ошибка ввода, проверьте правильность данных',0dh,0ah 
end start
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.12.2010, 06:36
Помогаю со студенческими работами здесь

Построить и визуализировать график функции
Вообщем, дорогие форумчане, без вашей помощи никак не справлюсь. Моя задача следующая: Нужно построить и визуализировать график функции,...

Вывести график функции в режиме 640x480
Пытаюсь написать программу вывода графика функции x*(sin^2(x)+x)/2, но получаю просто прямую при y=0. Никак не могу понять, почему все...

TASM - пройдет ли график функции через заданную точку
помогите с написанием программы для TASM определяющую, пройдет ли график функции y=5x2-7x+2 через заданную точку с координатами (а,b)

Построить график функции
Хочу построить график функции допустим x^2 {0;100} прога виснит, помогите плиз!!! .586P ;плоская модель памяти .MODEL FLAT,...

График функции в оконном приложении
Здравствуйте! Столкнулся с некоторой сложность в построении графика. Пробовал юзать PolyBezier, но, если я правильно понял, то с...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru