程序运行效果如下:

如题,程序可以实现四位十六进制数转换为十进制数
思路是,循环输入字符并将其转换为真实的数值(0-9的ASCII码减去30H,a-f的ASCII码减去57H)分别存入内存,再循环将这些数组合成想要的十进制数(用移位的方式实现,例:0001左移四位变为10000,变为原来的16倍),以循环除以10取余的方式得到各位上的结果,逐位输出。
具体代码如下:

DATAS SEGMENTTWO DW 10 DUP(?)         ;存放二进制数TEN DB 5 DUP(?)      ;存放十进制数MSG1 DB 'Please input a hex number',13,10,'$'MSG2 DB 'The dec number:',13,10,'$'CRLF DB 13,10,'$'
DATAS ENDS
CODES SEGMENTASSUME CS:CODES,DS:DATAS
START:MOV AX,DATASMOV DS,AXMOV BX,0LEA DX,MSG1MOV AH,9INT 21H
INPUT:MOV AH,1INT 21HSUB AL,30HCMP AL,0JL INITCMP AL,10JL TOBINSUB AL,27HCMP AL,0AHJL INITCMP AL,10HJGE  INIT
TOBIN:MOV CL,4SHL BX,CLMOV AH,0ADD BX,AXJMP INPUT
INIT:MOV AX,BXMOV BX,10MOV SI,4
TODEC:MOV DX,0DIV BXMOV [TEN+SI],DL DEC SICMP AX,0JNBE TODECLEA DX,CRLFMOV AH,9INT 21HLEA DX,MSG2MOV AH,9INT 21H
OUTPUT:INC SIMOV DL,[TEN+SI]ADD DL,30HMOV AH,2INT 21HCMP SI,4JNE OUTPUTMOV AH,4CHINT 21H
CODES ENDSEND START

思路参考文章:https://www.cnblogs.com/Zhang-Shangyu/p/5152393.html

汇编学习-程序改进:四位十六进制数转化为十进制数相关推荐

  1. C语言实现将十六进制数转化为十进制数

    输入一个以回车结束的字符串,滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),输出该字符串并将其转换为十进制数后输出. [输出形式]输出为两行 第一行为整理后的新串 第二行为一个十进制数字 ...

  2. 八、十六进制数转换到十进制数

    二.八.十六进制数转换到十进制数 关键词: 二.八.十六进制数转换到十进制 6.2.1 二进制数转换为十进制数 二进制数第0位的权值是2的0次方,第1位的权值是2的1次方-- 所以,设有一个二进制数: ...

  3. 二进制数转化为十进制数(栈的学习练习)

    对与栈的联系(二进制数字转化为十进制数字) 主要是利用栈"后入先出"的特性,逐个存放二进制数字的个个位数,然后逐一取出,挨个乘以2的次方,然后相加起来,代码由c语言实现, 话不多说 ...

  4. 任意十六进制数转换成十进制数----不管你输入多长都能转换

    原来它妹这种方法叫大数运算,现在才知道,害我花上好几个小时自己去想--操呀-- 算法由我博客中求阶乘算法变形而得-- 下面是改过后的算法--原算法在后面-- 运行结果: #include<std ...

  5. 十进制转二进制转换c语言程序,c语言编程如何实现-十进制数转换成二进制和 – 手机爱问...

    2006-10-10 (1).将十进制正整数转换成k进制(2<=k<=9)的数字输出.例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示1000). (2).请编写函数vo ...

  6. 在Java中将二进制数转化成十进制数

    这里二进制数有两种表示方式,不同方式的代码略有不同: 1.将二进制数用boolean数组表示 假设要求解的二进制数为:1101(也就是十进制数13) public class TransformTse ...

  7. 单精度浮点数转化为十进制数的原理

    在做MODBUS通讯时经常会用到单精度浮点数来表示测量值,比如41 20 00 00代表十进制的10,用代码可以轻松实现转换,但是他是怎么计算出来的呢?查了一些资料后我知道了计算的方法,在此记录一下. ...

  8. 汇编语言实现十六进制数转换成十进制数

    一 代码实现 DATAS SEGMENT org 2000hnum dw 65535org 2010hres db 5 dup(?)db '$' DATAS ENDSSTACKS SEGMENT ST ...

  9. 如何把二进制数化成十进制数_如何将二进制数1101.1转化成十进制数?计算步骤是怎样的?...

    展开全部 1101.1转换32313133353236313431303231363533e78988e69d8331333365633938为10进制为13.5 进制转换是人们利用符号来计数的方法. ...

最新文章

  1. AI 利用BP算法及Sigmoid函数,研究函数f(x)=2sinx-0.7的逼近问题-实验报告
  2. java实现俄罗斯方块游戏
  3. 【二维树状数组】See you~
  4. FPGA实现数字信号处理的定点运算
  5. html暗边框属性,HTML表格标记教程(30):单元格的暗边框色属性BORDERCOLORDARK
  6. Loj#6247-九个太阳【单位根反演】
  7. 视达配色教程17 灰色的色彩意象是什么
  8. apiCloud中Frame框的操作,显示与隐藏Frame
  9. Apache httpd 配置HTTPS SSL访问 443
  10. CSS3 矢量图标及背景精灵
  11. 计算机用户界面英文,计算机主板CMOS界面英文翻译(2)
  12. java如何把汉字转换成机内码_如何用java随机生成一个汉字?
  13. Java高并发编程详解系列-Volatile关键字
  14. java怎么同时实现鼠标监听和键盘监听_JavaScript如何实现监听键盘输入和鼠标监点击...
  15. 做一个文字跟随鼠标java_JavaScript实现文字跟随鼠标特效
  16. Rust权威指南 全书笔记
  17. Windows批处理 - 小程序大作用
  18. 2020国开c语言程序设计1075,中央电大秋季C语言程序设计期末试卷及答案代码1075,01(7页)-原创力文档...
  19. 如何删除本地/远程Git分支
  20. Comet OJ - 2019国庆欢乐赛 D1 入学考试 (简单版)

热门文章

  1. axios请求拦截器的配置
  2. [BUUCTF]达芬奇密码
  3. mysqldump: Couldn‘t execute ‘SHOW VARIABLES LIKE ‘ndbinfo\_version‘‘: Native table ‘performance_sche
  4. Starforce(几家欢喜几家愁)
  5. 解读云原生的2021:抢占技术C位,迎来落地大爆发
  6. 阿里巴巴系统架构首次曝光
  7. 电磁辐射是造成计算机网络安全隐患的什么,计算机网络安全的主要隐患及加强措施...
  8. python 分隔符截取字符串_python针对不定分隔符切割提取字符串的方法
  9. 每天一个linux命令(34):du 命令
  10. SpringBoot 获取客户端 ip