| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для начинающих > Задача: составить массив из цифр числа K. |
| Автор: RomanK 1.5.2007, 19:12 |
| Помогите решить subj! Сам массив я впринципе смогу составить. Я незнаю как из, например 5-ти значного числа, по очереди отделять каждую цифру. Что для этого надо сделать? Огромное спасибо! |
| Автор: Akina 1.5.2007, 19:57 |
Зависит от того, как задано это "5-значное число"... |
| Автор: RomanK 1.5.2007, 20:06 | ||
| Вообще ASM встроен в TarboPascal. А задается... ну например вот так:
|
| Автор: anwe 1.5.2007, 21:39 |
| А тут асм, в общем-то, не причем. Просто подумай как вообще это сделать. Дели свое число на 10^5. Потом остаток на 10^4, потом на 10^3 и так далее. После каждого деления и получишь цифры. |
| Автор: MAKCim 2.5.2007, 09:25 | ||
|
| Автор: RomanK 2.5.2007, 18:40 | ||
Короче вот что я сделал:
Только одно НО! Почему то паскаль ругается на div BX! Типа Devision by zero! Когда пошагово выполняю программу перед делением в AX: 12345, в BX: 10. Как выполняется деление, так выскакивает ошибка: Devision by zero! Что такое? Что не так? |
| Автор: ksnk 2.5.2007, 19:04 |
| Ругается он не на div Bx, а на строку ниже... imho, массив в паскале выглядит сложнее, чем ты о нем думаешь Строчку lea SI, M из тела цикла, видимо, следует вывести... |
| Автор: dumb 2.5.2007, 19:34 |
результат деления просто не умещается в 16 бит, так как делится число dx:ax(32 бита) на bx. обнули dx перед делением. |
| Автор: MAKCim 2.5.2007, 19:49 |
| RomanK, а у тебя не задом-наперед в массив пишется? + lea надо за цикл вынести |
| Автор: RomanK 2.5.2007, 20:49 | ||
| MAKCim, угу. Задом наперед! Вот рабочий вариант:
Как сделать, чтобы не задом наперед было? Я понимаю, что надо как-то десятку в степень возводить... но тут ведь еще цикл потребуется? Ведь так? Или можно как нибудь подругому сделать? |
| Автор: MAKCim 2.5.2007, 21:19 | ||
| RomanK, я же писал
|
| Автор: RomanK 2.5.2007, 21:29 |
| MAKCim, мда... как все сложно! Мы некоторых команд даже еще не проходили на занятиях!!! Поэтому я не понимаю как там и что устроено! Например stosw, pop, call! Ну я по мануалу разберусь, поищу! Спасибо! |