汇编语言中如何将寄存器中的数据输出打印到屏幕上

我编写了一个汇编程序,最后将算出的结果存放到dx寄存器中了(dx=0099),我想利用DOS调用将dx中的数值打印到屏幕上作为输出,请问我该怎么做

把数据放入寄存器,调用系统中断80H

/*

  • print_hex is for debugging purposes, and prints the word
  • pointed to by ss:bp in hexadecmial.
  • 子程序print_hex用于调试目的。它使用十六进制在屏幕上显示出ss:bp指向的字。 * */

! me bad=> 子程序调用会修改寄存器,但却并没有保存修改的寄存器,如果要调用还需要思考调用是否会出错,这是不
! me bad=> 模块化的方式。而这里这样写可能是为减少指令。
print_hex:
mov cx, #4 ! 4 hex digits 要显示4个十六进制数字
mov dx, (bp) ! load word into dx 显示值放入dx中
print_digit:
!先显示高字节,因此需要把dx中值左旋4位,此时高4位在dx低4位中。
rol dx, #4 ! rotate so that lowest 4 bits are used
mov ah, #0xe !中断号

mov al, dl ! mask off so we have only next nibble
and al, #0xf
add al, #'0 ! convert to 0-based digit
cmp al, #'9 ! check for overflow
jbe good_digit
add al, #'A - '0 - 10

good_digit:
int 0x10
loop print_digit
ret

这里是as86的汇编,与nasm等汇编有一些不同,稍微改下就行了