我的编程空间,编程开发者的网络收藏夹
学习永远不晚

汇编语言怎么实现各种码制的转换

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

汇编语言怎么实现各种码制的转换

本篇内容主要讲解“汇编语言怎么实现各种码制的转换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“汇编语言怎么实现各种码制的转换”吧!

1.十六进制转换为二进制数设计

1.1设计要求:

设计转换程序,将键盘键入的四位十六进制数据转换为等值的二进制数,并在终端显示。要求:完善程序结构,设置程序错误出口。输入的不是0-F间的值,显示错误提示信息,并要求重新输入。

1.2设计思路:

依次输入四个十六进制数并依次存放到BX中,最后将BX中结果一位一位输出为二进制。

汇编语言怎么实现各种码制的转换

1.3程序清单:

DATA SEGMENT    pkey   DB "pleas input 4 hex(0~F):$"    ekey   DB  0dh,0ah,'it is wrong!',0dh,0ah,'pleas input 4 hex(0~F) again:','$'    huiche  DB  0dh,0ah,'result is:',0dh,0ah,'$'     numm  DB  5 dup(0)DATA ENDSCODE SEGMENT     ASSUME CS:CODE,DS:DATA      STATE:      MOV AX,DATA    MOV DS,AX    MOV CX,4       ;输入十六进制数循环4次    LEA SI,numm     ;开辟变址寄存器SI    LEA DX,pkey    MOV AH,9    INT 21H          ;DOS功能调用,输出字符串               lp: MOV AH, 1    INT 21H          ;DOS功能调用,输入4个十六进制数    CMP AL,'9'    JA abow9     CMP AL,'0'    JB eero    SUB AL,30h      ;输入为0~9时ASCII码减30H存放    JMP lop      eero:LEA DX, ekey     ;输入不在0~9且不在A~F时,显示错误     MOV AH, 9     INT 21H      JMP lpabow9:CMP AL,'A'      JNB abowa      JMP eero       abowa:CMP AL,'F'      JA eero      SUB AL,37h    ;输入为A~F时ASCII码减37H存放      JMP lop     lop: MOV [SI],AL    ROL BX,4    ADD BX,[SI]    ;将输入的数据存入BX寄存器中    INC SI    DEC CX     JNZ lp    MOV CX,16      ;输出二进制数循环16次    LEA DX,huicheMOV AH,9     INT 21H        ;DOS功能调用,输出字符串lp1: ROL BX,1        ;左移1位后显示的是最高位    MOV DL,BL    AND DL,01H     ;屏蔽DL高7位    ADD DL,30H     ;加30H对应ASCII码    MOV AH,2    INT 21H        ;DOS功能调用,将内容按位输出    DEC CX     JNZ lp1          CODE ENDSEND STATE

1.4程序运行结果及分析:

存放和输出时会遇到一些小问题,本程序通过移位和加法指令实现存放,比较麻烦但可以实现,后面的程序有所改进。

汇编语言怎么实现各种码制的转换

图1 十六进制转换为二进制数设计结果

2.十六进制转换为十进制数设计

2.1设计要求:

设计转换程序,将键盘输入的一位十六进制数转换为等值的十进制数,并在终端显示。设计要求:完善程序结构,设置程序错误出口。输出的不是0-F间的数字,显示错误提示信息,并要求重新输入。

2.2设计思路:

输入一位十六进制数,判断是否为0~9,a~f,A~F,各自转换后输出。

汇编语言怎么实现各种码制的转换

2.3程序清单:

DATA SEGMENT     pkey  DB  0dh,0ah,"pleas input 1 hex(0~F):$"     huiche DB  0dh,0ah,'result is:$'     end2  DB  0dh,0ah,'it is wrong',0dh,0ah,'please input 1 hex(0~F) again:','$'     numm   DB  3 dup(0) DATA ENDSCODE SEGMENT     ASSUME CS:CODE,DS:DATA      STATE:      MOV AX,DATA    MOV DS,AX    LEA SI,numm     ;开辟缓冲区    LEA DX,pkey    MOV AH,9    INT 21H         ;DOS功能调用,输出字符串    LP: MOV AH, 1    INT 21H         ;DOS功能调用,输入1个十六进制数    CMP AL,'9'    JA abow9     CMP AL,'0'    JB eero           ;输入小于0重新输入    ADD AH,2FH     ;输入为0~9高位给0输出    JMP OUTPUT    abow9: CMP AL,'A'       JNB abowA       JMP eero      ;输入大于9小于A重新输入       abowA:CMP AL,'F'      JA abowF      SUB AL,11H            ADD AH,30H   ;输入A~F高位给1,低位减11H输出      JMP OUTPUTabowF:CMP AL,'a'      JNB abow1a      JMP eero       ;输入大于F小于a重新输入abow1a:CMP AL,'f'      JA eero         ;输入大于f重新输入      SUB AL,31H      ADD AH,30H    ;输入a~f高位给1,低位减31H输出     JMP OUTPUTeero:LEA DX,end2     MOV AH,9     INT 21H         ;DOS功能调用,输出错误字符串      JMP LP           OUTPUT:     MOV BX,AX     LEA DX,huiche     MOV AH,9     INT 21H         ;DOS功能调用,输出字符串     MOV [SI],BH      MOV DL,[SI]     MOV AH,2     INT 21H        ;DOS功能调用,高位输出     MOV [SI],BL      MOV DL,[SI]     MOV AH,2     INT 21H        ;DOS功能调用,低位输出      JMP STATE            CODE ENDSEND STATE

2.4程序运行结果及分析:

这里输出分高位和低位输出,因为是一位十六进制数的转换,如果换两位或更多就需要将程序修改到更智能化。

汇编语言怎么实现各种码制的转换

图2 十六进制转换为十进制数设计结果

3.十六进制转换为ASCII码

3.1设计要求:

设计转换程序,将键盘键入的十六进制数据转换为对应的ASCII码,并在终端显示。

3.2设计思路:

将输入数的高位左移转ASCII输出,低位转ASCII输出。

汇编语言怎么实现各种码制的转换

3.3程序清单:

DATA SEGMENT     pkey  DB  0dh,0ah,"please input 1 hex(0~F):$"     huiche DB  0dh,0ah,'result is:$'     end2  DB  0dh,0ah,'it is wrong',0dh,0ah,'please input 1 hex(0~F) again:','$'     numm  DB  3 dup(0) DATA ENDSCODE SEGMENT     ASSUME CS:CODE,DS:DATA      STATE:      MOV AX,DATA    MOV DS,AX    LEA SI,numm     ;开辟缓冲区    LEA DX,pkey    MOV AH,9    INT 21H         ;DOS功能调用,输出字符串    LP: MOV AH, 1    INT 21H         ;DOS功能调用,输入1个十六进制数    CMP AL,'9'    JA abow9     CMP AL,'0'    JB end1          ;输入小于0重新输入    JMP OUTPUT    abow9: CMP AL,'A'       JNB abowA       JMP end1       ;输入大于9小于A重新输入       abowA:CMP AL,'F'      JA end1         ;输入大于F重新输入      JMP OUTPUT      end1:LEA DX,end2     MOV AH,9     INT 21H         ;DOS功能调用,输出错误字符串     JMP LP      OUTPUT:     MOV BX,AX     ROL BX,4     AND BH,0FH     ADD BH,30H      ;高位是AX左移四位再加30H得到     AND AL,0FH     MOV BL,AL     ADD BL,30H      ;低位是AL低四位加30H得到     LEA DX,huiche     MOV AH,9     INT 21H          ;DOS功能调用,输出字符串       MOV [SI],BH      MOV DL,[SI]     MOV AH,2     INT 21H          ;DOS功能调用,高位输出      MOV [SI],BL      MOV DL,[SI]     MOV AH,2     INT 21H          ;DOS功能调用,低位输出     JMP STATE CODE ENDSEND STATE

3.4程序运行结果及分析:

汇编语言怎么实现各种码制的转换

图3 十六进制转换为ASCII码设计结果

4.英文字母大小写转换设计

4.1设计要求:

英文字母大小写转换本质上是ASCII码直接的转换。要求掌握大小写字母在计算机内的表示方法及转换方法。设计程序,连续将键盘输入的小写字母转换为大写字母,并在终端显示。设计要求:小写字母转换为大写字母输出,非字母或大写字母输入,不做处理直接输出。

4.2设计思路:

判断输入是否为a~z,是的话减20H输出,不是直接输出。

汇编语言怎么实现各种码制的转换

4.3程序清单:

DATA SEGMENT     pkey   DB  0dh,0ah,"pleas input:$"     result DB  0dh,0ah,'result is:','$' DATA ENDSCODE SEGMENT     ASSUME CS:CODE,DS:DATA      STATE:      MOV AX,DATA    MOV DS,AX       ;初始化数据段    LP: LEA DX,pkey    MOV AH,9    INT 21H         ;DOS功能调用,输出字符串    MOV AH, 1    INT 21H         ;DOS功能调用,键盘输入    CMP AL,'z'    JA LLP      CMP AL,'a'       ;输入不在a~z之间直接输出    JB LLP    SUB AL,20H      ;输入为a~z转换,ASCII码减20H              MOV BL,AL           OUTPUT:     LEA DX,result     MOV AH,9     INT 21H         ;DOS功能调用,输出字符串     MOV DL,BL     MOV AH,2     INT 21H         ;DOS功能调用,输出DL中内容     JMP LP                               LLP: MOV BL,AL     JMP OUTPUT                CODE ENDSEND STATE

4.4程序运行结果及分析:

汇编语言怎么实现各种码制的转换

图4 英文字母大小写转换设计结果

到此,相信大家对“汇编语言怎么实现各种码制的转换”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

汇编语言怎么实现各种码制的转换

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

汇编语言怎么实现各种码制的转换

本篇内容主要讲解“汇编语言怎么实现各种码制的转换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“汇编语言怎么实现各种码制的转换”吧!1.十六进制转换为二进制数设计1.1设计要求:设计转换程序,将键
2023-06-21

python各种语言间时间的转化实现代码

一 基本知识 millisecond 毫秒 microsecond 微秒 nanosecond 纳秒 1秒=1000毫秒 1毫秒=1000微秒 1微秒=1000纳秒 二 perl perl中可以使用time或localtime来获得时间,
2022-06-04

C语言实现常见进制转换的示例代码

生活中最常见的进制是十进制,而有一类编程题会要求将十进制转换为其他进制,本文将主要讲述C语言中常见的几类进制转换问题,希望对大家有所帮助
2023-05-14

12款各种编程语言实现的Git代码托管系统是怎样的

12款各种编程语言实现的Git代码托管系统是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。尽管 SVN 在企业中还是占据着主导的位置,但在互联网世界的版本控制系统中,
2023-06-17

汇编语言功能字符串大小写转换实现方法是什么

本篇内容介绍了“汇编语言功能字符串大小写转换实现方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题1:将data段中的第一个字符串
2023-06-25

R语言怎么利用barplot()制作条形图的各种实例

本篇内容介绍了“R语言怎么利用barplot()制作条形图的各种实例”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言函数barplot()
2023-06-09

高级语言中的语句在汇编中是怎么实现的

这篇文章主要介绍“高级语言中的语句在汇编中是怎么实现的”,在日常操作中,相信很多人在高级语言中的语句在汇编中是怎么实现的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”高级语言中的语句在汇编中是怎么实现的”的疑
2023-06-15

C语言实现字符串替换的示例代码怎么写

本篇文章给大家分享的是有关C语言实现字符串替换的示例代码怎么写,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 替换,意思就是用另一个字符串str3来替换str1中所有的str2
2023-06-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录