本文收集整理关于十六进制数转换成ascii码的相关议题,使用内容导航快速到达。

内容导航:

Q1:一个十六进制数转换成ASCII码的单片机程序

HASC:MOVA,R0;从R0中取一个16进制(二进制)数(0-F)

ANLA,#0FH;屏蔽掉高4位

PUSHACC;4位二进制数入栈

CLRC;清进(借)位位

SUBBA,#0AH

POPACC

JCLOOP

ADDA,#07H

LOOP:ADDA,#30H

MOVR2,A

RET

实验结果:R0中的十六进制数(比如A),转换为ASCII码(41H)送入R2中。刚才回答了,没有了吗?

Q2:如何用汇编语言把十六进制数1A5F转换成ascii码并显示在屏幕上

刚好我写了一个,调试都通过可以执行的,。

.386、.model flat,stdcall

option casemap:none

include windows.inc

include user32.inc

include kernel32.inc

includelib user32.lib

includelib kernel32.lib

.data

szCaption db convert num to srting,0

szResult db 6 dup(0)

.code

_Translate proc para1:DWORD,para2:DWORD;定义子函数,para1变量用来放传入的数组,para2用于放编程ASIC后的字符数组LOCAL _iNum;定义零时变量,用于放被除数

LOCAL _iTemp;定义零时变量,用于存放除数

LOCAL _szTemp[265]:BYTE

mov eax,para1;;获取参数para1的值eax寄存器

mov _iNum,eax;将eax中的值放入零时变量_iNum

mov _iTemp,10H

lea ebx,_szTemp

xor ecx,ecx

.while _iNum;当被除数不为0时,就一直循环

xor edx,edx

mov eax,_iNum;将被除数放入eax寄存器中

div _iTemp;寄存器eax中的值除以_iTemp,商放入eax中,余数放入dl中

mov _iNum,eax

.if dl>9H;当余数大于9时,就转化为相对应的英文字母的ASIC的值

add dl,37H

.else

add dl,30H

.endif

mov byte ptr [ebx],dl;把变化后的值放入ebx寄存器中

inc ebx

inc ecx

.endw

mov eax,para2;将参数para2的地址传给eax寄存器,再讲ecx中的值倒序存入eax寄存器中

mov byte ptr [eax+ecx],0

lea ebx,_szTemp

.repeat

mov dl,byte ptr [ebx]

mov byte ptr [eax+ecx-1],dl

inc ebx

.untilcxz ;一直循环,直到cx的值=0,每次循环后ecx的值-1、

ret

_Translate endp

start:

mov eax,1A5FH ;修改这里的数,就能把任意16进制的数转化为ASIC码了

invoke _Translate,eax,offset szResult

invoke MessageBox,NULL,offset szResult,offset szCaption,MB_OK

invoke ExitProcess,0

end start

Q3:51单片机 十六进制数与ASCII码间的转换求详解

这程序的功能就是把一字节十六进制数的低4位转换为一个ASCII码。例如0x0E转换为E、0x08转换为8。

我估计你就是对内码不太熟悉吧。

你翻一下ASCII码的内码表,再对照这程序看看,应该就能明白了。

很好懂的。

Q4:怎么用单片机编写一段程序将若干十六进制数转换为ASCII码?

不知你要的是C语言的还是汇编的,都给你吧

C语言的:

#include typedef unsigned char uchar;

#define NUMBER10、

ucharBufferIn[NUMBER]={0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef,0x1a,0x1b};//16进制数存放区

ucharBufferOut[2*NUMBER];//ASCII码存放区

//功能:将多字节16进制数转换为ASCII字符

//入口:x:待转换16进制数,x>=0且x<=F

//出口:返回转换完成后的ASCII码字符数据,返回0为失败

ucharGetASCII(uchar x)

{

if(x>0x0f)

{

return 0;

}if(x>9)

{

return (A+x-10);

}

return (0+x);

}

//主程序

voidmain()

{

uchar i;

for(i=0;i{

BufferOut[i*2] = GetASCII(BufferIn[i]/0x10);

BufferOut[i*2+1] = GetASCII(BufferIn[i]%0x10);

}

while(1);

}

汇编的:

;说明:LOOP1循环为预设10个16进制数内容的初始化程序,作为示例

ORG0000H

LJMPSTART

ORG0100H

START:MOVR2,#10;预置10个16进制数

MOVR0,#20H;16进制数存放起始地址

MOVA,#12H

LOOP1:MOV@R0,A

ADDA,#13H

INCR0

DJNZR2,LOOP1;循环10次送10个数

;以上至START为初始化内存,预送10个字节的数据

MOVR0,#20H;16进制数存放起始地址

MOVR1,#30H;ASCII数存放起始地址

MOVR2,#10;转换10个字节

LCALLHEXTOASC;调用转换子程序

JMP$

;=======================================================

;HEXTOASC:将多字节16进制数转换为ASCII字符子程序

;入口:(R0)=16进制数存放起始地址指针

;(R2)=字节数

;出口:(R1)=转换完成后的ASC字符存放起始地址指针

;算法说明:0~9:(ASCII码为30H~39H)+90H后调整后无变化,结果

;为9xH,再加40H为0DxH,调整操作+60H后正好为3xH;

;A~F:(ASCII为41H~46H),+90H后为9xH,调整操作+06H后

;为01H~06H,再加40H调整后不变,正好为41H~46H;

;=======================================================

HEXTOASC:

MOVA,@R0

SWAPA

ANLA,#0FH;处理高4位

ADDA,#90H

DAA

ADDCA,#40H

DAA

MOV@R1,A;保存高4位

INCR1、MOVA,@R0

ANLA,#0FH;处理低4位

ADDA,#90H

DAA

ADDCA,#40H

DAA

MOV@R1,A;保存低4位

INCR1;下一个16进制数

INCR0

DJNZR2,HEXTOASC

RET

END

asic码转16进制c语言,十六进制数转换成ascii码相关推荐

  1. python把浮点数转换成16进制_delphi 浮点数float转换成十六进制字符串的方法(FloatToHex)...

    重新书写了float型转为十六进制的delphi程序 Function FloatToHex(Value: single): string; var l, i: integer; HexText,te ...

  2. php 字符串转化为16进制,php将字符串转换成16进制的方法

    php将字符串转换成16进制的方法 本文实例讲述了php将字符串转换成16进制的方法.分享给大家供大家参考.具体分析如下: php中可以通过bin2hex函数将字符串转换成16进制的形式输出,bin2 ...

  3. MFC中将用户输入的表示16进制数的字符串转换成16进制数输出显示(包含1.wstring转成string的方法函数2.用boost库拆分字符串的函数3.字符转16进制数值的函数)

    前期准备: 1.电脑中安装好boost库,我的电脑中安装在C盘根目录下,如下图所示: 2.配置好boost环境变量,如下图所示: 3.开发环境VS2015,工程为MFC应用程序 需要的头文件如下: # ...

  4. 将16进制unsigned char数组转换成整数

    /** * 将unsigned char数组转换成long long数值* {0x00 0x00 0x20 0x00}转换之后得到8192* * @param str 数组 * @param len ...

  5. 记录遇到的问题之---把16进制的颜色rgb转换成‘#’形式

    方法一: ​ function setRgbTo16(str) {let reg = /^(rgb|RGB)/if (!reg.test(str)) {return}var arr = str.sli ...

  6. C语言输出字符,字符串的ASCII码的16进制数

    C语言输出字符,字符串的ASCII码的16进制数 /* file name : test.c cmd code : gcc -o test.exe test.c */ #include<stdi ...

  7. bcd码和16进制的区别

    http://bbs.gongkong.com/D/200707/173493_1.shtml 举个例子:比如对于一个数:0000 0010 0011 1111 其16进制就是:23F 如果转换为BC ...

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

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

  9. c语言 乱码转化为16进制_C语言版的16进制与字符串互转函数

    http://www.cnblogs.com/nio-nio/p/3309367.html /* // C prototype : void StrToHex(BYTE *pbDest, BYTE * ...

最新文章

  1. CloudHub概述
  2. 项目实战-linux下安装activeMQ
  3. pwn学习总结(五) —— ret2dl_runtime_resolve(待补充)
  4. android使用handler记录
  5. [LeetCode] 143. Reorder List_Middle tag: Linked List
  6. netbeans基于mysql学生信息_学生信息管理系统的设计与实现(NetBeans IDE,MySQL)
  7. 决策的五个要素 by 彼得。德鲁克
  8. 51NOD-1090-3个数和为0
  9. java 字符串连接_为什么 Java 要把字符串设计成不可变的
  10. 二分法01:查找一个数
  11. Android中生成库文件与移除以及导入jar包重复问题
  12. 基于JavaWeb的房屋出租管理系统设计与实现
  13. 国务院正式发布《新一代人工智能发展规划》
  14. 竞赛保研(自动化专业)
  15. Rayman的绝顶之路——Leetcode每日一题打卡18
  16. 自己装修总结/商转公
  17. 大数据专业毕业后职业前景如何?
  18. [附源码]Python计算机毕业设计高校教室管理系统
  19. 比字节还小的计算机单位,电脑里,字节是最小单位吗
  20. node.js+小程序基于微信小程序的校园失物招领系统毕业设计源码072343

热门文章

  1. 虚拟机安装配置Hadoop(图文教程)
  2. 2021SC@SDUSC-Zxing(十三):一维码解码分析
  3. java pos机到服务器之间的通信
  4. 《通关!游戏设计之道》书籍读后感
  5. 【鲁棒优化笔记】以Coding入门鲁棒优化:以一个例子引入(二)-错误版
  6. 计算机生物工程专业大学排名,2021年生物工程专业大学排名及分数线【统计表】...
  7. 可怜的中国程序员-我所知道的华为
  8. Qt Icon Resource 图标素材
  9. 35页智慧社区综合解决方案
  10. 一位交易巨匠的十年心得:如何使用MACD判断后期趋势,把握买卖点