Форум программистов, компьютерный форум, киберфорум
Наши страницы

Assembler, MASM, TASM

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.63
ahito1
2 / 2 / 0
Регистрация: 28.11.2011
Сообщений: 20
#1

Сумма цифр числа - Assembler

28.11.2011, 18:40. Просмотров 2930. Ответов 8
Метки нет (Все метки)

Написать программу на языке Ассемблера IBM PC для вычисления суммы десятичных цифр числа, определенного его 16-ричным эквивалентом с помощью директивы dw.

Нашел вот такой код

Assembler
1
2
3
4
5
6
7
8
9
10
MOV BP, 10  
MOV BH, 0       
MOV CX, 5       
MOV AX, X   
M:  MOV DX, 0       
    DIV BP       
    ADD BH, DL   
LOOP M          
INT 20H     
X DW 8A54H
это правильный код? как сделать правильно?
ассемблер только начал изучать, но задачи нужно здавать срочно.

Добавлено через 12 минут
и что значит команда "X DW 8A54H" ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2011, 18:40
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сумма цифр числа (Assembler):

Найти все четырёхзначные числа, у которых сумма первой пары цифр равна произведению второй пары цифр - Assembler
Разработать программу для нахождения и вывода на экран все четырёхзначные числа, у которых сумма первой пары цифр равна произведению второй...

Сумма нечетных десятичных цифр заданного числа. - Assembler
Помогите с задачей - Найти и сохранить сумму нечетных десятичных цифр заданного числа.

Найти все четырехзначные числа, у которых сумма цифр равна 10 - Assembler
Help, задача - найти все четырехзначные числа, у которых сумма всех цифр равна 10. результат вывести файл колонками по 10 чисел в строку

Найти все четырехзначные числа,в которых сумма 1ых двух цифр в 2 раза больше суммы последних 2ух - Assembler
Помогите ,пожалуйста, найти ошибки в коде, программа должна рассчитывать все четырехзначные числа, в которых сумма первых двух цифр в два...

Получить все четырёхзначные числа, в записи которых сумма двух левых цифр равна произведению двух правых - Assembler
Добрый день! Задание: Получить все натуральные четырёхзначные числа, в записи которых сумма двух левых цифр равна произведению двух...

Tasm. Сложить два произвольных числа и проверить: полученная сумма больше или меньше третьего числа - Assembler
нужна помощь: Сложить два произвольных числа и проверить: полученная сумма больше или меньше третьего числа.

8
Vadimych
635 / 478 / 12
Регистрация: 10.01.2011
Сообщений: 1,047
28.11.2011, 19:20 #2
Цитата Сообщение от ahito1 Посмотреть сообщение
числа, определенного его 16-ричным эквивалентом с помощью директивы dw.
Цитата Сообщение от ahito1 Посмотреть сообщение
и что значит команда "X DW 8A54H" ?
ahito1, может, это вовсе и не команда? А код верный.
1
ahito1
2 / 2 / 0
Регистрация: 28.11.2011
Сообщений: 20
28.11.2011, 19:49  [ТС] #3
не могли бы вы описать код и объяснить как он работает?

Добавлено через 20 минут
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
EXAMPLE     SEGMENT           ; Имя сегмента
ASSUME  CS:EXAMPLE,DS:EXAMPLE    ; Имя сегмента кода
               ; и данных
ORG     100H        ; Для COM-файлов программа
              ; начинается с адреса 100H
;   Определение констант
 
 
 
;   Исполняемые команды
START:
    MOV BP, 10      
    MOV BH, 0               
    MOV CX, 5               
    MOV AX, X       
M:      MOV DX, 0               
        DIV BP           
        ADD BH, DL       
  LOOP M                    
 
 
 
;      Выход в DOS
      INT      20H
 
X DW 8A54H     ;присвоение значения перееменной Х
;      Резервирование памяти для результата
 
 
 
 
EXAMPLE     ENDS              ;конец описания сегмента
      END      START    ;конец исходного модуля,
;   START - точка входа (метка первой исполняемой команды)
код откомпилировался с помощью tasm, программа запускается, но вот вопрос
куда вводить само число и где смотреть результат???

с помощью TD?где смотреть?
0
Vadimych
635 / 478 / 12
Регистрация: 10.01.2011
Сообщений: 1,047
28.11.2011, 20:22 #4
Число вводить в коде, результат смотреть в дампе. В регистре bx, в старшей части, результат. По адресу ds:0116 - исходное число.
0
Миниатюры
Сумма цифр числа  
ahito1
2 / 2 / 0
Регистрация: 28.11.2011
Сообщений: 20
28.11.2011, 20:45  [ТС] #5
а в коде где именно ввести нужное число?
0
Vadimych
635 / 478 / 12
Регистрация: 10.01.2011
Сообщений: 1,047
28.11.2011, 20:51 #6
В комментарии же написано:
Цитата Сообщение от ahito1 Посмотреть сообщение
X DW 8A54H ;присвоение значения перееменной Х
1
ahito1
2 / 2 / 0
Регистрация: 28.11.2011
Сообщений: 20
28.11.2011, 21:25  [ТС] #7
СПАСИБО!
0
ahito1
2 / 2 / 0
Регистрация: 28.11.2011
Сообщений: 20
30.11.2011, 22:56  [ТС] #8
правильно ли программа считает???

Исходное число 8A54H

Результат 0116

???

Добавлено через 1 час 38 минут
не могли бы показать где выводится результат не понятно на рисунке привиденном выше где результат 0116 или 0F000

число было 8A54H (получается в десятичной 35412, должно быть сумма цифр 3+5+4+1+2=15)

0116 (получается в десятичной - 278)
0F00 (получается в десятичной - 3840)


не сходится! или я не то смотрю?
0
Vadimych
635 / 478 / 12
Регистрация: 10.01.2011
Сообщений: 1,047
30.11.2011, 23:30 #9
ahito1, слов нет, одни ... Что Вам адрес дался? Вы смотрите на значение по этому адресу: 54 8А Это Ваше число, или нет? Или не в курсе, что в памяти младшие байты лежат по младшим адресам? Написал русским языком: "Результат в старшей части bx". Если, опять же, не в курсе, что bx состоит из двух частей, bh и bl, то неужели не смутила единственная не нулевая цифра? Это ведь 15 и есть. Право слово, анекдот.
0
30.11.2011, 23:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2011, 23:30
Привет! Вот еще темы с ответами:

Записать в регистр AL количество двухзначных чисел, сумма цифр которых равна К. - Assembler
помогите пожалуйста. K-байтовая переменная со значением от 1 до 18. Требуется записать в регистр AL количество двухзначных чисел сумма...

Вычислить сумму цифр числа - Assembler
Здравствуйте, помогите решить задачу. Дано натуральное число N. Вычислить сумму его цифр. Заранее спасибо.

Подсчитать сумму цифр трехзначного числа - Assembler
подсчитать сумму чисел трехзначного числа

Найти сумму цифр четырёхзначного числа - Assembler
Здравствуйте программисты! Помогите пожалуйста с программой.Нужно определить сумму цифр четырёхзначного числа на Ассемблере.


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

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

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