直接定址表 输入0-FF之间的数据,并输出到屏幕上

本文介绍了一个简单的汇编程序,该程序能够将一个16进制数值转换成对应的字符并显示在屏幕上。通过定义一个16进制字符映射表,并使用位操作和查表方式实现数值到字符的转换。
assume cs:code,ds:data

data segment
    table db '0123456789ABCDEF' ;16进制的直接定址表
data ends

code segment
    
    start:
         mov ax,data ;将data段与ds关联
         mov ds,ax
         mov si,0
         
         mov ax,2Bh ;输入要输出到屏幕的数值,类似数值转字符n2c
         
         call showword

         mov ax,4c00h
         int 21h
         
  showword:
         push bx
         push es
         
         mov ah,al
         mov cl,4
         shr ah,cl ;右移四次
         and al,00001111b;保护al数据
         
         mov bl,ah
         mov bh,0
         mov ah,table[bx]
         mov bl,al
         mov al,table[bx]
         
         push ax ;为保护ax中的数据,将其压栈
         
         mov ax,0b800h
         mov es,ax
         
         pop ax ;出栈ax数据,使其正常传送到显存区
         
         mov es:[160*12+40*2],ah
         mov es:[160*12+40*2+2],al   
          
         pop es
         pop bx     
         
         ret     
         
code ends
end start

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值