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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2008, 10:19   #1
ALEX_RAS
 
Регистрация: 12.05.2008
Сообщений: 5
По умолчанию Перевод цифровой информации из аscii в bcd?

Помогите в переводе цифровой информации ( числа ) из аscii в bcd.
ALEX_RAS вне форума Ответить с цитированием
Старый 24.05.2008, 12:28   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

в чём конкретно проблема?
rpy3uH вне форума Ответить с цитированием
Старый 24.05.2008, 17:41   #3
Sharaevsky_Vitaly
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 26
По умолчанию

Вот программа конвертирования цифровой информации (числа) из ASCII в неупакованное BCD-число...Для получения упакованного BCD-число ситуация несколько отличается...Пиши если надо получить упакованное...Программа писана для TASM под DOS...просмотри, может поможет...

Код:
.286

STK SEGMENT STACK
   DW 128 DUP (?)   ; резервирование 128 слов под стек
STK ENDS  


DATA SEGMENT PARA PUBLIC "DATA"

    ASCII_LINE  DB  "1", "8", "7", "3", "$"
    BCD_RESULT  DB  20 DUP (0)   ; резервирование 20-ти байт под результат (макс.20-разрядное число) 
 
DATA ENDS


CODE SEGMENT PARA PUBLIC "CODE"

ASSUME DS:DATA, SS:STK, CS:CODE

MAIN:

; инициализация сегментов
    MOV AX, DATA
    MOV DS, AX
    MOV ES, AX
    
;************************

    LEA SI, ASCII_LINE   ; SI = адрес начала строки ASCII-чисел
    LEA DI, BCD_RESULT   ; BI = адрес начала массива неупакованного BCD-числа
    
 CONVERT:   
    
    MOV AL, [SI]   ; АL = очередная ASCII-цифра
    CMP AL, "$"   ; проверка на символ "конец строки"
    JZ SHORT END_CONVERT   ; прекращаем выполнение программы если встретился символ конца строки
    
    SUB AL, 030h   ; AX = AX - 030H (перевод из ASCII-цифры в двоичное представление)
    XOR AH, AH   ; AH = 0
    XCHG AH, AL   ; мяняем местами старший и младший байты
    
    STOSW   ; пересылка слова из АХ в строку с адресом ES:DI (inc DI - автоматически)
    INC SI   ; переход к очередной ASCII-цифре
    JMP SHORT CONVERT 
    
 END_CONVERT:  
 
;************************       

CODE ENDS    
  END MAIN

Последний раз редактировалось rpy3uH; 25.05.2008 в 15:20.
Sharaevsky_Vitaly вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хочу купить цифровой фотоаппарат Altera Свободное общение 18 15.06.2008 04:59
Получение информации из мр3 GAGARIN-NEW Мультимедиа в Delphi 2 24.03.2008 15:19
Тип информации Artem Общие вопросы Delphi 5 29.08.2007 08:14