Люди! Братья! Сестры! Помогите понять как преобразовать 16-разрядный двоично-десятичный код в двоичный. Самое главное на Assembler К580.
К580, asm |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
К580, asm |
na_ta_li |
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Женский Реальное имя: Наталия Репутация: 0 |
Люди! Братья! Сестры! Помогите понять как преобразовать 16-разрядный двоично-десятичный код в двоичный. Самое главное на Assembler К580. |
xds |
Сообщение
#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.
|
na_ta_li |
Сообщение
#3
|
Группа: Пользователи Сообщений: 2 Пол: Женский Реальное имя: Наталия Репутация: 0 |
спасибо xds!
теперь есть чем выходные занять,разобратся, что к чему и почему выдается ошибка lxi h,0x1234 ;BC = 0x1234 ***** UNDEFINED SYMBOL ***** и ani 0xF ***** UNDEFINED SYMBOL ***** |
xds |
Сообщение
#4
|
N337 Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: 26 |
почему выдается ошибка Это шестнадцатеричные константы. Просто выясни, как они правильно записываютя в ассемблере (в смысле компилятора), который ты используешь (может быть, например, 1234h и 0Fh соответственно).lxi h,0x1234 ;BC = 0x1234 ***** UNDEFINED SYMBOL ***** и ani 0xF ***** UNDEFINED SYMBOL ***** Сообщение отредактировано: xds - -------------------- The idiots are winning.
|
Текстовая версия | 10.11.2024 8:45 |