Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2009, 13:13   #1
Piar
Новичок
Джуниор
 
Регистрация: 20.05.2009
Сообщений: 2
По умолчанию Перевод BIN -> HEX

Добрый день! Пользователи форума!
Возникла проблема при написании программы на Ассемблере точнее творческий кризис!
Если кто может дополните код!
Суть программы состоит в переводе из двоичной системы счисления в шестнадцатеричную!

Код:
.model small
.stack 100h
.data
    msg1 db "Vvedite bin >> $"
    msg2 db 10,13,">>:HEX:>> $"
    mas db 12,0,12 dup (?) 
    bin db 16,0,16 dup (?)
    hex db "0123456789ABCDEF"
.code
start:
    mov ax,@data
    mov ds,ax
    lea dx,msg1
    call out_msg
    lea dx,mas
    mov ah,0ah
    int 21h
	xor cx,cx
    mov di,dx
    inc di
    mov byte ptr cl,[di]
    inc di
go1:                                
    mov byte ptr al,[di]
    sub al,30h
    shl al,4
    mov [di],al
    inc di
    loop go1
    
; до этого места программа сформировала в дампе вот такое вот 
; например мы ввели 1100d => 31 31 00 00h => 10 10 00 00 (это то 
; что получилось в цикле)
; как многие заметили мы пытаемся вывести "С" в шестнадцатеричной 
; так как вводили 1100b 
; прошу помочь превратить из   10 10 00 00 => 1 1 0 0 (и тут наступил 
; кризис)

    mov ah,4ch
    int 21h
out_msg:
    push ax
    mov ah,09h
    int 21h
    pop ax
    ret

end start
Спасибо Большое за внимание!!
Piar вне форума Ответить с цитированием
Старый 20.05.2009, 13:52   #2
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

А если сделать так
Код:
    xor bx,bx
go1:                                
    mov byte ptr al,[di]
    sub al,30h
    or bl,al
    shl bx,1
    inc di
    loop go1
    shr bx,1
    
    lea dx,hex
    add dx,bl; теперь в dx аддрес символа
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 20.05.2009 в 13:57.
Goodwin98 вне форума Ответить с цитированием
Старый 20.05.2009, 15:44   #3
Piar
Новичок
Джуниор
 
Регистрация: 20.05.2009
Сообщений: 2
Радость

Цитата:
Сообщение от Goodwin98 Посмотреть сообщение
А если сделать так
Код:
    xor bx,bx
go1:                                
    mov byte ptr al,[di]
    sub al,30h
    or bl,al
    shl bx,1
    inc di
    loop go1
    shr bx,1
    
    lea dx,hex
    add dx,bl; теперь в dx аддрес символа
ТЫ гений!!!! де ты был раньше!!! ОГРОМНОЕ спасибо!!!!
Piar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бинарные данные .bin bmw Помощь студентам 3 08.05.2009 13:25
Перевод из HEX в АСМ PaperPlane Софт 12 30.04.2009 03:05
Формат файла - bin DM_bite Операционные системы общие вопросы 1 10.01.2009 17:01