Conversion of bcd number to binary using a procedure, Computer Engineering

Assignment Help:

Q. Conversion of BCD number to binary using a procedure?

Conversion of BCD number to binary using a procedure.

Algorithm for conversion procedure:

Take a packed BCD digit and separate the two digits of BCD.

Multiply the upper digit by 10 (0Ah)

Add the lower digit to the result of multiplication

The implementation of procedure would be dependent on parameter-passing scheme. Let's exhibit this with the help of three programs.

Program: Use of registers for parameter passing: This program uses AH register for passing the parameter.

We are presuming that data is available in memory location. BCD and result is stored in BIN

; REGISTERS: Uses CS, DS, SS, SP, AX

; PROCEDURES: BCD-BINARY

 

DATA_SEG               SEGMENT

            BCD                DB 25h    ; storage for BCD value

            BIN                 DB?    ; Storage for binary value

DATA_SEG               ENDS  

STACK_SEG                         SEGMENT STACK    

                                    DW 200 DUP (0); stack of 200 words

            TOP_STACK LABEL WORD   

STACK_SEG                         ENDS

 

CODE_SEG                           SEGMENT  

            ASSUME CS: CODE_SEG, DS: DATA_SEG, SS: STACK_SEG  

START:  MOV AX, DATA_SEG     ; Initialise data segment

MOV DS, AX      ; Using AX register

                        MOV AX, STACK_SEG      ; Initialise stack

                        MOV SS, AX     ; Segment register. Why 

                                                ; stack?

                        MOV SP, OFFSET TOP_STACK     ; Initialise stack pointer

                        MOV AH, BCD  

                        CALL BCD_BINARY   ; Do the conversion

                        MOV BIN, AH   ; Store the result in the 

                                                ; Memory

; Remaining program can be put here 

; PROCEDURE: BCD_BINARY - Converts BCD numbers to binary.

; INPUT     : AH with BCD value

; OUTPUT     : AH with binary value

; DESTROYS   : AX

BCD_BINARY    PROC NEAR

PUSHF                                   ; Save flags

PUSH              BX                  ; and registers used in procedure

PUSH              CX                  ; before starting the conversion

                                                            ; Do the conversion

MOV               BH, AH          ; Save copy of BCD in BH

AND                           BH, 0Fh          ; and mask the higher bits. The lower digit

                                                            ; is in BH

AND               AH, 0F0h        ; mask the lower bits. The higher digit is in AH 

                                                            ; But in upper 4 bits.

MOV               CH, 04            ; so move upper BCD digit to lower

ROR                AH, CH          ; four bits in AH

MOV               AL, AH           ; move the digit in AL for multiplication

MOV               BH, 0Ah         ; put 10 in BH

MUL               BH                  ; Multiply upper BCD digit in AL

                                                            ; By 0Ah in BH, the result is in AL

MOV               AH, AL           ; the maximum/ minimum number would not 

                                                            ; exceed 8 bits so move AL to AH

ADD               AH, BH          ; Add lower BCD digit to MUL result

; End of conversion, binary result in AH

   POP              CX   ; Restore registers

   POP              BX  

   POPF           RET     ; and return to calling program

BCD_BINARY ENDP    

CODE_SEG ENDS    

             END START

Discussion:

The program written above isn't an optimum program since it doesn't use registers minimally. By now you ought to be able to understand this module. The program copies the BCD number from memory to AH register. AH register is used as it is in the procedure. So the contents of AH register are used in calling program in addition to procedure; or in other words have been passed from main to procedure. Result of the subroutine too is passed back to AH register as returned value. So calling program can find the result in AH register. 

The benefit of using the registers for passing the parameters is the ease with that they can be handled. The drawback, though, is the limit of parameters which can be passed. For instance one cannot pass an array of 100 elements to a procedure by using registers.


Related Discussions:- Conversion of bcd number to binary using a procedure

Fundamental issues of concerns for instruction set design, Q. Fundamental i...

Q. Fundamental issues of concerns for instruction set design? A number of fundamental issues of concerns for instruction set design are: Completeness: For an early design

System software, System Software System software is a group of progr...

System Software System software is a group of programs written to service another programs. Some system software (e.g., compilers editors and file management utilities) proc

Determine the begin - end keywords, Determine the begin - end keywords ...

Determine the begin - end keywords Group several statements together. Cause the statements to be evaluated sequentially (one at a time) -> Any timing within sequential group

First order logic, "George has a dog called Ernie, which is a trained Labra...

"George has a dog called Ernie, which is a trained Labrador. Trained Labradors and poodles are obedient, and all obedient dogs are good dogs. All good dogs that have a master will

Software characteristics, Software Characteristics: Software is en...

Software Characteristics: Software is engineered and developed. Software can't "wear-out". Most of the software continues to be routine built. The term in

Convert a JK flipflop to T type flipflop, With the help of a suitable diagr...

With the help of a suitable diagram, explain how do you convert a JK flipflop to T type flipflop. Ans. As here flip flop is JK flip flop and it is required to convert JK in T.

Application layer in tcp/ip model corresponds to for what, Application laye...

Application layer (layer 4) in TCP/IP model corresponds to? In OSI model, application layer (layer 4) in TCP/IP model corresponds to layer 6 and layer 7.

How transmission bridges help in satisfying the connectivity, How do tra...

How do transmission bridges help in satisfying the connectivity? A usual transmission bridge is demonstrated in figure. The series capacitance and the shunt inductances of

Determine the 2's complement subtraction, Perform 2's complement subtractio...

Perform 2's complement subtraction of (7) 10 - (11) 10 . Ans. 2's Complements Subtraction of (7) 10 - (11) 10 Firstly convert the decimal numbers 7 and 11 to there binary e

What is minimum spanning tree, Minimum Spanning Tree: Given a weighted gra...

Minimum Spanning Tree: Given a weighted graph G, it is often desired to make a spanning tree T for G, like the sum of weights of the edges in T is the least. Like tree is known as

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd