汇编学习笔记(3)

本文介绍了一个名为BINIHEX的子程序,该程序通过循环移位将AX寄存器中的二进制数转换为十六进制并输出。文章详细展示了如何利用ROL指令左移四位来提取高位十六进制值,并使用INT 21h进行字符输出。
摘要由CSDN通过智能技术生成

题目描述:编写一段子程序BINIHEX,完成十六进制的输出,需要输出的书在AX。

分析:数据在寄存器是二进制保存的,每四位对应一位十六进制,可以通过循环移位输出。

代码:

code segment
	start:
	assume cs:code
main proc  far

    mov ax,1256
    call BINIHEX
    
    
    mov ah,4CH
    int 21h
    ret
MAIN  ENDP


;=================================

BINIHEX  proc near

   mov bx,ax
   mov cH,4         ;循环次数
   
   L:
      MOV CL,4
      rol bx,CL
      mov dl,bl
      and  dl,0FH    ;保留最低四位
      cmp dl,10      ;判断是否小于10
      jb  next
      add dl,7H      ;大于10(A..F),多加7
    
  next:
       add dl,30H   ;输出
       mov ah,02h
       int 21h
       DEC CH
       JNZ L
       
     ret
 BINIHEX  ENDP
 		code ends
 end start


结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值