Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Starget-93
0 / 0 / 0
Регистрация: 12.11.2012
Сообщений: 13
1

Исправить код: Перевод из 8-ой системы в 16-ую систему счисления

12.11.2012, 10:00. Просмотров 1028. Ответов 1
Метки нет (Все метки)

Программа неправильно переводит числа из восьмеричной системы счисления в шестнадцатеричную. Неправильно переводит небольшие числа.
Подскажите пожалуйста, в чем ошибка и как исправить ?
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
code SEGMENT
assume cs:code, ds:code
main:
        mov ax,code
        mov ds,ax
        mov si,8
again:
        mov bx,0
        mov dl,'?'
        call display
        mov cx,6
next:
        call kbin   ;ввод символа в al
;compare
        cmp al, ' '     ;если al = ' ' – вывод
        je back
        cmp al, '0'     ;если al < 0 то выход
        jb exit
        cmp al, '7'     ;если al > 7 то выход
        ja exit
 
        mov ah,0
        and al,00001111b
        mov di,ax
        mov ax,bx
        mul si
        add ax,di
        mov bx,ax
        loop next
back:           ;перевод и вывод
        add ax, 10
    mov dl,'='
        call display
        mov dx,bx
        call hexw
        mov dl,' '
        call display
        call crlf
        jmp again
exit:           ;выход
        mov ax, 4c00h
        int 21h
 
display proc
        mov ah,2    ;вывод
        int 21h
        ret
display endp
 
hex proc
        push dx
        lea bx,table
        mov al,dl
        shr al,4
        xlat        ; преобразование ASCII-код цифры
        mov dl,al
        mov ah,2
        int 21h
         pop dx         ;бывшее содержимое dx
        and al,00001111b    ;младший полубайт
        xlat
        mov dl,al
        mov ah,2
        int 21h
        ret
        table db '0123456789ABCDEF'
hex endp
 
kbin proc
    mov ah,1    ;ввод символа в al
    int 21h
    ret
kbin endp
 
hexw proc       ;вывод в 16 виде
        mov di, dx  ;сохранить dx
        mov dl, dh  ;вывод старшего байта
        call hex
        mov dx, di  ;восстановить dx
        call hex    ;вывод dl
        mov dl,' '  ;пробел
        call display
    ret
hexw endp
 
crlf proc
        mov dl,10   ; перевод на новую строку
        call display
        mov dl,13   ;возврат каретки
        call display
        ret
crlf endp
 
code ENDS
        end main
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2012, 10:00
Ответы с готовыми решениями:

Написать программу которая будет переводить числа из 14-ой системы счисления в 8-ую систему счисления
Помогите. очень нужно. Если можно, то как можно скорее) заранее спасибо) что-то...

Перевод числа в 4-ю систему счисления
Требуется перевести значение полученной КС(контрольной суммы) в четвиричную...

Перевод числа из 16 в 10 систему счисления
Необходимо перевести четырехразрядное число (допустим A59F) в 10 форму и...

Перевод из десятичной в восьмеричную систему счисления
Есть программка которая переводит из 10 в 8 систему счисления stkseg segment...

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

1
Fear1911
7 / 4 / 14
Регистрация: 05.02.2014
Сообщений: 131
09.12.2014, 19:22 2
Лучший ответ Сообщение было отмечено Taatshi как решение

Решение

Спустя годы....

Натркнулся на эту тему, потому что такое же задание получил... Судя по коду один институт и препод - Хусаинов)

Спасибо, доделал задание благодаря тебе

pop dx ;бывшее содержимое dx

вместо dx, должно быть ax, ты же к ниму дальше обращаешься...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2014, 19:22

Перевод из десятичной в пятеричную систему счисления [tasm]
Нужно решить задачу Преобразовать двухразрядное Десятичное число в пятеричное....

Перевод чисел из 6-ричной в 21-ричную систему счисления
помогите написать код плиз

Перевод числа из 4-ичной в 5-ичную систему счисления
помогите пожалуйста написать программку которая переводит из 4-ичной СС в...


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

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

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