以binihex.asm为文件名,建立源程序如下:

  ; binihex.asm
  prognam segment            ; 定义代码段
  main proc far
     assume cs:prognam
  start:               ; 程序从此处开始执行
                   ; 为正常返回DOS而设置堆栈
     push    ds
     sub     ax,ax
     push    ax

  ; 下面是程序的主要部分
      mov    ch,4       ; 4组二进制数
  rotate: mov    cl,4      ; 每组4个二进制位
      rol    bx,cl      ; 把bx循环左移4位
      mov    al,bl      ; 暂存bl到al中
      and    al,0fh      ; 仅保留al的低4位
      add    al,30h     ; 转换成ASCII码
      cmp    al,3ah     ; 要显示的数大于9 ?
      jl     printit     ; 如果数在0~9之间则显示
      add    al,7h      ; 数在A~F之间则调整
  printit:
      mov    dl,al      ; 把要显示字符的ASCII码送dl
      mov    ah,2       ; 功能号2送ah
      int    21h       ; DOS功能调用
      dec    ch        ; (ch)-1
      jnz    rotate      ; 4组都处理完?否,循环处理下一组
      ret            ; 返回DOS
  main   endp            ; 主程序main结束

  prognam  ends            ; 代码段结束

      end    start      ; 结束汇编