Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
; load ES with your DS selector register:
mov bx, ds
mov es, bx
; load the offset of Data:
mov bx, Data
Given his own code, he is clearly doing this from system base, probably in a boot loader given the forum, and therefore the segments will be set to 0, XORing a register with itself is the fastest way todo this. If my assumptions are wrong he has a lot to learn about programming and assembly before he starts playing with bios interupts. Your comment was far from productive, next time you have a quarrel with my code, please attempt to articulate it.
In a bootloader or any simple kernel program that is in 16-bit real mode, it is better to have CS=DS=ES to prevent any problems with data. (IF the bootloader isn't .EXE, of course )