Binary to Gray conversion
Write a Program for Binary to Gray conversion in Assembly language . Algorithm for Binary-Gray conversion is given below and it can be easily implemented by this algorithm .
Algorithm for Binary to Gray conversion
Step I : Get the number whose gray code equivalent is to be found.
Step II : Add number with itself.
Step III : XOR this added result with the original number.
Step IV : Shift the XOR ed number by 1 bit position to the right to get the Gray equivalent.
Step V : Display the result.
Step VI : Stop.
Program for Binary to Gray conversion
.model small
.data
a db 0AH
.code
mov ax, @data ; Initialize data section
mov ds, ax
mov al, a ; Load number1 in al
mov bl, al ; get the number in bl also
mov ah, 00h ; ah=00
add ax, ax ; add contents of ax with itself
xor bx, ax ; xor the added contents with number itself
ror bx, 01h ; roll by 1 bit to right to get gray equivalent
mov ax, bx ; copy result to ax also
mov ch, 02h ; Count of digits to be displayed
mov cl, 04h ; Count to roll by 4 bits
mov bh, al ; Result in reg bh
l2: rol bh, cl ; roll bl so that msb comes to lsb
mov dl, bh ; load dl with data to be displayed
and dl, 0fH ; get only lsb
cmp dl, 09 ; check if digit is 0-9 or letter A-F
jbe l4
add dl, 07 ; if letter add 37H else only add 30H
l4: add dl, 30H
mov ah, 02 ; Function 2 under INT 21H (Display character)
int 21H
dec ch ; Decrement Count
jnz l2
mov ah, 4cH ; Terminate Program
int 21H
end
How to Run this Program
For Running this program you should have installed Tasm on you computer .
C:\programs>tasm bin-gray.asm
Turbo Assembler Version 3.0 Copyright (c) 1988, 1991 Borland International
Assembling file: bin-gray.asm
Error messages: None
Warning messages: None
Passes: 1
Remaining memory: 438k
C:\programs>tlink bin-gray.obj
Turbo Link Version 3.0 Copyright (c) 1987, 1990 Borland International
Warning: No stack
C:\programs>bin-gray
0F



