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

Осуществить перевод распакованного десятичного числа в ascii формат

25.10.2015, 00:50. Просмотров 837. Ответов 6
Метки нет (Все метки)

моя программа выводит то же самое, что и ввожу, в чем проблема?
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
.model small 
.data 
bcdd db 0,2,0,6,0,3,0,1 
ascii db 9 dup ('$') 
.code 
start: 
mov ax,@data 
mov ds,ax 
mov es,ax 
lea di, ascii 
lea si, bcdd 
mov cx, 8 
 
for: 
mov al, [si] 
or al, 30h 
mov [di], al 
inc di 
inc si 
loop for 
mov dx,offset ascii 
mov ah,9 
int 21h 
mov ah,4Ch 
int 21h 
 
end start

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2015, 00:50
Ответы с готовыми решениями:

Перевод числа из упакованного BCD-формата в ASCII-формат
Есть программа, которая считает разницу 873451-548197 используя ASCII формат,...

Перевод из десятичного числа в 16-й
Ребят помогите найти ошибку. Вводится десятичное число в консоль, затем...

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

Перевод десятичного числа в ЧПЗ
Как перевести число 125,25(10) в Число с плавающей запятой ? Мантисса = 8,...

Перевод из десятичного числа в двоичное
Мне надо из символа получить ASCII-код, а из него получить число в двоичной...

6
XiloManX
643 / 147 / 31
Регистрация: 11.02.2013
Сообщений: 277
25.10.2015, 05:08 2
Цитата Сообщение от Andrea2 Посмотреть сообщение
моя программа выводит то же самое, что и ввожу, в чем проблема?
Чудо человек! Так ты и делаешь - ровно то, что написал в названии темы -> "Осуществить перевод распакованного десятичного числа в ascii формат".

А если надо пропустить нули, то можно сделать так:
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
.model small 
.data 
bcdd db 0,2,0,6,0,3,0,1 
ascii db 5 dup ('$')  ; <---
.code 
start: 
        mov ax,@data 
        mov ds,ax 
        mov es,ax 
        lea di, ascii 
        lea si, bcdd 
        mov cx, 4                ; <---
for:
        mov ax, [si]             ; <---
        or al, 30h 
        mov [di], al
        inc di 
        inc si 
        inc si                   ; <---
        loop for 
 
        mov dx,offset ascii 
        mov ah,9 
        int 21h 
 
        mov ah,4Ch 
        int 21h 
 
end start
И будет тебе счастье.
0
Andrea2
-11 / 0 / 0
Регистрация: 14.03.2015
Сообщений: 27
25.10.2015, 12:09  [ТС] 3
XiloManX, нужно, чтобы вместо нулей тройки были (например 01060507-->31363537)
0
XiloManX
643 / 147 / 31
Регистрация: 11.02.2013
Сообщений: 277
26.10.2015, 08:33 4
Кстати, я, в предидущем коде, допустил малюсенькую ошибку - забыл перевернуть число в регитре.

Вот исправленный вариант:
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
.model small 
.data 
bcdd db 0,2,0,6,0,3,0,1 
ascii db 5 dup ('$')  ; <---
.code 
start: 
        mov ax,@data 
        mov ds,ax 
        mov es,ax 
        lea di, ascii 
        lea si, bcdd 
        mov cx, 4                ; <---
for:
        mov ax, [si]             ; <---
        xchg ah, al
        or al, 30h 
        mov [di], al
        inc di 
        inc si 
        inc si                   ; <---
        loop for 
 
        mov dx,offset ascii 
        mov ah,9 
        int 21h 
 
        mov ah,4Ch 
        int 21h 
 
end start
Добавлено через 23 минуты
Цитата Сообщение от Andrea2 Посмотреть сообщение
XiloManX, нужно, чтобы вместо нулей тройки были (например 01060507-->31363537)
Понятно! Человек, не дружит с головой. Но я, всё же понял, о чём речь.

Надо правильно, задавать вопрос. Типа: Как, сделать вывод на экран, кодов ascii символов-цифр, в шестнадцатиричном формате?

Ну да ладно, вот код (должен работать):
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
49
50
51
52
53
54
55
56
57
58
59
60
.model small 
.data 
bcdd db 0,2,0,6,0,3,0,1 
ascii db 4 dup (0)
.code 
start: 
        mov        ax, @data 
        mov        ds, ax 
        mov        es, ax 
        lea        di, ascii 
        lea        si, bcdd 
        mov        cx, 4
for:
        mov        ax, [si]
        xchg       ah, al
        or         al, 30h
        mov        [di], al
 
        push       cx
;   mov        ax, 0ffffh   ;//число для разбора
    mov        dx, 16       ;//система счисления 2,8,10,16
    xor        cx, cx
a1:
    xor        bx, bx
a2:
    cmp        ax, dx
    jb         a3
    inc        bx
    sub        ax, dx
    jmp        a2
a3:
    add        ax, '0'
    cmp        ax, ':'
    jb         a5
    add        ax, 'A'-':'
a5:
    push       ax
    inc        cx
    xchg       ax, bx
    or         ax, ax
    jne        a1
a4:
    pop        dx
    mov        ah, 02h
    int        21h
    loop       a4
        pop        cx
 
        inc        di 
        inc        si 
        inc        si
        loop       for 
 
        mov        ah, 0    ; ждем нажмия любой клавиши.
        int        16h
 
        mov        ah, 4Ch 
        int        21h 
 
end start
0
XiloManX
643 / 147 / 31
Регистрация: 11.02.2013
Сообщений: 277
26.10.2015, 09:05 5
В аттаче, тот же код примера, приведённого мной выше, но для компилятора FASM.
Может кому пригодится.
0
Миниатюры
Осуществить перевод распакованного десятичного числа в ascii формат  
Вложения
Тип файла: 7z DisplayASCIICodes.7z (26.6 Кб, 6 просмотров)
Andrea2
-11 / 0 / 0
Регистрация: 14.03.2015
Сообщений: 27
26.10.2015, 12:57  [ТС] 6
XiloManX, спасибо большое) с головой я дружу, просто методичка странная, формулировка вопроса как я написал, а результат требуется другой
0
XiloManX
643 / 147 / 31
Регистрация: 11.02.2013
Сообщений: 277
26.10.2015, 16:46 7
Andrea2, кстати, забыл добавить, что буфер, для ascii кодов, и несколько инструкций, для отображения ascii-кодов символов цифр на экране, в данном коде, не нужен. Оставил на всякий случай. Вдруг буфер ещё нужен, для дальнейшего использования.

Вот код, без использования буфера:
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
49
50
51
52
53
54
55
56
.model small 
.data 
bcdd db 0,2,0,6,0,3,0,1 
.code 
start: 
        mov        ax, @data 
        mov        ds, ax 
        mov        es, ax 
        lea          si, bcdd 
        mov        cx, 4
for:
        mov        ax, [si]
        xchg       ah, al
        or         al, 30h
 
        push       cx
;       mov        ax, 0ffffh   ;//число для разбора
        mov        dx, 16       ;//система счисления 2,8,10,16
        xor        cx, cx
a1:
        xor        bx, bx
a2:
        cmp        ax, dx
        jb         a3
        inc        bx
        sub        ax, dx
        jmp        a2
a3:
        add        ax, '0'
        cmp        ax, ':'
        jb         a5
        add        ax, 'A'-':'
a5:
        push       ax
        inc        cx
        xchg       ax, bx
        or         ax, ax
        jne        a1
a4:
        pop        dx
        mov        ah, 02h
        int        21h
        loop       a4
        pop        cx
 
        inc        si 
        inc        si
        loop       for 
 
        mov        ah, 0    ; ждем нажмия любой клавиши.
        int        16h
 
        mov        ah, 4Ch 
        int        21h 
 
end start
Код, для компилятора FASM, в аттаче.
Цитата Сообщение от Andrea2 Посмотреть сообщение
XiloManX, спасибо большое) с головой я дружу, просто методичка странная, формулировка вопроса как я написал, а результат требуется другой
Кнопка спасибо, находится в правом нижнем углу.
1
Вложения
Тип файла: 7z DisplayASCIICodes.7z (26.6 Кб, 1 просмотров)
26.10.2015, 16:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2015, 16:46

перевод отрицательного десятичного числа в двоичное и преобразование текста
Нужна помощь в решение этих задач, заранее благодарен 1) Напишите программу,...

Перевод из десятичного формата в шестнадцатеричный (оконное приложение)
Перевести число, введенное в десятичном формате в шестнадцатеричное....

Сложить четные цифры десятичного числа: неправильно делятся числа
Здравствуйте. Задача следующая: нужно сложить все четные числа десятичного...


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

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

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