|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.09.2012, 17:40 | #11 |
Пользователь
Регистрация: 03.06.2012
Сообщений: 28
|
Length я разобрал как cделать, вот так вышло:
Код:
|
16.09.2012, 09:52 | #12 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
это делается ГОРАЗДО проще. Вот так, например: Код:
во-вторых, поймите одну простую вещь. в 99% случаев алгоритм кода решения на Паскале и алгоритм кода реализации на Ассемблере для одной и той же задачи будут отличаться. Связано это с тем, что ассемблер - язык НИЗКОГО уровня, а Паскаль - ВЫСОКОГО. Поэтому вопрос - ЧТО именно Вы хотите сделать на Ассемблере? Какую задачу (изначально) Вы решаете? |
|
16.09.2012, 15:30 | #13 | |
Пользователь
Регистрация: 03.06.2012
Сообщений: 28
|
Цитата:
Код:
|
|
17.09.2012, 13:15 | #14 |
Пользователь
Регистрация: 03.06.2012
Сообщений: 28
|
помогите, пожалуйста
|
17.09.2012, 15:05 | #15 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
два вопроса. 1-й. что есть число a (целое, натуральное, какие возможные диапазоны?) если, допустим, надо посчитать 2^144.757 или 2^97, то, боюсь, что даже на Паскале будут определённые трудности. подозреваю, что а может быть от нуля до 8(16)... это так? 2-й. для вывод цифр предполагается двоичное или десятичное представление числа? например, для 2^7 что должна вывести программа? |
|
17.09.2012, 15:23 | #16 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
все указывает на то, что а - целое, которое делением мапится на 0-9. ответ ожидается в десятичном виде.
ошибка, скорее всего связана с тем, что остаток от деления лежит не в bx, а в dx, ну и рекомендую зачищать dx перед делением. |
17.09.2012, 15:41 | #17 | |
Пользователь
Регистрация: 03.06.2012
Сообщений: 28
|
Цитата:
2) десятичное, 2^7=128, программа должна написать: первое(1), последнее(8). |
|
17.09.2012, 15:45 | #18 | |
Пользователь
Регистрация: 03.06.2012
Сообщений: 28
|
Цитата:
Код:
|
|
17.09.2012, 16:06 | #19 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ну, у вас же написано непонятно что..
в ассемблере сначала указывается приёмник (куда пишем), потом - источник данных. mov ax,[a] что Вы берёте из [a], если там ничего нет?! потом, если у Вас число a - до 10, то зачем Вы ему выделяете двойное слово? (dw) процедуру преобразования строки в число я бы на вашем месте взял тут - http://www.programmersforum.ru/showp...57&postcount=9 хотя, конечно, у вас из двухзначных чисел может быть только 10 - можно эту строчку и отдельно отследить. я бы воспользовался универсальной процедурой. Это и удобнее и надёжнее. дальше. не надо строить таблицу значений первых и последних цифр. Ведь чтобы возвести двойку в степень a достаточно взять единичку и сдвинуть её влево ровно a раз (исключение - нулевая степень - её можно отследить отдельно. |
17.09.2012, 16:49 | #20 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
2Serge_Bliznykov
с каких пор нулевая степень для двойки, исключение при сдвиге? Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
меню(асм) | A.S.W | Фриланс | 1 | 21.08.2011 20:49 |
асм (с%о) | Ислам | Помощь студентам | 7 | 21.05.2011 09:11 |
Линк c++ и асм | Farrel | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 9 | 12.05.2011 16:19 |
из C++ в асм) как вытащить нужный фрагмент? | askerpro | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 28.12.2010 04:41 |