Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложение чисел 
:(
    Опции темы
N0rd
Дата 16.12.2004, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 24.10.2004
Где: Карелия,Петрозаво дск

Репутация: нет
Всего: нет



Разработать программу, которая суммирует произвольное количество одноцифровых чисел. При получении символа "@" суммирование прекращается и сумма выводится на экран. Сумма должна накапливаться в машинном слове. Сделать контроль переполнения.

Помогите пожалуйста с программой.Для начала хотелось бы узнать что такое переполнение и как его проконтролировать?

Добавлено @ 22:00
Кстати забыл добавить,используем TASM 2.0.
PM MAIL   Вверх
maxim1000
Дата 16.12.2004, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



Цитата
Для начала хотелось бы узнать что такое переполнение и как его проконтролировать

это, когда результат не помещается в переменную (например 300 не помещается в байт, т.к. в его двоичной записи участвует 9 бит)
его легко проконтролировать, анализируя старший бит слова (если он изменился с 1 на 0, значит переполнение произошло)


--------------------
qqq
PM WWW   Вверх
Akina
Дата 17.12.2004, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Цитата(maxim1000 @ 17.12.2004, 00:46)
его легко проконтролировать, анализируя старший бит слова (если он изменился с 1 на 0, значит переполнение произошло)

не факт. 0FFFFh + 0FFFFh = CF + 0FFFEh. Анализировать надо именно CF после ADD.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
maxim1000
Дата 17.12.2004, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



Цитата
не факт. 0FFFFh + 0FFFFh = CF + 0FFFEh. Анализировать надо именно CF после ADD.

да, и про флаг забыл, и с битом перепутал (там надо было не бит смотреть, а уменьшение результата после сложения)


--------------------
qqq
PM WWW   Вверх
N0rd
Дата 17.12.2004, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 24.10.2004
Где: Карелия,Петрозаво дск

Репутация: нет
Всего: нет



А как это все на языке ассемблера будет выглядеть?Подскажите пожалуйста начинающему програмисту smile .
PM MAIL   Вверх
Chingachguk
Дата 18.12.2004, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: 11
Всего: 18



Код

MyNumber db '12345@'

mov si,offset MyNumber
mov bx,0

@@GetSum:

 mov  al,[si]
 inc    si
; Check for end of string
 cmp  al,'@'
 jz     @@GetSumDone
; Convert symbol (AL) to word (AX)
 sub  al,'0'
 mov ah,0
; BX:=BX+AX
 add  bx,ax
; Check for overflow (ex: FFFF->0000, etc)
 jc      @@Overflow
; to next symbol
 jmp   @@GetSum

@@GetSumDone:
...

@@Overflow:
...


Это сообщение отредактировал(а) Chingachguk - 18.12.2004, 10:44


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
N0rd
Дата 22.12.2004, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 24.10.2004
Где: Карелия,Петрозаво дск

Репутация: нет
Всего: нет



Спасибо большое!Программу сдал.
Добавлено @ 00:56
Помогите пожалуйста ещё с одним.Подскажите ответы на теоретические вопросы так или иначе связанные с ассемблером.Завтра зачетная работа за первый семестр smile ,помогите с ответами хоть на некоторые из них(кроме перевода между системами счисления):
1
Необходимость овладения архитектурной культурой.
2
Понятие процессора. Основное назначение и функции центрального
процессора.
3
Перечислить 3 основных компонента системной среды центрального
процессора Intel 8086/8088 и назначение каждого из них.
4
Изобразить в виде блок-схемы основной цикл процессора.
5
Перевод числа из системы с произвольным основанием в 10-ю систему.
6
Перевод числа из 10-й системы в систему с произвольным основанием.
7
Перевод числа из 2-й системы в 8-ю систему и обратно.
8
Перевод числа из 2-й системы в 16-ю систему и обратно.
9
Перевод числа из 8-й системы в 16-ю систему и обратно.
10
С использованием понятий: "двоичная арифметика, дополнительный код,
переполнение" описать процесс вычисления процессором в однобайтовой
ячейке памяти значения выражения 128-45+180.
11
Указать в 16-ричной системе диапазоны возможных значений для
знаковых и беззнаковых чисел, хранящихся в ячейках памяти: байт,
слово, двойное слово. Обосновать ответ.
12
Указать максимальный размер адресного пространства оперативной памяти,
которое способен адресовать центральный процессор при использовании
16-битного режима адресации. Обосновать ответ.
14
Регистры процессора: понятие, свойства, основные группы регистров
процессора 8086.
15
Особенности стекового доступа к памяти в сравнении с адресным.
16
Чем объяснить, что 20-битное значение базового адреса сегмента
кратно 16? Чему равен размер сегмента и чем это объясняется?"
18
В DS записано значение 1234h. В сегменте данных хранится строка
'Ассемблер$', причем между символом конца этой строки и начальным
байтом сегмента данных находится 50 байт. Написать значения near и
far адресов этой строки.
19
Регистр CS и командный сегмент. Почему нельзя напрямую менять
значение CS?
20
Регистр DS и сегмент данных. С какой целью в начале программы
присутствуют строки:
mov ax, @data
mov ds, ax
21
Регистр ES и дополнительный сегмент данных.
22
Регистры SS, SP, BP и стековый сегмент.
23
Написать формулу, связывающую логический и физический адреса ячейки ОП.
Привести пример, демонстрирующий возможность принадлежности одного
физического адреса двум сегментам: командного и данных.
24
Умолчания процессора при выборе сегментных регистров и перемещений.
25
Операционные регистры. Коротко описать назначение каждого. Основное их
отличие от регистров остальных групп.
26
Регистр IP.
27
Регистр флагов и флаги. Отличие флага переноса CF от флага переполнения
OF.
28
Основные возможности отладчика Turbo Debugger.
29
Язык ассемблера, определение, достоинства.
30
Символьное имя в языке ассемблера, именуемые объекты языка, атрибуты
имени.
31
Формат команды языка ассемблера.
32
Машинные команды, директивы ассемблера.
33
Операции OFFSET и SEG. Как с помощью их комбинации определить
логический адрес начала строки, которой соответствует метка данных
Stroka DB 'TURBO ASSEMBLER'?
35
Директивы определения данных.
36
Процесс ассемблирования и текущий счетчик адреса.
37
Перемещение, смещение, исполнительный адрес команды.

Пожалуйста выручите!!

PM MAIL   Вверх
Akina
Дата 22.12.2004, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



А попросить чтобы кто-нить книжку купил по АСМу и подарил ее тебе - мысля не приходила в голову? Значит скоро придет... только не вздумай тут ее высказать...



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.1510 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.