ycliper

Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
Скачать

{125} Binary to Decimal Conversion using the Double Dabble Method in 68 bytes of 8085 Assembly

intel 8080

8085

assembly language

DAA instruction

DAA

decimal adjust accumulator

double dabble

binary to decimal conversion

binary

decimal

BCD

double and add

packed decimal

Автор: Hello World

Загружено: 2025-03-15

Просмотров: 491

Описание: Binary to Decimal in Assembly Language using the Double Dabble Method. This code is in 8080 8085 assembly language, but is applicable to any processor.

;================================================================================
;********************* BINARY TO BCD CONVERSION *************************
; NAME: BIN2BCD (v1.0)
; FUNCTION: CONVERTS BINARY VALUE TO BCD USING DOUBLE-DABBLE METHOD
; INPUTS: 16 BIT BINARY VALUE IN HL
; OUTPUTS: 5 CHARACTER BCD VALUE ACROSS C,D,E REGISTERS
; USER IO:
; DESTROYS:A,B,C,D,E,F/F'S
; CALLS:
; DESCRIPTION: USING THE DOUBLE DABBLE METHOD, CONVERTS BINARY VALUE TO BCD
; LEAVING RESULT IN REGISTERS C,D,E WITH C BEING THE MOST SIGNIFICANT NIBBLE
; SHOULD RETURN WITH HL ROTATED THROUGH UNTIL IT IS RESTORED TO ORIGINAL INPUT
; NOTE: UTILITY DOES NOT REQUIRE DAA INSTRUCTION
;================================================================================

BIN2BCD:
MVI B,16D ;SET UP BIT COUNTER
XRA A ;CLEAR ACCUMULATOR AND OUTPUT REGISTERS
MOV C,A ;CLEAR OUTPUT REGISTERS. C IS MSNIBBLE, E IS LSNIBBLE
MOV D,A
MOV E,A
B2BCD_LOOP: ;MAIN LOOP TO PROCESS EACH INPUT BIT

MOV A,E ;GET LOWEST BYTE
CALL DABBLE ;DABBLE IF NECESSARY
MOV E,A ; RESTORE TO REGISTER
MOV A,D ;GET LOWEST BYTE
CALL DABBLE ;DABBLE IF NECESSARY
MOV D,A ; RESTORE TO REGISTER
MOV A,C ;GET LOWEST BYTE
CALL DABBLE ;DABBLE IF NECESSARY
MOV C,A ; RESTORE TO REGISTER

SHIFT: ;ALL DABBLED, NOW DOUBLE BY LEFT SHIFT OF C,D,E,H,L
MOV A,H ;PRESERVE INPUT VALUE BY FULL ROTATE OF HL. GET BIT 15 FIRST
RAL ;SAVE BIT 15 IN CARRY BUT DO NOT SAVE ROTATED BYTE
MOV A,L ;GET LOW BYTE OF INPUT
RAL ;ROTATE MSBIT (BIT 7) INTO CARRY (AND BIT 15 INTO BIT 0)
MOV L,A ;SAVE SHIFTED LOW BYTE
MOV A,H ;GET HIGH BYTE
RAL ;BIT 15 into CARRY, BIT 7 into BIT 8
MOV H,A ;AND SAVE HIGH BYTE. ROTATION OF INPUT IS DONE, WORKING BIT IN CARRY
MOV A,E ;CONTINUE SHIFTING INTO OUTPUT REGISTERS, LOWEST OUTPUT BYTE INTO ACC
RAL ;SHIFT LEFT SO INPUT BIT 15 IN LSBIT OF OUTPUT
MOV E,A ;AND SAVE LEAVING BIT 7 IN CARRY
MOV A,D ;GET MIDDLE OUTPUT REGISTER
RAL ;SHIFT BIT 7 INTO BIT 8, BIT 15 INTO CARRY
MOV D,A ;SAVE MIDDLE BYTE
MOV A,C ;GET HIGHEST BYTE
RAL ;MOVE BIT 15 INTO BIT 16 POSITION
MOV C,A ;AND SAVE

DCR B ;ALL DONE WITH THIS BIT, DECREMENT BIT COUNTER
RZ ;IF ZERO, WE ARE COMPLETELY DONE SO RETURN
JMP B2BCD_LOOP ; OTHERWISE DO THE NEXT BIT

DABBLE: ;ADD THREE TO ANY NIBBLE THAT IS 5 OR MORE
PUSH B ;NEED ONE MORE REGISTER SO SAVE BC
MOV B,A ;SAVE AN COPY OF DABBLE BYTE
ANI 0FH ;CLEAR TOP NIBBLE
CPI 05H ;TEST IF WE NEED TO DABBLE THIS NIBBLE. 5 OR GREATER?
MOV A,B ;FLAG IS SET, SO OK TO GET BACK ORIGINAL BYTE BEFORE JUMP
JC DABBLE_HIGH ; NO, IT IS BELOW FIVE. CONTINUE WITH HIGH NIBBLE
ADI 03H ; ADD THREE
MOV B,A ;AND RESAVE
DABBLE_HIGH:
ANI 0F0H ;CLEAR LOW NIBBLE
CPI 50H ;TEST IF WE NEED TO DABBLE THIS NIBBLE. IS NIBBLE 5 OR MORE?
MOV A,B ;FLAG IS SET, GET ORIGINAL BYTE BACK
JC DABBLE_DONE ; NO, IT IS BELOW FIVE, CLEAN UP AND DONE
ADI 30H ; YES, ADD 3 TO HIGH NIBBLE
DABBLE_DONE:
POP B ;RESTORE THE BC
RET

Не удается загрузить Youtube-плеер. Проверьте блокировку Youtube в вашей сети.
Повторяем попытку...
{125} Binary to Decimal Conversion using the Double Dabble Method in 68 bytes of 8085 Assembly

Поделиться в:

Доступные форматы для скачивания:

Скачать видео

  • Информация по загрузке:

Скачать аудио

Похожие видео

© 2025 ycliper. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: [email protected]