用汇编实现二进制数向十六进制数的转换

一、实现功能

1)实现二进制数向十六进制数的转换
2)实现十六进制数向二进制数的转换‘

二、设计分析

汇编语言中,字符在机器中都是以ascii码的二进制格式存储,但是汇编语言写的时候常用十六进制,因此需要好好看看ascii码的十六进制表。

特别是进制转换一定要注意,机器中存储的是数的二进制数本身,而我们输入输出的是数的ascii码的值,因此注意对寄存器中数的加减操作。

四位二进制数对应一位十六进制数,这里写的也是四位二进制和一位十六进制之间的的转换

  • 实现四位二进制数向十六进制数的转换

  1. 先输入四位的二进制数,每输入一位二进制数就判断输入的时0还是1,即将该数和30H做比较。
  2. 将DL赋值为0。如果输入的数是0,则将DL和0进行或运算(也可以不进行逻辑运算直接移位),将DL的最后一位置为0;如果输入的数是1,则将DL和1进行或运算,将DL的最后一位置为1。然后将DL向左移一位。进行4次循环,级输入4为二进制数。四位输入完毕后,DL就得到输入数的二进制。
  3. 判断DL是否在0-9之间,如果在则ADD DL,30H;如果大于0-9,则ADD DL,37H。(注意输出的字符的值是不等于机器中存放的二进制的值,因此需要进行加法)最后输出对应的16进制的ascii码的值。如果小于0-9则JMP到程序开始重新输入功能序号。
  4. 二进制转十六进制的流程图:
  • 实现一个十六进制数向二进制数的转换

  1. 先输入一个16进制数,判断输入字符的ascii码在30H-39H(0-9)之间,还是在41H-46H(A-F)之间,或者是在61H-66H(a-f)之间。如果是第一种情况则SUB DL,30H,如果是第二种情况则SUB DL,37H,如果是第三种情况则SUB DL,57H。即可得到输入的十六进制数的值,而不是字符的ascii码的值。
  2. 最后需要将DL中的值以二进制输出,因为机器里存放的就是以二进制存放。这里我用循环左移的方式,从二进制的高位到低位一次循环打印。将循环左移一位后的数与1进行与运算,得到最低位的大小(也就是当前准备输出的位置的大小),然后加上30H,得到0/1的ascii码值,依次将DL的值进行输出。
  3. 需要注意,第2步进行与运算的时候不能再原来的寄存器上进行,否则只能得到一位二进制数,后面几位都没法求了。
  4. 一个十六进制数向二进制数的转换流程图:

三、设计分析

四位二进制数向十六进制数的转换

DATA SEGMENTTIP DB 'INPUT THE NUMBER: ','$'TIP1 DB '  <=>  ','$'
DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA
START:MOV AX,DATAMOV DS,AXLEA DX,TIPMOV AH,09HINT 21HMOV CH,4MOV DL,0
INPUT:MOV AH,1INT 21HCMP AL,30HJA L1              ;输入的是1ROL DL,1OR DL,0JMP AGAIN
L1: ROL DL,1OR DL,1
AGAIN:DEC CHJZ PRINTJMP INPUT
PRINT:CMP DL,0JB EXITCMP DL,9JA COMPER1ADD DL,30HJMP HEN
COMPER1:ADD DL,37H
HEN:MOV AL,DLLEA DX,TIP1MOV AH,09HINT 21HMOV DL,AL MOV AH,02HINT 21H
EXIT:MOV AH,4CHINT 21H
CODE ENDS
END START

实现一个十六进制数向二进制数的转换

DATA SEGMENTTIP DB 'INPUT THE NUMBER: ','$'TIP1 DB '  <=>  ','$'
DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK
START:MOV AX,DATAMOV DS,AXLEA DX,TIPMOV AH,09HINT 21H
INPUT:MOV AH,1INT 21HCMP AL,30HJB EXITCMP AL,39HJA COMPER1JMP CHANGE1    ;在0~9之间
COMPER1:CMP AL,41HJB EXITCMP AL,46HJA COMPER2JMP CHANGE2    ;在A-F之间
COMPER2:CMP AL,61HJB EXITCMP AL,66HJA EXITJMP CHANGE3    ;在a~f之间CHANGE1:SUB AL,30HJMP ENT
CHANGE2:SUB AL,37HJMP ENT
CHANGE3: SUB AL,57HJMP ENT
ENT:LEA DX,TIP1MOV AH,09HINT 21HMOV CH,8MOV BL,AL
PRINT:  ROL BL,1MOV DL,BLAND DL,1ADD DL,30HMOV AH,02HINT 21HDEC CHJZ EXITJMP PRINT
EXIT:MOV AH,4CHINT 21H
CODE ENDS
END START

用汇编实现二进制数和十六进制数的相互转换相关推荐

  1. Java 实验5 T2 二进制数转换为十六进制数

    题目 二进制数转换为十六进制数 代码 import java.util.Scanner;public class chapter5_2 {public static void main(String[ ...

  2. 二进制数与十六进制数之间如何互相转换

    首先我们来看看16进制与10进制的的对比: 十进制数 :0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 十六进制数 :0 1 2 3 4 5 6 7 8 9 A B C D ...

  3. 编写计算机取余程序_必须收藏,2020年专升本计算机常考知识点总结,抓分的关键点...

    为帮助大三考生复习备考,奔奔对专升本计算机科目常考的知识点进行了总结,供2020届考生学习参考! 01信息技术与计算机文化 考点1:信息与数据 信息是在自然界.人类社会和人类思维活动中普遍存在的一切物 ...

  4. 【C语言】变量和常量、数据类型、进制转换、数据存储

    目录 1. 变量 1.1 变量的分类 1.1.1 局部变量 1.1.2 全局变量 1.2 变量的使用 1.3 变量的作用域和生命周期 1.3.1 作用域 1.3.2 生命周期 2. 常量 2.1 字面 ...

  5. 计算机一级ms必考知识点,计算机一级MsOffice考试知识点整理重点.docx

    第一部分:计算机的发展? 一.计算机发展? 1.计算机的概念 2.第一台计算机?ENIAC(电子数字积分计算机) 1946年2月诞生于美国宾夕法尼亚大学? 主设计师-美籍匈牙利数学家冯·诺依曼? 莫克 ...

  6. 计算机基础知识 基本概念,计算机基本概念与基础知识.ppt

    计算机基本概念与基础知识 学什么? 上网.打字.聊天? 第1章 计算机基本概念与基础知识 1.1 概述 1.2 计算机数据表示 1.3 计算机系统 第一台电子计算机(ENIAC) 1.1.1 计算机的 ...

  7. 一级MS Office 复习资料

    一级MS Office 复习资料 第一章 计算机基础知识 [知识点1] 冯·诺依曼归纳了EDVAC(电子离散变量自动计算机)的主要特点如下: (1)计算机的程序和程序运行所需要的数据以二进制形式存放在 ...

  8. 计算机应用基础教案本中职,[定稿]中职计算机应用基础教案_1-5章4喜欢就下吧(全文完整版)...

    <[定稿]中职计算机应用基础教案_1-5章.doc>由会员分享,可免费在线阅读全文,更多与<[定稿]中职计算机应用基础教案_1-5章(4)(喜欢就下吧)>相关文档资源请在帮帮文 ...

  9. 计算机中的表示方法,计算机应用基础第三章计算机中信息的表示方法

    <计算机应用基础第三章计算机中信息的表示方法>由会员分享,可在线阅读,更多相关<计算机应用基础第三章计算机中信息的表示方法(17页珍藏版)>请在人人文库网上搜索. 1.第第三三 ...

最新文章

  1. Linux内核分析--理解进程调度时机、跟踪分析进程调度和进程切换的过程
  2. 统计学习方法第九章作业:三硬币EM算法、GMM高维高斯混合模型 代码实现
  3. Java多线程(1)
  4. linux通过I2C地址查看设备名称
  5. 冷藏温度范围_食品冷藏冷冻温度要求与管理规范
  6. docker重启后容器消失_docker设置固定ip地址
  7. 操作系统(王道笔记第二章)
  8. 关于“想哭”病毒,我也来两句。--转载
  9. SQLite学习总结(3)——SQLite命令及语法
  10. python 全栈开发,Day54(关于DOM操作的相关案例,JS中的面向对象,定时器,BOM,client、offset、scroll系列)...
  11. Android -- tools
  12. vb中换行的几种方法
  13. Ubuntu 16.04 RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller” 不能上网
  14. 删除windows桌面右键出现的无用的菜单项(RegClean工具下载使用自动清理)
  15. erb自动生成html页面一例
  16. win10怎么快捷锁定计算机,win10锁屏快捷键如何设置_让你win10电脑一键秒锁屏的方法...
  17. c语言第五次上机作业,大连理工c语言第五次上机作业参考答案(5页)-原创力文档...
  18. 嵌入式知识-ARM裸机-学习笔记(2):利用GPIO来控制LED(附mkv210_image.c文件解析)
  19. 再见,2020。您好,2021!
  20. Excel使用技巧——提取混合单元格中的数字

热门文章

  1. 利用java的Graphics2D在图片上写字
  2. 英特尔Ax210 有无线没有蓝牙功能
  3. Jarvis OJ pwn guestbook2
  4. 基于FPGA的语音合成技术
  5. Unity3D 编译发布(Publishing Builds)
  6. toString()方法
  7. 网站盈利模式分析总结十条
  8. 证监会计算机职位难考吗,2021年国家公务员考试笔试证监会计算机岗命题趋势分析...
  9. Python中复制文件的两种简单方式
  10. c语言 倒计时不清屏_关于清屏的C语言问题。