Поиск:

Ответ в темуСоздание новой темы Создание опроса
> разбить число по разрядам 
:(
    Опции темы
susanin
Дата 3.4.2007, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



необходимо указанное в сегменте данных число разбить на разряды..т.е. например число 125-будет 3 разряда 1, 2, 5....как можно это сделать???
PM MAIL   Вверх
spin2
Дата 3.4.2007, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Делить на 10?


--------------------
"С кем тяжело молчать, с тем не о чем говорить" (Метерлинк)
блог
Все об ICQ-ботах
PM MAIL WWW ICQ Skype Jabber   Вверх
W4FhLF
Дата 4.4.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



Тебе надо узнать кол-во разрядов или разбить число на разряды и записать куда-то?


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
susanin
Дата 4.4.2007, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



уточняю. мне надо сделать пограммку, которая бы складывала нечетные цифры, из которых состоит число. например 1378-результатом работы программы будет сумма 1+3+7, т.к. они нечетные....загвоздка состоит в том, что я не знаю, как можно выделить из числа каждую цифру и определить ее четночть/нечетность... подскажите какие нибудь идейки....
PM MAIL   Вверх
Kuvaldis
Дата 5.4.2007, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


механик-вредитель
***


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

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



Код

.MODEL SMALL
 
.DATA
     Num    DW    1378    ; 2-байтовое число   
     Ten     DW    10        ; делитель (в asm нельзя делить на непосредственное значение)

.code 
program: 
       MOV AX,@DATA       
        MOV DS,AX
;--------------         
         MOV  AX,  Num   ; требование команды DIV (делимое должно быть в AX) 

SIGN: NEG  AX      ; ПОЛУЧЕНИЕ НЕОТРИЦАТЕЛЬНОГО ЧИСЛА 
         JS    SIGN        
     
         XOR  CX,  CX;     будем считать сумму нечетных здесь

; делим число на 10 до тех пор,  пока данное число не станет меньше 10

WHILE1:
         CMP  AX, 0            ; если число стало 0,  то выйти из цикла
         JE     ENDWHILE1      
         XOR   DX,  DX        ; обнулить DX (так как DIV делит пару DX: AX на 2-байтовое число Ten)               
          DIV  Ten                ; разделить число на 10              
          ; очередная цифра - как остаток от деления и сидит в dx
         TEST  DX ,  1          ; у любого нечетного числа самый младший бит - в 1,  при помощи test его и проверяем
         jz       next
         add   cx,  dx
next:
         JMP   WHILE1
ENDWHILE1:

;--------------
MOV AX, 4C00H
INT 21H
END program


Это сообщение отредактировал(а) Kuvaldis - 5.4.2007, 10:07


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

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

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


 




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


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

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