题目要求

使用 Masm for Windows 软件编程,将一个十六进制数组转换成其ASCII码组并显示出来。

代码设计

采用查表法,实现一组十六进制数转换为ASCII码显示。先设置ASCII码表分别对应0-9以及A-F,以此来对应一位十六进制的数。为了使程序能够输出多个十六进制数的ASCII码,此时需要通过循环控制程序运行,而结束的标志是待查表hex的元素个数。

首先获取hex中的第一个元素,对其进行格式化设置,然后调用2号Dos功能进行输出操作。此时将循环标记si加1,再取出下一个元素,直到全部取出和转换。

代码

DATAS SEGMENT;此处输入数据段代码ASCII db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h;对应0 ~ 9的ASCII码db 41h,42h,43h,44h,45h,46h;对应A ~ F的ASCII码hex   db 04h,0bh,0fh,06h,0ah,0dH,00H,09H;待查的16进制数
DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码
STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS
START:MOV AX,DATASMOV DS,AX;此处输入代码段代码mov bx,offset ASCII;BX指向ASCII码表lea si,hexmov cx,LENGTHOF hex   ;取得元素个数
again:mov al, [si];AL取得一位16进制数;恰好就是ASCII码表中的位移and al, 0fh   ;只有低4位是有效的,高4位清0xlat     ;换码:AL←DS:[BX+AL]mov dl,al    ;欲显示的ASCII码送DLmov ah,2  ;2号DOS功能调用int 21h    ;显示一个ASCII码字符add si,1    ;指针指向下一个字符mov dl,20H  ;输出空格,间隔mov ah,2 int 21h    loop againMOV AH,4CHINT 21H
CODES ENDSEND START

汇编语言16进制数转换为ASCII码显示相关推荐

  1. python实现16进制数转ASCII码并写入文本

    python实现16进制数转ASCII码并写入文本 原理 代码 原理 目标:生成一段随机数据并分别转换成二进制数据和ASCII码写入文本. 关键:使用random.randint()方法生成一定范围的 ...

  2. c语言16进制转换为ascii码,C--16进制文本转换为ascii码

    我用的将16进制文本转换为ascii码的C语言代码.16进制文本复制到文件test.txt中,运行程序,将得到输入. 例: 运行:./CSTRING test.txt 其中,test.txt文件内容为 ...

  3. 10进制和16进制 数字和ASCII码互转

    10进制和16进制数转ASCII码 int hex2ascii(unsigned char *hex, int hex_len, char *text) {char buffer[20];int cn ...

  4. ASCII码转16进制 十六进制转ASCII码

    ASCII码转16进制 十六进制转ASCII码 //ASCII码转16进制 function strToHexCharCode(str) { if (str === "") { r ...

  5. 将16进制数转换为8进制数输出——算法

    16进制数转换为8进制数 题目描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由09.大写字母AF ...

  6. QT 16进制数转换成QString显示

    /*  * 16进制数转换成QString显示  */ QString hexToString(unsigned char *in, int len) { int i; unsigned char i ...

  7. 用JavaScript写代码将硬盘序列号从16进制字符串转换为ASCII字符串,兼谈EditPlus和Edge浏览器对JavaScript脚本支持的一点差别

    之前写的系统信息收集报告程序SysInfo的一个功能就是收集并报告系统中的硬盘序列号.在之前的测试中这项功能表现不错,但前两天用SysInfo收集一台电脑的信息时,显示的硬盘序列号与其它硬盘序列号读取 ...

  8. c语言 bcd码 16进制字符串 原理,ASCII码、HEX、字符、BCD 等等 基础知识思考

    每每遇到这些问题就要想个半天,想不明白还不舒服,今天特别把所想整理下避免以后再次进入思想漩涡!!! 计算机存储和传输都是以字节为单位 1 bit     = 1  二进制数据 1 byte  = 8  ...

  9. python3 16进制字符串转ASCii码值

    这是我自己写的源代码,应该不是最简单的方法,只是尝试一下,本人也是刚学python3. h = '54686520676f6e6520697320676f6e652e' t1 = [h[i:(i+2) ...

最新文章

  1. 第一个Sprint冲刺第十天
  2. php创建类用什么关键字,PHP面向对象开发之类的常用关键字
  3. 职业大揭秘,算法攻城狮在日常工作中都干了些啥?
  4. 零基础学Python-爬虫-5、下载网络视频
  5. image 闪烁 c# ajax updatepanel,Why doesn't asp:UpdatePanel refresh an Image?
  6. react ant design路由配置
  7. Lab1--关于安装JUnit的简要描述
  8. Flask-1-05-CookieSession
  9. 从零开始学习编程_如何开始学习编程
  10. PyTorch 1.0 中文文档:torch.distributed
  11. ArcGIS——图形转要素(标注转注记后发布服务问题)
  12. tomcat启动慢, Creation of SecureRandom instance for session ID generation using [SHA1PRNG]took [xx] mil
  13. 【译】BMP格式与JPG格式之间的区别
  14. 计算机板卡设计仿真,电子技能训练(1-1)201492.ppt
  15. 对象转换成Json字符串是时中文乱码
  16. 计算机应用基础精品课程申报表,“大学计算机基础”校级精品课程组积极申报2020年山西省精品共享课程...
  17. 什么是CPA、CPC、CPM、CVR、CTR、PV、UV、GMV定义以及相关计算公式
  18. 基于阿里云的API简介
  19. 北邮邮箱配置客户端教程(如Windows自带邮件)
  20. 5分钟实现微信小程序绘制二维码

热门文章

  1. Mule ESB介绍及使用
  2. PPT上如何自动生成对齐参考线?
  3. MySQL数据库入门练习100句
  4. 关闭prettier插件格式化 ‘>‘会单独成一行
  5. qml-关于Flow布局不能拖动(滚动)的解决办法
  6. JVM GC FINALIZE
  7. 随机数生成工具类(中文姓名,性别,Email,手机号,住址)
  8. java第一讲:java初识及变量
  9. FFN(mlpack)
  10. dataframe数据筛选后求和