can i write command : mov bx,al
No, but you can do
movsx bx,al ; sign-extend al into bx
; the upper half of bx will be filled with the most significant
; bit of al. For example 0x40 becomes 0x0040, while 0xC0
; becomes 0xFFC0.
or
movzx bx,al ; zero-extend al into bx
; the upper half of bx will be filled with zeroes
and similarly from 16-bit general purpose registers to 32-bit general purpose registers.