0 / 0 / 0
Регистрация: 13.12.2019
Сообщений: 1
1
TASM

Вывести на экран сумму цифр десятичной записи числа

13.12.2019, 09:11. Показов 1561. Ответов 2

Задание:Программа получает на вход натуральное двоичное число и выводит на экран сумму цифр его десятичной записи.


Составьте и отладьте программу, решающую поставленную индивидуальную задачу. При этом:

Вводите исходные данные с клавиатуры (с эхопечатью)

Выводите результаты на экран

Ввод и вывод реализуйте использую отдельные процедуры с обменом данными через стек

Отчет по курсовой работе оформляете в виде текстового документа, подготовленного в издательской системе ТЕХ или в текстовом процессоре Libre Office Writer. Отчет должен содержать:

Постановку задачи

Алгоритм решения задачи, представленный в виде блок-схемы. (Блок-схему удобнее всего готовить в графическом конструкторе Visio либо с помощью сервиса draw.io).

листинг программы

контрольную выдачу

исполнимый (.com) файл, содержащий программу

P.S. я в этом вообще ничего не понимаю
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.12.2019, 09:11
Ответы с готовыми решениями:

Вводятся два 4 значительные десятичные числа. Вывести на экран их сумму в десятичной записи
Вводятся два 4 значительные десятичные числа. Вывести на экран их сумму в десятичной записи.

Вывести на экран те числа из интервала [10 .. 1000], которые меньше произведения цифр десятичной записи числа
Написать программу: среди чисел от 10 до 1000,найти и вывести на экран те, которые меньше...

Найти и вывести количество и сумму чётных цифр в десятичной записи числа N
День добрый, помогите в решении этой задачи. Сам бы решил, но времени нет, да и Python я забыл. ...

Вывести на экран в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр
Задание: Вывести на экран в возрастающем порядке все трехзначные числа, в десятичной записи ...

2
Прощай, Мир!
1672 / 829 / 252
Регистрация: 26.05.2012
Сообщений: 3,057
13.12.2019, 15:10 2
Ввод и вывод чисел в различных системах счисления
0
Модератор
Эксперт по электронике
8197 / 4122 / 1569
Регистрация: 01.02.2015
Сообщений: 12,742
Записей в блоге: 3
13.12.2019, 16:43 3
Kayaker_vn, вам делать большой объём работы - и блок-схему и программу и листинг и контрольный пример работы и какой-то текст в отчёте.
Целиком курсовые на форуме делают, но не в этом разделе.
Берите себя в руки и начинайте выполнение. Какие будут конкретные вопросы - спрашивайте.
Сама программка будет такой. Но комментарии сделаете самостоятельно
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
.model medium
 
.stack 200h
 
.data
        msgPrompt       db      'Enter a number (bin): ', '$'
        msgEntered      db      0Dh, 0Ah, 'Entered a number (dec): ', '$'
        msgResult       db      0Dh, 0Ah, 'Sum of digits: ', '$'
        msgPressAnyKey  db      0Dh, 0Ah, 'Press any key to exit...', '$'
.data?
        N               dw      ?       ;вводимое число
        Sum             dw      ?       ;сумма десятичных цифр введённого числа
.code
 
;макрос для упрощения вызова процедур с параметрами
invoke  macro   CallProc, Params
        IRP     P,      <Params>
                mov     ax,     P
                push    ax
        endm
        call    CallProc
endm
 
;ввод 16-разрядного числа с клавиатуры в двоичном формате
;на входе:
;  дальний адрес переменной для сохранения результата
InputBin16      proc    near
        ;стековый фрейм
        push    bp
        mov     bp,     sp
        ;вывод приглашения ко вводу
        mov     ah,     09h
        lea     dx,     [msgPrompt]
        int     21h
        ;ввод с фильтрацией символов
        xor     bx,     bx
        mov     cx,     16
        @@getc:
                mov     ah,     08h     ;ввод символа без эха
                int     21h
                mov     dl,     al
                cmp     al,     0Dh     ;если ENTER - завершить ввод
                je      @@break
                sub     al,     '0'     ;проверка корректности символа
                jb      @@getc
                cmp     al,     2
                jnc     @@getc
                shl     bx,     1       ;для корректного символа - преобразование в число
                or      bl,     al
                mov     ah,     02h     ;вывод введённого символа
                int     21h
        loop    @@getc
        @@break:
        ;сохранить введённое число по адресу, указанному в параметре процедуры
        les     di,     [bp+4]
        mov     [di],   bx
        ;удаление фрейма стека
        pop     bp
        ret     4
InputBin16      endp
 
;Вывод на экран целого 16 разрядного беззнакового числа
;на входе:
;  целое 16 разрядное беззнаковое число
ShowUInt16       proc   near
        ;стековый фрейм
        push    bp
        mov     bp,     sp
        ;вывод числа на экран
        mov     ax,     [bp+4]
        mov     bx,     10              ;делитель (основание системы счисления)
        mov     cx,     0               ;количество выводимых цифр
        @@div:
                xor     dx,     dx      ;делим (dx:ax) на bx
                div     bx
                add     dl,     '0'     ;преобразуем остаток деления в символ цифры
                push    dx              ;и сохраняем его в стеке
                inc     cx              ;увеличиваем счётчик цифр
                test    ax,     ax      ;в числе ещё есть цифры?
        jnz     @@div                   ;да - повторить цикл выделения цифры
        @@show:
                mov     ah,     02h     ;функция ah=02h int 21h - вывести символ из dl на экран
                pop     dx              ;извлекаем из стека очередную цифру
                int     21h             ;и выводим её на экран
        loop    @@show                  ;и так поступаем столько раз, сколько нашли цифр в числе (cx)        pop     bx
        ;удаление фрейма стека
        pop     bp
        ret
ShowUInt16       endp
 
main    proc
        ;инициализация сегментного регистра ds адресом сегмента данных
        mov     ax,     @data
        mov     ds,     ax
 
        ;ввод числа
        invoke  InputBin16,     <<seg N>, <offset N>>
        mov     ax,     [N]
        ;вычисление суммы цифр
        mov     ax,     [N]
        xor     bx,     bx
        mov     cx,     10
        @@repeat:
                xor     dx,     dx
                div     cx
                add     bx,     dx
                test    ax,     ax
        jnz     @@repeat
        mov     [Sum],  bx
        ;контрольный вывод введённого числа
        mov     ah,     09h
        lea     dx,     [msgEntered]
        int     21h
        invoke  ShowUInt16,     [N]
        ;вывод результата
        mov     ah,     09h
        lea     dx,     [msgResult]
        int     21h
        invoke  ShowUInt16,     [Sum]
        ;ожидание нажатия любой клавиши
        mov     ah,     09h
        lea     dx,     [msgPressAnyKey]
        int     21h
 
        mov     ah,     00h
        int     16h
 
        ;завершение программы
        mov     ax,     4C00h
        int     21h
main    endp
 
end     main
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2019, 16:43
Помогаю со студенческими работами здесь

Вывести на экран в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр
Вывести на экран в возрастающем порядке все трехзначные числа, в десятичной записи которых нет...

Получить сумму k младших цифр десятичной записи числа n
Заданные натуральные числа n и k. Значение k не более количество цифр в десятичной записи числа n....

Найти сумму цифр в десятичной записи трехзначного натурального числа
Найти сумму цифр в десятичной записи трехзначного натурального числа.

Определить сумму цифр в десятичной записи целого неотрицательного числа
Определить сумму цифр в десятичной записи целого неотрицательного числа.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru