汇编语言16进制数转换为ASCII码显示
题目要求
使用 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码显示相关推荐
- python实现16进制数转ASCII码并写入文本
python实现16进制数转ASCII码并写入文本 原理 代码 原理 目标:生成一段随机数据并分别转换成二进制数据和ASCII码写入文本. 关键:使用random.randint()方法生成一定范围的 ...
- c语言16进制转换为ascii码,C--16进制文本转换为ascii码
我用的将16进制文本转换为ascii码的C语言代码.16进制文本复制到文件test.txt中,运行程序,将得到输入. 例: 运行:./CSTRING test.txt 其中,test.txt文件内容为 ...
- 10进制和16进制 数字和ASCII码互转
10进制和16进制数转ASCII码 int hex2ascii(unsigned char *hex, int hex_len, char *text) {char buffer[20];int cn ...
- ASCII码转16进制 十六进制转ASCII码
ASCII码转16进制 十六进制转ASCII码 //ASCII码转16进制 function strToHexCharCode(str) { if (str === "") { r ...
- 将16进制数转换为8进制数输出——算法
16进制数转换为8进制数 题目描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由09.大写字母AF ...
- QT 16进制数转换成QString显示
/* * 16进制数转换成QString显示 */ QString hexToString(unsigned char *in, int len) { int i; unsigned char i ...
- 用JavaScript写代码将硬盘序列号从16进制字符串转换为ASCII字符串,兼谈EditPlus和Edge浏览器对JavaScript脚本支持的一点差别
之前写的系统信息收集报告程序SysInfo的一个功能就是收集并报告系统中的硬盘序列号.在之前的测试中这项功能表现不错,但前两天用SysInfo收集一台电脑的信息时,显示的硬盘序列号与其它硬盘序列号读取 ...
- c语言 bcd码 16进制字符串 原理,ASCII码、HEX、字符、BCD 等等 基础知识思考
每每遇到这些问题就要想个半天,想不明白还不舒服,今天特别把所想整理下避免以后再次进入思想漩涡!!! 计算机存储和传输都是以字节为单位 1 bit = 1 二进制数据 1 byte = 8 ...
- python3 16进制字符串转ASCii码值
这是我自己写的源代码,应该不是最简单的方法,只是尝试一下,本人也是刚学python3. h = '54686520676f6e6520697320676f6e652e' t1 = [h[i:(i+2) ...
最新文章
- 第一个Sprint冲刺第十天
- php创建类用什么关键字,PHP面向对象开发之类的常用关键字
- 职业大揭秘,算法攻城狮在日常工作中都干了些啥?
- 零基础学Python-爬虫-5、下载网络视频
- image 闪烁 c# ajax updatepanel,Why doesn't asp:UpdatePanel refresh an Image?
- react ant design路由配置
- Lab1--关于安装JUnit的简要描述
- Flask-1-05-CookieSession
- 从零开始学习编程_如何开始学习编程
- PyTorch 1.0 中文文档:torch.distributed
- ArcGIS——图形转要素(标注转注记后发布服务问题)
- tomcat启动慢, Creation of SecureRandom instance for session ID generation using [SHA1PRNG]took [xx] mil
- 【译】BMP格式与JPG格式之间的区别
- 计算机板卡设计仿真,电子技能训练(1-1)201492.ppt
- 对象转换成Json字符串是时中文乱码
- 计算机应用基础精品课程申报表,“大学计算机基础”校级精品课程组积极申报2020年山西省精品共享课程...
- 什么是CPA、CPC、CPM、CVR、CTR、PV、UV、GMV定义以及相关计算公式
- 基于阿里云的API简介
- 北邮邮箱配置客户端教程(如Windows自带邮件)
- 5分钟实现微信小程序绘制二维码