Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 96
1

Вычисление целочисленного арифметического выражения

05.12.2018, 14:40. Показов 1133. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Решить уравнение y = a * b-c * d, вводя значения с клавиатуры и выводя на экран
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2018, 14:40
Ответы с готовыми решениями:

Вычисление целочисленного арифметического выражения
Написать программу, выполняющую арифметические действия: 2a+a*b-b/a, где a=2Dh, b=4Eh

Вычисление целочисленного арифметического выражения
Доброго времени суток! Дано задание: (см приложение). Проблема возникает при создания объектного...

Вычисление целочисленного арифметического выражения
Только начали изучать ассемблер, ничего не понятно, пожалуйста кто может помогите написать...

Вычисление целочисленного арифметического выражения
Код ASM SSEG SEGMENT STACK DB 256 DUP(?) SSEG ENDS DATA SEGMENT X DW ? A DW 6 B DW 3 C DW...

13
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
05.12.2018, 14:44 2
Ввод и вывод рассмотрены в закреплённой теме
Ввод и вывод чисел в различных системах счисления

Пять-шесть строк кода для вычисления вы можете осилить самостоятельно после чтения соответствующих глав учебника.

Примеры подобных вычислений смотрите среди похожих тем в самом низу данной веб страницы.

Будут вопросы - спрашивайте, не стесняйтесь.
0
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 96
10.12.2018, 19:45  [ТС] 3
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
IN 00 
PUSH BL POP AL 
IN 00 
PUSH CL POP AL 
IN 00 
PUSH DL POP AL 
IN 00 
 
MUL BL,CL 
MUL DL,AL 
ADD BL,DL 
 
END
Как вывести результат на виртуальный дисплей?
0
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 96
10.12.2018, 20:10  [ТС] 4
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
IN 00 
PUSH BL POP AL 
IN 00 
PUSH CL POP AL 
IN 00 
PUSH DL POP AL 
IN 00 
 
MUL BL,CL 
MUL DL,AL 
ADD BL,DL 
 
END
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
10.12.2018, 20:11 5
Что такое "виртуальный дисплей"?
0
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 96
10.12.2018, 20:21  [ТС] 6
ФедосеевПавел, т.е чтобы выводился результат
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
10.12.2018, 20:35 7
Посмотрите
Ввод и вывод чисел в различных системах счисления
А также примеры применения в куче тем с названием "Вычислить арифметическое выражение".

Добавлено через 4 минуты
Вот ещё пример
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
.model small
 
.stack 200h
 
.data
        CrLf            db      0Dh, 0Ah, '$'
        msgPressAnyKey  db      0Dh, 0Ah, 'Press any key to exit...', '$'
        msgResult       db      'X=', '$'
 
        X               dw      -123
.code
 
ShowInt16       proc
        push    bx
        mov     bx,     10
        xor     cx,     cx      ;символов в модуле числа
        or      ax,     ax
        jns     @@div
                neg     ax
                push    ax
                mov     ah,     02h
                mov     dl,     '-'
                int     21h
                pop     ax
        @@div:
                xor     dx,     dx
                div     bx
                push    dx
                inc     cx      ;количество цифр в числе
                or      ax,     ax
        jnz     @@div
        mov     ah,     02h
        @@store:
                pop     dx
                add     dl,     '0'
                int     21h
        loop    @@store
        pop     bx
        ret
ShowInt16       endp
 
main    proc
        ;инициализация сегментного регистра ds адресом сегмента данных
        mov     ax,     @data
        mov     ds,     ax
 
        ;вывод результата
        mov     ah,     09h
        lea     dx,     [msgResult]
        int     21h
 
        mov     ax,     [X]
        call    ShowInt16
        ;ожидание нажатия любой клавиши
        mov     ah,     09h
        lea     dx,     [msgPressAnyKey]
        int     21h
 
        mov     ah,     00h
        int     16h
 
        ;завершение программы
        mov     ax,     4C00h
        int     21h
main    endp
 
end     main
0
0 / 0 / 0
Регистрация: 11.12.2018
Сообщений: 2
11.12.2018, 23:20 8
Здравствуйте!
Нашел себе в сборнике задачу "Решить уравнение y=a*b+c*d, через ввод чисел с помощью виртуальной клавиатуры, а также изображения уравнения с уже подставленными значениями и ответом в виртуальном окне ". Присвоить числа к а, b, c, d, у меня получилось, только вот когда я хочу вывести уравнение в виртуальном окне, мне пишет "@=5* + * ", то есть у меня не получается вывести ответ и чему в уравнении равны b,c,d. Уже прочел все учебное пособие по использованию языка ассемблера, и так и не могу найти решение своей проблемы. Буду очень благодарен за любую помощь!

мой код:


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
JMP START ; 
 DB "y=a*b+c*d";
 DB "AL"; 
START:
 
 
IN 00 
PUSH BL POP AL 
IN 00 
PUSH CL POP AL 
IN 00 
PUSH DL POP AL 
IN 00 
 
 
MOV [04], AL
MOV [06], BL
MOV [08], CL
MOV [A], DL
 
SUB AL,30
SUB BL,30
SUB CL,30
SUB DL,30
 
 
MUL BL,CL 
MUL DL,AL 
ADD BL,DL 
MOV[02],BL
 
 
 
Stop: 
MOV DL,C0 
MOV AL,02 
MOV CL,0 
GO: 
MOV BL,[AL] 
MOV [DL],BL 
INC CL 
CMP CL,08 
JZ stopp 
INC DL 
INC AL 
JMP GO 
stopp: 
END
0
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 96
12.12.2018, 18:31  [ТС] 9
Выводит неверно, т.е нужно вывести уравнение с введёнными с клавиатуры значениями

сам код:
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
JMP START ; 
 DB "y=a*b-c*d";
 DB "AL"; 
START:
 
 
IN 00 
PUSH BL POP AL 
IN 00 
PUSH CL POP AL 
IN 00 
PUSH DL POP AL 
IN 00 
 
 
MOV [04], AL
MOV [06], BL
MOV [08], CL
MOV [A], DL
 
SUB AL,30
SUB BL,30
SUB CL,30
SUB DL,30
 
 
MUL BL,CL 
MUL DL,AL 
SUB BL,DL 
MOV[02],BL
 
 
 
Stop: 
MOV DL,C0 
MOV AL,02 
MOV CL,0 
GO: 
MOV BL,[AL] 
MOV [DL],BL 
INC CL 
CMP CL,08 
JZ stopp 
INC DL 
INC AL 
JMP GO 
stopp: 
END
0
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 96
13.12.2018, 17:26  [ТС] 10
Отображение идет не верное, в чём беда ?

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
JMP START ; 
 DB "y=a*b+c*d";
 DB "AL"; 
START:
 
 
IN 00 
PUSH BL POP AL 
IN 00 
PUSH CL POP AL 
IN 00 
PUSH DL POP AL 
IN 00 
 
 
MOV [04], AL
MOV [06], BL
MOV [08], CL
MOV [A], DL
 
SUB AL,30
SUB BL,30
SUB CL,30
SUB DL,30
 
 
MUL BL,CL 
MUL DL,AL 
ADD BL,DL 
MOV[02],BL
 
 
 
Stop: 
MOV DL,C0 
MOV AL,02 
MOV CL,0 
GO: 
MOV BL,[AL] 
MOV [DL],BL 
INC CL 
CMP CL,08 
JZ stopp 
INC DL 
INC AL 
JMP GO 
stopp: 
END
0
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 96
13.12.2018, 17:31  [ТС] 11
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
JMP START ; 
 DB "y=a*b+c*d";
 DB "AL"; 
START:
 
 
IN 00 
PUSH BL POP AL 
IN 00 
PUSH CL POP AL 
IN 00 
PUSH DL POP AL 
IN 00 
 
 
MOV [04], AL
MOV [06], BL
MOV [08], CL
MOV [A], DL
 
SUB AL,30
SUB BL,30
SUB CL,30
SUB DL,30
 
 
MUL BL,CL 
MUL DL,AL 
ADD BL,DL 
MOV[02],BL
 
 
 
Stop: 
MOV DL,C0 
MOV AL,02 
MOV CL,0 
GO: 
MOV BL,[AL] 
MOV [DL],BL 
INC CL 
CMP CL,08 
JZ stopp 
INC DL 
INC AL 
JMP GO 
stopp: 
END


помогите найти ошибку
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
14.12.2018, 18:45 12

Не по теме:

Цитата Сообщение от Dan123456 Посмотреть сообщение
Нашел себе в сборнике задачу "Решить уравнение y=a*b+c*d
А я всё гадал - откуда слово "уравнение" в задачах типа "вычислить выражение по формуле"?

У вас какой-то бред, а не код. Он не компилируется. Он зачем-то обращается к портам ввода/вывода.

Посмотрите в закреплённой теме
Ввод и вывод чисел в различных системах счисления
0
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,927
16.12.2018, 14:02 13
Zenka17, это похоже на код какого-то эмулятора, а в данной теме разбирают ассемблер X86. Если я прав, то вы бы хоть свой эмулятор выложили, шансов больше будет, что помогут...
1
6770 / 2739 / 384
Регистрация: 17.02.2013
Сообщений: 4,047
25.12.2018, 20:54 14
Цитата Сообщение от Dan123456 Посмотреть сообщение
виртуальном окне
Цитата Сообщение от Zenka17 Посмотреть сообщение
виртуальный дисплей
Что за бред ?
Если вам преподавание идет в какой-то искусственной среде, то назовите эту среду. Приведенные выше огрызки кода это не программирование для ibm pc с ms dos , а непонятно для чего с закосом под процессор x86, но главное непонятно для чего.
Цитата Сообщение от Zenka17 Посмотреть сообщение
т.е чтобы выводился результат
А откуды мы знаем как выводить результат в непонятно чем ?
1
25.12.2018, 20:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2018, 20:54
Помогаю со студенческими работами здесь

Вычисление целочисленного арифметического выражения
Помогите найти ошибку, программа должна выполнять следующие действия: у=(a-b*c)/(a*c+b). Ответом...

Вычисление целочисленного арифметического выражения
помогите пожалуйста написать программу для решения примера X=5*(A-B)+2*C A, B, C можно выбирать...

Вычисление целочисленного арифметического выражения
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; описание...

Вычисление целочисленного арифметического выражения
Разработать программу, которая выполняет расчет и выведение результата формулы...

Вычисление целочисленного арифметического выражения
Помогите решить математическую задачу на MASM32 z=(a^2+bc)/abc

Вычисление целочисленного арифметического выражения
Здраствуйте помогите я совсем новичок в ассемблере написать прогу на ассемблере (подскажите какую...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru