Форум программистов, компьютерный форум, киберфорум
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 2

Посчитать выражение

18.11.2013, 16:15. Показов 1354. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
числа А В С вбивать с клавиатуры и результат должен выводиться на екран в десятичной форме, и запись данных и результатов в файл.
p.c. прошу помочь, я чайник в этом
Изображения
 
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.11.2013, 16:15
Ответы с готовыми решениями:

Посчитать выражение
Здраствуйте Нужно посчитать выражение на ассемблере (TASM) (c-d/2+33)/(2*a*a-1) написал код Datas segment c dw 7 d dw 3 ...

посчитать выражение!
Вводим z, вводим x если z<x переходим по меткам.... 1) Почему вводится только однозначное значение z и x? 2) Почему не считается...

Посчитать выражение

1
23 / 13 / 47
Регистрация: 23.03.2013
Сообщений: 157
24.07.2015, 14:32
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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
print macro _addr
    mov ah, 09h
    lea dx, _addr
    int 21h
endm
 
print_file macro number_bytes, _addr
    mov ah, 40h
    mov bx, handle
    xor ch, ch
    mov cl, byte ptr number_bytes
    inc cl
    lea dx, _addr
    int 21h
endm
 
scan macro _addr
    mov ah, 0Ah
    lea dx, _addr
    int 21h
endm
 
_CharToStr macro arg1, arg2
    lea bx, arg1
    ifnb <arg2>
        mov al, arg2
    endif
    call CharToStr
    mov byte ptr[bx], ' '
endm
 
_StrToChar macro arg1, arg2, arg3
    lea bx, arg1
    add bx, 2
    call StrToChar
    jc arg3 
    ifnb <arg2>
        mov arg2, al
    endif
endm    
 
codesg segment 'code'
    assume cs:codesg, ds:codesg, ss:codesg
    org 100h
    main: jmp begin
        _A db ?
        _B db ?
        rez dw ?
        handle dw ?
        filename db 'test9.txt', 0
        mes1 db 13, 10, 'Invalid number!!!',13,10,'$'
        mes2 db 13, 10, 'Enter number A ( -129<A<128 ): $'
        len = $-mes2-2
        mes3 db 13, 10, 'Enter number B ( -129<A<128 ): $'
        mes4 db 13, 10, 'Result: $'
        len1 = $-mes4-2
        buffer db 7, ?, 7 dup('$')
        end_line db 13, 10,'$'
    begin: print mes2
        scan buffer
        _StrToChar buffer, _A, begin
        mov ah, 3ch
        mov cx, 0
        lea dx, filename
        int 21h
        mov handle, ax
        print_file len-2, mes2+2
        print_file buffer+1, buffer+2
        w_b: print mes3
            scan buffer
        _StrToChar buffer, _B, w_b
        print_file len, mes3
        print_file buffer+1, buffer+2
        mov cx, 6
        mov ax, 5
        mov bl, 5
        xor di, di
        _for: mul bl
            sub al, _B
            sbb ah, 0
            add di, ax
            jo _end
            inc bl
            mov ax, bx
        loop _for
        mov ax, 5
        imul di
        push ax
        sal _A, 2
        jo _end
        pop bx
        mov al, _A
        cbw
        add ax, bx
        mov rez, ax
        lea di, buffer+2
        call OutInt
        mov byte ptr[di], ' '
        mov byte ptr buffer+1, al
        print mes4
        print buffer+2
        print_file len1, mes4
        print_file buffer+1, buffer+2
        mov ah, 3eh
        mov bx, handle
        int 21h
    _end: int 20h
    
    ;вход в al-число в bx адрес буфера куда следует писать число
    CharToStr proc
        push dx
        push cx
        xor dx, dx
        xor cx, cx
        xor ah, ah
        mov dl, 10
        test al, 80h
        jz short __while
        mov byte ptr[bx], '-'
        inc bx
        neg al
        __while: div dl
            inc cx
            add ah, '0'
            push ax
            and ax, 0FFh
            jz break
        jmp __while
        break: pop ax
            mov [bx], ah
            inc bx
        loop break
        pop cx
        pop dx
        mov byte ptr[bx], '$'
        ret
    CharToStr endp
    
    OutInt proc
;; Проверяем число на знак.
  test    ax, ax
  jns     oi1
;
;; Если оно отрицательное, выведем минус и оставим его модуль.
  mov  cx, ax
    mov byte ptr[di], '-'
    inc di
  mov  ax, cx
  neg     ax
;; Количество цифр будем держать в CX.
oi1:  
    xor     cx, cx
    mov     bx, 10 ; основание сс. 10 для десятеричной и т.п.
oi2:
    xor     dx,dx
    div     bx
; Делим число на основание сс. В остатке получается последняя цифра.
; Сразу выводить её нельзя, поэтому сохраним её в стэке.
    push    dx
    inc     cx
; А с частным повторяем то же самое, отделяя от него очередную
; цифру справа, пока не останется ноль, что значит, что дальше
; слева только нули.
    test    ax, ax
    jnz     oi2
    mov al, cl
oi3:
    pop     dx
; Извлекаем очередную цифру, переводим её в символ и выводим.
;; раскоментировать если основание сс > 10, т.е. для вывода требуются буквы
;   cmp     dl,9
;   jbe     oi4
;   add     dl,7
;oi4:
    add     dl, '0'
    mov byte ptr[di], dl
    inc di
; Повторим ровно столько раз, сколько цифр насчитали.
    loop    oi3
    ret
OutInt endp 
    
    
    ;вход в bx адрес строки в которой число - размер байт, строка заканчивается 0Dh символом
    ;выход число в al
    StrToChar proc
        push bx
        push dx
        push di
        push cx
        xor di, di
        mov ah, '-'
        cmp ah, byte ptr[bx]
        jne short unsigned
        inc bx
        mov cl, 1
        unsigned:
            xor ax, ax
            mov dl, 10
        _while: mov dh, [bx]
            cmp dh, 0Dh
            je k
            inc di
            mul dl
            jo _Err
            cmp al, 81h
            jae _Err
            cmp dh, '0'
            jb _Err
            cmp dh, '9'
            ja _Err
            and dh, 0Fh
            add al, dh
            jc _Err
            cmp al, 81h
            jae _Err
            Next: inc bx
        jmp _while
        k: mov dx, ax
        cmp cl, 1
        je short signed
        cmp dl, 7fh
        ja _Err
        or di, 0
        jz _Err
        jmp _Exit
        _Err: print mes1
            stc 
            jmp Exit
        signed: or di, 0
            jz _Err
            neg dl
        _Exit:clc
        Exit: mov al, dl
        pop cx
        pop di
        pop dx
        pop bx
        ret
    StrToChar endp
    
codesg ends
    end main
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.07.2015, 14:32
Помогаю со студенческими работами здесь

Посчитать выражение
Добрый день, подскажите, пожалуйста, как можно составить запрос. Есть две таблицы, в каждой таблице по 2 столбца, в первом столбце день, а...

Посчитать выражение по формуле
Помогите создать программу которая решить эту задачу чет затрудняюсь(

Посчитать выражение с факториалами
Дано натуральное число n, действительное число x. Вычислить: \sum_{i=1}^{n}\frac{(2i)!+\left|x \right|}{({i}^{2})!}

Посчитать выражение со строки
Задание состоит в том, чтобы посчитать &quot;все&quot; что в строке. Пользователь вводит все как строку. Например : char a; gets(a); //...

Посчитать выражение max(a*b*c, a+b+c)+3
Что значит макс?


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru