十六进制的形式在屏幕中间显示二进制byte类型数据

  • 思想
    在这里插入图片描述
  • 0 ~ 9和’0' ~ '9'之间的映射关系
1 + 30H = 31H = '1'
  • 10 ~ 15和'A' ~ 'F'之间的映射关系
0BH + 37H = 42H = 'B'

标准处理手法:先加上30H,与'9' = 39H比较,大于就加7H

assume cs:code,ds:data

data segment
 show db 2 dup(0),0AH,0DH,'$'
data ends

code segment
start:
      mov ax,data
      mov ds,ax
      xor ax,ax
      mov si,0
      mov al,2Bh;AL传递参数用
      call showbyte
      lea dx,show
      mov ah,09h
      int 21h
      mov ax,4ch
      int 21h
showbyte:
      mov ah,al
      mov cl,4
      shr ah,cl;右移4位得到高四位的值
      add ah,30h
      cmp ah,'9'
      jl next0
      add ah,7h
next0:
      mov show[si],ah
      ;处理AL
      inc si
      and al,00001111b;al中为低4位的值
      add aL,30h
      cmp al,'9'
      jl next1
      add al,7h
next1:
      mov show[si],al  
      ret
code ends
end start
  • 王爽老师用得制表法但是太麻烦了,得输入一串数
发布了251 篇原创文章 · 获赞 28 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/xiong_xin/article/details/103520321