IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

 
 Ответить  Открыть новую тему 
> К580, asm
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Женский
Реальное имя: Наталия

Репутация: -  0  +


Люди! Братья! Сестры! Помогите понять как преобразовать 16-разрядный двоично-десятичный код в двоичный. Самое главное на Assembler К580.
mega_chok.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Код
        lxi h,0x1234   ;BC = 0x1234
        call bcd2bin
                       ;BC = 0x4D2 (= 1234)
        hlt

;BC = (H >> 4) * 1000 + (H & 0xF) * 100 + (L >> 4) * 10 + (L & 0xF)
bcd2bin
        lxi b,0        ;BC = H >> 4
        mov a,h        
        rrc
        rrc
        rrc
        rrc
        call add_al
        call mul10     ;BC = BC * 10
        mov a,h        ;BC = BC + (H & 0xF)
        call add_al
        call mul10     ;BC = BC * 10
        mov a,l        ;BC = BC + (L >> 4)
        rrc
        rrc
        rrc
        rrc
        call add_al
        call mul10     ;BC = BC * 10
        mov a,l        ;BC = BC + (L & 0xF)
        call add_al
        ret

;BC = BC + (A & 0xF)
add_al
        ani 0xF
        add c
        mov c,a
        mvi a,0
        adc b
        mov b,a
        ret

;BC = BC * 10
mul10
        call shl
        mov d,b
        mov e,c
        call shl
        call shl
        mov a,c
        add e
        mov c,a
        mov a,b
        adc d
        mov b,a
        ret

;BC = BC << 1
shl
        ora a
        mov a,c
        ral
        mov c,a
        mov a,b
        ral
        mov b,a
        ret


Сообщение отредактировано: xds -


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 2
Пол: Женский
Реальное имя: Наталия

Репутация: -  0  +


спасибо xds!
теперь есть чем выходные занять,разобратся, что к чему и почему выдается ошибка

lxi h,0x1234 ;BC = 0x1234
***** UNDEFINED SYMBOL *****
и
ani 0xF
***** UNDEFINED SYMBOL *****
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Цитата(na_ta_li @ 20.11.2006 23:42) *
почему выдается ошибка

lxi h,0x1234 ;BC = 0x1234
***** UNDEFINED SYMBOL *****
и
ani 0xF
***** UNDEFINED SYMBOL *****
Это шестнадцатеричные константы. Просто выясни, как они правильно записываютя в ассемблере (в смысле компилятора), который ты используешь (может быть, например, 1234h и 0Fh соответственно).

Сообщение отредактировано: xds -


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 10.11.2024 8:45
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name