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

Получить сумму кодов двух вводимых с клавиатуры символов

13.01.2018, 11:16. Показов 2314. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте люди добрые. Помогите пожалуйста написать программу.
Задача: Получить сумму кодов двух вводимых с клавиатуры символов.
Работаю в Turbo Debugger,если имеет значение.
Буду благодарен всем кто откликнется.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.01.2018, 11:16
Ответы с готовыми решениями:

Найти сумму кодов всех символов, вводимых с клавиатуры, до нажатия Esc
Вычислить сумму кодов всех символов, которые в цикле вводятся с клавиатуры до нажатия клавиши Esc....

Найти сумму кодов трех символов,введенных с клавиатуры
Найти сумму кодов трех символов,введенных с клавиатуры

Вычислить сумму двух чисел, вводимых с клавиатуры
Составьте программу на языке Паскаль, вычисляющую сумму 2-х чисел, вводимых с клавиатуры.

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

6
Модератор
Эксперт по электронике
8477 / 4335 / 1643
Регистрация: 01.02.2015
Сообщений: 13,462
Записей в блоге: 8
13.01.2018, 12:48 2
Без строк приглашения к вводу
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
.model tiny
 
.code
 
        org     100h
main    proc
 
        jmp     start
 
        ;Данные
        a       db      3
        b       db      4
start:
        ;программа
 
        mov     ah,     00h
        int     16h
        mov     bl,     al
 
        mov     ah,     00h
        int     16h
 
        add     al,     bl
 
        ;ожидание нажатия любой клавиши
        mov     ah,     08h
        int     21h
        or      al,     al
        jnz     @@Skip          ;если нажата функциональная клавиша,
        mov     ah,     08h     ;то считать расширенный символ
        int     21h             ;очистив тем самым буфер клавиатуры
@@Skip:
        ;конец программы
        int     20h
main    endp
 
end     main
0
1 / 1 / 0
Регистрация: 09.03.2017
Сообщений: 16
13.01.2018, 16:37  [ТС] 3
У меня что - то не работает. Ввожу первый символ потом второй и потом ничего не происходит. Вы не могли бы продемонстрировать работоспособность ? Пожалуйста
0
Модератор
Эксперт по электронике
8477 / 4335 / 1643
Регистрация: 01.02.2015
Сообщений: 13,462
Записей в блоге: 8
13.01.2018, 17:24 4
Поймите, решение задач на форуме сродни договору с дьяволом - при формальном соответствии договору, в проигрыше именно вы, а не форум.

Начинаю перечислять крупные и мелкие буквы договора:
Цитата Сообщение от Vitas2152 Посмотреть сообщение
Получить сумму кодов двух вводимых с клавиатуры символов.
Здесь нет ни слова о выводе на экран. Ввод символов (ASCII кодов символов) есть, сложение - тоже есть. А вывода - нет, т.к. в условии нет.

Да и придумывать за вас нет желания, т.к. выводить результат сложения можно в десятичном виде, шестнадцатеричном виде. Можно выводить и введённые символы и их ASCII-коды.

Кроме того, вы нарушаете свою часть договора - обещали
Цитата Сообщение от Vitas2152 Посмотреть сообщение
Буду благодарен всем кто откликнется.
а вместо этого выставляете претензии
Цитата Сообщение от Vitas2152 Посмотреть сообщение
У меня что - то не работает. Ввожу первый символ потом второй и потом ничего не происходит. Вы не могли бы продемонстрировать работоспособность ? Пожалуйста
Всё это я к тому, что ТЗ (техническое задание) обговаривается заранее. Дополнительные работы во взрослой жизни всегда выполняются по допсоглашению за дополнительные деньги (в практике моей фирмы - допсоглашениями компенсируют демпинговую стоимость работы по основному договору подряда и итоговая стоимость возрастает в 1,5-2 раза). В данном случае - это бесплатный раздел форума и денег никто не требует, но ВСЕГДА нужно полностью формулировать задание, а не домысливать его на ходу.

Расскажите, о какой демонстрации работоспособности идёт речь?
1
1 / 1 / 0
Регистрация: 09.03.2017
Сообщений: 16
13.01.2018, 18:09  [ТС] 5
Прошу прощение что так вышло. Просто я почти ничего не понимаю в Ассемблере. Претензий никаких нет,скорее просьба. Я вам благодарен что вы откликнулись ,просто еще требуется помощь. Думал вывод есть. Не могли бы вы подсказать как вывод организовать? Пожалуйста

Добавлено через 6 минут
вывод результата сложения в десятичном виде*.
0
Модератор
Эксперт по электронике
8477 / 4335 / 1643
Регистрация: 01.02.2015
Сообщений: 13,462
Записей в блоге: 8
13.01.2018, 18:28 6
Лучший ответ Сообщение было отмечено Vitas2152 как решение

Решение

Копирую код из закреплённой темы
Ввод и вывод чисел в различных системах счисления

Если просто выводить на экран результат
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
.model tiny
 
.code
 
        org     100h
main    proc
        ;программа
 
        mov     ah,     00h
        int     16h
        mov     bl,     al
 
        mov     ah,     00h
        int     16h
 
        mov     ah,     0
        add     al,     bl
        adc     ah,     0
 
        mov     cx, 10          ; cx - основание системы счисления
        xor     di, di          ; di - кол. цифр в числе
 
@@Conv:
        xor     dx, dx
        div     cx              ; dl = num mod 10
        add     dl, '0'         ; перевод в символьный формат
        inc     di
        push    dx              ; складываем в стэк
        or      ax, ax
        jnz     @@Conv
        ; выводим из стэка на экран
@@Show:
        pop     dx              ; dl = очередной символ
        mov     ah, 2           ; ah - функция вывода символа на экран
        int     21h
        dec     di              ; повторяем пока di<>0
        jnz     @@Show
 
 
        ;ожидание нажатия любой клавиши
        mov     ah,     08h
        int     21h
        or      al,     al
        jnz     @@Skip          ;если нажата функциональная клавиша,
        mov     ah,     08h     ;то считать расширенный символ
        int     21h             ;очистив тем самым буфер клавиатуры
@@Skip:
        ;конец программы
        int     20h
main    endp
 
end     main
Добавлено через 13 минут
-----------------------
С приглашением к вводу
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
.model tiny
 
.code
 
        org     100h
main    proc
        jmp     start
        ;данные
        a       db      0
        b       db      0
        Prompt  db      'Enter a two characters:', 0Dh, 0Ah, '$'
        msgExit db      0Dh, 0Ah, 'Press any key to exit.', 0Dh, 0Ah, '$'
 
 
 
start:
        ;программа
 
        ;приглашение к вводу
        mov     ah,     09h
        lea     dx,     [Prompt]
        int     21h
 
        ;ввод первого числа
        mov     ah,     01h
        int     21h
        mov     [a],    al
 
        mov     ah,     02h
        mov     dl,     '('
        int     21h
 
        mov     al,     [a]
        mov     ah,     0
        call    Show_AX
 
        mov     ah,     02h
        mov     dl,     ')'
        int     21h
 
        mov     ah,     02h
        mov     dl,     '+'
        int     21h
        ;ввод второго числа
        mov     ah,     01h
        int     21h
        mov     [b],    al
 
        mov     ah,     02h
        mov     dl,     '('
        int     21h
 
        mov     al,     [b]
        mov     ah,     0
        call    Show_AX
 
        mov     ah,     02h
        mov     dl,     ')'
        int     21h
 
        mov     ah,     02h
        mov     dl,     '='
        int     21h
        ;вычисление суммы
        mov     ah,     0
        mov     al,     [a]
        add     al,     [b]
        adc     ah,     0
        ;вывод результата
        call    Show_AX
 
        ;ожидание нажатия любой клавиши
        mov     ah,     09h
        lea     dx,     [msgExit]
        int     21h
        mov     ah,     08h
        int     21h
        or      al,     al
        jnz     @@Skip          ;если нажата функциональная клавиша,
        mov     ah,     08h     ;то считать расширенный символ
        int     21h             ;очистив тем самым буфер клавиатуры
@@Skip:
        ;конец программы
        int     20h
main    endp
 
; выводит число из регистра AX на экран
; входные данные:
; ax - число для отображения
; cx - система счисления (не больше 10)
Show_AX proc
        push    ax
        push    bx
        push    cx
        push    dx
        push    di
 
        mov     cx, 10          ; cx - основание системы счисления
        xor     di, di          ; di - кол. цифр в числе
 
@@Conv:
        xor     dx, dx
        div     cx              ; dl = num mod 10
        add     dl, '0'         ; перевод в символьный формат
        inc     di
        push    dx              ; складываем в стэк
        or      ax, ax
        jnz     @@Conv
        ; выводим из стэка на экран
@@Show:
        pop     dx              ; dl = очередной символ
        mov     ah, 2           ; ah - функция вывода символа на экран
        int     21h
        dec     di              ; повторяем пока di<>0
        jnz     @@Show
 
        pop     di
        pop     dx
        pop     cx
        pop     bx
        pop     ax
        ret
Show_AX endp
 
end     main
1
1 / 1 / 0
Регистрация: 09.03.2017
Сообщений: 16
13.01.2018, 18:43  [ТС] 7
Большое спасибо! Вы очень помогли мне! все отлично!
0
13.01.2018, 18:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2018, 18:43
Помогаю со студенческими работами здесь

Вычислить сумму кодов всех символов, которые в цикле вводятся с клавиатуры
1.Вычислить сумму кодов всех символов, которые в цикле вводятся с клавиатуры до нажатия на клавишу...

Вычислить сумму кодов всех символов, которые в цикле вводятся с клавиатуры до нажатия на клавишу Esc.
Вычислить сумму кодов всех символов, которые в цикле вводятся с клавиатуры до нажатия на клавишу...

Получить символы из главной и побочной диагонали. Найти сумму кодов этих символов
Собственно символы я вывел из диагоналей. Вопрос: как найти сумму кодов этих символов.:help:...

В последовательности символов, вводимых с клавиатуры, подсчитать количество пар символов *. Признак завершения ввода:+
Решите плиз. В последовательности символов, вводимых с клавиатуры, подсчитать количество пар...

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

Найдите сумму чисел, вводимых с клавиатуры. Количество вводимых чисел заранее неизвестно
Найдите сумму чисел, вводимых с клавиатуры. Количество вводимых чисел заранее неизвестно. Окончание...


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

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