Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 24
1

Вычисление дробей с высокой точностью

04.06.2013, 15:36. Показов 650. Ответов 6
Метки нет (Все метки)

не могу понять что не так...показывает синт. ошибку pascal строка 42!!! посмотри пожалуйста может кто найдет ответ что же не так тут:
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
.model tiny
.386
.code
assume cs:@code, ds:@code, es:@code, ss:@code
org 100h
START:
mov cl, 42
mov si, offset s
mov ah, 1 
xor al, al
mov bl, 207 
push ds
pop es
divide:
div bl 
mov [si], al
inc si
xor al, al
loop divide
dec si 
std 
mov bl, 100 
mov cl, 50 
m1:
push si
push cx 
mov cx, 42 
mov di, si 
clc
xor bh, bh
to10:
mov al, es:[di]
pushf 
mul bl
popf
adc al, bh 
stosb
mov bh, ah
loop to10
adc ah, 0 
movzx edx, ah 
call print10_pl pascal ,edx, offset pr_numb, 
word ptr 1, \
word ptr 1, word ptr 1, word ptr 8
pop cx
pop si
dec cx
jcxz m2
jmp short m1
m2:
mov ah,0
int 16h
mov ah, 4ch 
int 21h
;__________________________________________________________________
s db 42 dup(?)
pr_numb db 10 dup(?)
;__________________________________________________________________
print10_pl proc near 
beg word(0)
zero word(0)
f_handle word(0)
pp0 word(0)
num_off word(0)
numb dword(0)
args_size dword(0)
push eax
push bp
mov bp, sp
push eax
push ebx
push cx
push edx
push si
mov cx, 10 
mov si, num_off
push cx
@p:
mov byte ptr [si], '0'
inc si
loop @p
pop cx
mov eax, numb 
mov si, num_off 
add si, 9
mov ebx, 10 
@@pr:
mov edx, 0
div ebx
add dl, '0' 
mov byte ptr [si], dl
or eax, eax 
jz short @@pr2
dec si
loop @@pr
@@pr2: 
cmp pp0, 0
je @@e6
mov ah, 40h
mov cx, 10
mov dx, offset num_off
mov bx, 1 
cmp pp0,2
je @@e1
jmp short @@e2
@@e1:
mov bx, f_handle
@@e2:
cmp zero,0
jne short @@e3
add cx, dx 
sub cx, si
mov dx, si
jmp short @@e4
@@e3:
sub cx, beg
add dx, beg
@@e4:
int 21h
@@e6:
pop si
pop edx
pop cx
pop ebx
pop eax
mov sp, bp 
pop bp
 
ret 
 
print10_pl endp
end START
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2013, 15:36
Ответы с готовыми решениями:

Замерить сопротивление с высокой точностью?
Подскажите как мне точно замерить сопротивление человека? Я хотел бы таким способом узнать...

Измерение "больших" напряжений с высокой точностью.
Всем добрый день) Хочу вот собрать как можно более универсальную зарядку для аккумуляторов. И тут...

Найти корни квадратного уравнения с высокой точностью
Помогите пожлуйста. найти корни квадратного уравнения с высокой точностью . (до 30-40 после...

Захват потока данных с аудиокарты с высокой точностью, не аудио
Уважаемые форумчане, здравствуйте! Сталкнулся с такой проблемой: необходимо расшифровать протокол...

6
85 / 85 / 38
Регистрация: 09.12.2011
Сообщений: 174
05.06.2013, 09:26 2
Видимо само слово pascal зарезервировано (скорее всего еще и fortran, basic).
0
Ушел с форума
Автор FAQ
14226 / 7098 / 850
Регистрация: 11.11.2010
Сообщений: 12,737
05.06.2013, 09:53 3
DayX,
как всегда много чего не так, вот так по крайней мере компиляция проходит, но при запуске будут проблемы, так как программа не рабочая
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
; masm dos com #
.model tiny
.286
.code
.386
org 100h
START:  mov cl, 42
    mov si, offset s
    mov ah, 1 
    xor al, al
    mov bl, 207 
    push ds
    pop es
divide: div bl 
    mov [si], al
    inc si
    xor al, al
    loop divide
    dec si 
    std 
    mov bl, 100 
    mov cl, 50 
m1: push si
    push cx 
    mov cx, 42 
    mov di, si 
    clc
    xor bh, bh
to10:   mov al, es:[di]
    pushf 
    mul bl
    popf
    adc al, bh 
    stosb
    mov bh, ah
    loop to10
    adc ah, 0 
    movzx edx, ah 
    push 8
    push 1
    push 1
    push 1
    push offset pr_numb
    push edx
    call print10_pl  
    pop cx
    pop si
    dec cx
    jcxz m2
    jmp short m1
m2: mov ah,0
    int 16h
    mov ah, 4ch 
    int 21h
    ;___________________________________________________________ _______
    s db 42 dup(?)
    pr_numb db 10 dup(?)
    ;___________________________________________________________ _______
print10_pl proc near pascal beg:word,zero:word,f_handle:word,pp0:word,\
    num_off:word,numb:dword,args_size:dword
    push eax
    push eax
    push ebx
    push cx
    push edx
    push si
    mov cx, 10 
    mov si, num_off
    push cx
@p: mov byte ptr [si], '0'
    inc si
    loop @p
    pop cx
    mov eax, numb 
    mov si, num_off 
    add si, 9
    mov ebx, 10 
@@pr:   mov edx, 0
    div ebx
    add dl, '0' 
    mov byte ptr [si], dl
    or eax, eax 
    jz short @@pr2
    dec si
    loop @@pr
@@pr2:  cmp pp0, 0
    je @@e6
    mov ah, 40h
    mov cx, 10
    lea dx,num_off
    mov bx, 1 
    cmp pp0,2
    je @@e1
    jmp short @@e2
@@e1:   mov bx, f_handle
@@e2:   cmp zero,0
    jne short @@e3
    add cx, dx 
    sub cx, si
    mov dx, si
    jmp short @@e4
@@e3:   sub cx, beg
    add dx, beg
;@@e3:   
    sub cx, beg
    add dx, beg
@@e4:   int 21h
@@e6:   pop si
    pop edx
    pop cx
    pop ebx
    pop eax
    ret 
    print10_pl endp
end START
Добавлено через 10 минут
Алексей Без также использует такие же pascal процедуры с тем же именем print10_pl, наверняка вы оба из одного ВУЗа
0
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 24
05.06.2013, 10:21  [ТС] 4
такое чувство что он не выводит на печать, толком не понимаю чего не хватает
0
Ушел с форума
Автор FAQ
14226 / 7098 / 850
Регистрация: 11.11.2010
Сообщений: 12,737
05.06.2013, 10:26 5
DayX,
тут нужно знать ЧТО делает каждая часть программы по отдельности, добиться работоспособности каждой части, а потом соединить их в одно целое. И без отладчика не обойтись...
0
1 / 1 / 1
Регистрация: 05.04.2013
Сообщений: 88
05.06.2013, 10:30 6
DayX, можно узнать где Вы учитесь?
0
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 24
05.06.2013, 11:11  [ТС] 7
Алексей Без, а что?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2013, 11:11

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Вычисление непрерывных дробей и выражений. Вычисление полиномов и их производных.
1. Чему равна знакочередующаяся сумма цифр числа n. 2. Даны натуральное число n и...

Как определить с высокой точностью момент времени максимального уровня шума
Допустим есть wav-запись, в котором максимальный уровень шума происходит чере 3.868 секунды. Как...

Как найти точки пересечения. с высокой точностью до двух заков после запятой
Вот например есть набор значений(рандомно): х1=(1 2 3 4 5 6 7) у1=(15 14 25 35 36 85 45) и ...

Вычисление дробей
Составить программу вычисления двух обыкновенных дробей. С клавиатуры должны вводится их числители...

вычисление дробей
знаменатель высчитывается правильно, а вот числитель нет Кто-то подскажет почему? ...

Вычисление цепных дробей
Доброго времени суток. Delphi :) Помогите пожалуйста написать программу для вычисления двух...


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

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

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