Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Akikat
0 / 0 / 0
Регистрация: 07.05.2018
Сообщений: 4
1

Перевод чисел из одной системы счисления в другую

07.05.2018, 11:34. Просмотров 607. Ответов 7
Метки нет (Все метки)

Задача: Написать программу перевода чисел из одной системы счисления в другую. Систему счисления (десятичная, двоичная, восьмеричная или шестнадцатеричная) для задания и перевода числа выбирает пользователь. Предусмотреть возможность перевода сразу нескольких чисел, загруженных из файла.

Задача одна, я искал в интернете решения, наткнулся на этот форум, нашел соответствующую тему вот здесь:
Ввод и вывод чисел в различных системах счисления
Вопрос задавался в 2009 году и был дан ответ четкий, хороший, объемный, базара нет, но увы, я не разобрался что где раскоментировать, где в каком месте что поставить. Я пытался вставить код в свой ассемблер, но он выдает немеренное количество ошибок. Скрин, как я пытался вставить в свой код задачу из той темы:
Перевод чисел из одной системы счисления в другую

Работаю я на DosBox, пишу на AsmEdit. Возможно я использую не тот отладчик?
Простите пожалуйста, что я такой тупой, но надеюсь что найдутся люди, которые в этом разбираются и помогут мне, я буду очень рад.
Я сейчас изучаю книгу Калашникова параллельно, пытаюсь разобраться, но сейчас понял, что времени в обрез, и мне подойдет любая помощь .
Объяснении особых не нужно, лишь сам код, если не хотите объяснять, я сам как-нибудь пойму.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2018, 11:34
Ответы с готовыми решениями:

Ввод чисел. Перевод в различные системы счисления
Разработать программу перевода чисел из десятичной системы счисления в восьмеричную систему. Числа...

Нужна помощь в решении задачи "Перевод числа из одной системы счисления в другую"
Доброго времени суток! Помогите пожалуйста не получается сделать задачу которая бы переводила числа...

перевод их одной с-мы счисления в другую
Здравствуйте. Подскажите пожалуйста, вот есть дробные числа десятичные, как их переводить из N-ной...

Перевод из 2-ой системы счисления в 8-ую систему счисления
Здравствуйте !Мб у кого нибудь есть код или процедура перевода из 2-ой системы счисления в 8-ую...

Перевод числа в другую систему счисления (nasm x64)
Доброго времени суток, прошу помощи. Есть задача: написать программу, которая будет переводить...

7
R71MT
5788 / 1544 / 320
Регистрация: 29.07.2014
Сообщений: 2,569
Записей в блоге: 5
07.05.2018, 12:17 2
Akikat, а где код-то твой? ошибки-же в нём надо искать, а не в фотке...
1
Akikat
0 / 0 / 0
Регистрация: 07.05.2018
Сообщений: 4
07.05.2018, 12:56  [ТС] 3
Я взял код из другой темы(которая находится по ссылке):
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
OutInt proc
        
;; если число знаковое, то необходимо расскоментировать следующие строки
;; Проверяем число на знак.
;   test    ax, ax
;   jns     oi1
;
;; Если оно отрицательное, выведем минус и оставим его модуль.
;   mov  cx, ax
;   mov     ah, 02h
;   mov     dl, '-'
;   int     21h
;   mov  ax, cx
;   neg     ax
;; Количество цифр будем держать в CX.
;oi1:  
    xor     cx, cx
    mov     bx, 10 ; основание сс. 10 для десятеричной и т.п.
oi2:
    xor     dx,dx
    div     bx
; Делим число на основание сс. В остатке получается последняя цифра.
; Сразу выводить её нельзя, поэтому сохраним её в стэке.
    push    dx
    inc     cx
; А с частным повторяем то же самое, отделяя от него очередную
; цифру справа, пока не останется ноль, что значит, что дальше
; слева только нули.
    test    ax, ax
    jnz     oi2
; Теперь приступим к выводу.
    mov     ah, 02h
oi3:
    pop     dx
; Извлекаем очередную цифру, переводим её в символ и выводим.
;; раскоментировать если основание сс > 10, т.е. для вывода требуются буквы
;   cmp     dl,9
;   jbe     oi4
;   add     dl,7
;oi4:
    add     dl, '0'
    int     21h
; Повторим ровно столько раз, сколько цифр насчитали.
    loop    oi3
    
    ret
 
OutInt endp
0
R71MT
5788 / 1544 / 320
Регистрация: 29.07.2014
Сообщений: 2,569
Записей в блоге: 5
07.05.2018, 14:19 4
это отдельная процедура, которую помещают в программу.
таких процедур может быть сколько-угодно: для вывода чисел на экран - одна, для вывода строк - другая, и т.д.
т.е. должна ещё быть основная программа.
прокрути эту страницу до конца вниз, там есть ссылки
1
07.05.2018, 14:19
Akikat
0 / 0 / 0
Регистрация: 07.05.2018
Сообщений: 4
07.05.2018, 15:15  [ТС] 5
Сможешь показать на основе этого примера полноценную прогу от начала до конца(если понимаешь о чем я)?
То есть типа(желательно комментируя как показано ниже:
Начало
Одна процедура(сам пример)
Вторая процедура(че нить еще)
конец
0
R71MT
5788 / 1544 / 320
Регистрация: 29.07.2014
Сообщений: 2,569
Записей в блоге: 5
07.05.2018, 15:36 6
Цитата Сообщение от Akikat Посмотреть сообщение
полноценную прогу от начала до конца
нормально!!! значит тебе надо, а разбираться должен я что-ли (ещё и коммент к каждой строчке)
ты лучше напиши что-можешь, а где неправильно - я тебе подскажу.
такими примерами забит здесь весь раздел..
тебе лень не то-чтобы попытаться написать самому, а даже воспользоваться поиском
0
Akikat
0 / 0 / 0
Регистрация: 07.05.2018
Сообщений: 4
07.05.2018, 17:44  [ТС] 7
Да неее, ты не так меня понял, нужно просто "склеить", если это можно так назвать два кода с началом и концом. То есть, я просто не понимаю почему ты сказал, что это отдельная процедура, которую помещают в программу.
Если это процедура, которую помещают в программу, то как я понял его помещают в процедуру между началом и концом, так?
Раз эту процедуру помещают в программу, мне нужно лишь понять где его начало и где конец, чтобы в код эту процедуру вставить.
0
R71MT
5788 / 1544 / 320
Регистрация: 29.07.2014
Сообщений: 2,569
Записей в блоге: 5
07.05.2018, 18:15 8
Цитата Сообщение от Akikat Посмотреть сообщение
мне нужно лишь понять где его начало и где конец, чтобы в код эту процедуру вставить.
вот тебе скелет программы на каких-хочешь ассемблерах...
в сегмент-данных запиши своё число, и внутри сегмента-кода помести эту процедуру вывода чисел
1
07.05.2018, 18:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2018, 18:15

Перевод из 10 системы счисления в 16
Помогите, пожалуйста! Дали задание, а я в ассемблере очень плохо разбираюсь. Нужно написать...

Перевод из 10 системы счисления в 2
Всем привет! Нашел программу на форуме, но в некоторых местах не понимаю что она делает. Можете...

Перевод из одной СС в другую
Здравствуйте! Пытаюсь понять, как работает эта программа, но назначение некоторых строчек мне не...


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

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

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