汇编程序:查表法将十六进制数转换为对应的ASCII码

使用查表法将十六进制数转换为对应的ASCII码

一、实验内容:

本实验的核心任务是利用查表法将单个十六进制数转换为其对应的ASCII码,并将转换结果存储在ASCI单元中。

三、编程指南:

由于本实验指定使用查表法,首先需要建立一个名为TABLE的表格。在此表格中,按照十六进制数由小到大的顺序排列它们各自对应的ASCII码值。

DATA        SEGMENT
TABLE       DB  30H,31H,32H,33H,34H,35H,36H,37H
            DB  38H,39H,41H,42H,43H,44H,45H,46H
HEX         DB  X  ; X为待转换的十六进制数
ASCI        DB  ?  ; 存放转换后的ASCII码
DATA        ENDS

三、实验报告:

1. 程序说明。说明程序的功能、结构。

功能:用查表的方法将一位十六进制数转换成与它相应的ASCII码
结构:
在这里插入图片描述
(1) 编译
在这里插入图片描述

(2) 连接
在这里插入图片描述

(3) 运行
在这里插入图片描述

单步执行
在这里插入图片描述在这里插入图片描述

2. 写出源程序清单和执行结果。

源程序清单

DATA SEGMENT                  ; 定义数据段
    TABLE DB 30H,31H,32H,33H,34H,35H,36H,37H  ; 查找表,存储十六进制数对应的ASCII码(0-7)
          DB 38H,39H,41H,42H,43H,44H,45H,46H  ; 查找表的续表,存储十六进制数对应的ASCII码(8-15)
    HEX DB 0BH                                ; 待转换的十六进制数,这里示例为0B
    ASCI DB ?                                 ; 存放转换后的ASCII码的空间
DATA ENDS

CODE SEGMENT                   ; 定义代码段
    ASSUME CS:CODE,DS:DATA     ; 假设代码段寄存器CS指向当前代码段,数据段寄存器DS指向数据段
START:                         ; 程序开始标记
    MOV AX,DATA                ; 将数据段地址加载到AX寄存器
    MOV DS,AX                  ; 将AX寄存器的值(数据段地址)移至DS寄存器
    MOV BX,OFFSET TABLE        ; 将TABLE的偏移地址加载到BX寄存器
    MOV AL,HEX                 ; 将待转换的十六进制数加载到AL寄存器
    AND AL,0FH                 ; 与操作,仅保留AL的低四位(十六进制数的一位)
    XLAT                       ; 使用查表指令,基于AL的值和BX的地址计算出对应的ASCII码,存入AL
    MOV DL,AL                  ; 将得到的ASCII码存入DL寄存器
    MOV AH,2                   ; 设置AH寄存器的值为2,用于调用中断服务
    INT 21H                    ; 调用中断服务,功能是显示DL寄存器中的字符
    MOV ASCI,DL                ; 将转换得到的ASCII码存储到ASCI单元
    MOV AX,4C00H               ; 设置退出程序的中断号和返回码
    INT 21H                    ; 调用中断服务,退出程序
CODE ENDS
    END START                  ; 程序结束标记

执行结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值