汇编数值转换器大作业解读
汇编数值转换器大作业

clear_screen MACRO;清屏宏定义
movah,06h
moval,0
movbh,0f0h;白底黑字
movch,0;从0行0列到23行79列清屏
movcl,0
movdh,23
movdl,79
●设计
1运行的设计框图
2整个系统的设计框图
3子程序之间调用关系框图的宏定义,对于输入时的宏定义有charin,strin,numin,输出时的宏定义有charout,strout,numout,输出的时候用到的是栈push和pop,在压栈push时,用到了irp不定重复伪操作。
最后我们几个商量着完成了实验报告和ppt的制作,经过我们几个人的努力,虽然做的不是特别好,但还是各有收获。
三、需求分析与设计
●需求分析
通过编程实现显示菜单,然后通过键盘输入菜单相应的选项进入相应的数制转换,然后通过选项对应的子程序跳转来实现转换,子程序中通过宏定义定义数制前后的数制,并且在宏定义过程中实现数制转换算法,最后输出转换后的进制数。
程序运行源代码如下:
;*************************************************************************************
datasegment
spacedb1000dup(' ')
str1db10dup(' '),9dup(' '),'Welcome to shuzhizhuanhuan!!!',52dup(' ')
汇编程序解读

汇编程序解读汇编程序是一种低级语言,用于编写计算机程序。
它直接操作计算机的硬件,提供了对计算机底层的细节进行控制的能力。
在计算机科学领域,汇编程序是非常重要的一部分,它可以帮助我们更好地理解计算机的工作原理。
汇编程序的编写需要使用汇编语言,它是一种符号化的机器语言。
与高级语言相比,汇编语言更接近计算机的底层,因此更加复杂和难以理解。
但是,通过学习汇编语言,我们可以更深入地了解计算机的内部结构和工作原理。
汇编程序的解读是指对已经编写好的汇编程序进行分析和理解。
在解读汇编程序时,我们需要了解汇编语言的基本语法和指令集。
汇编语言的基本语法包括标签、指令和操作数。
标签用于标识程序中的位置,指令用于执行特定的操作,操作数则是指令的参数。
在解读汇编程序时,我们需要注意以下几个方面:首先,我们需要了解程序的入口点。
在汇编程序中,通常会有一个特定的入口点,即程序的起始位置。
我们需要找到这个入口点,并从这里开始分析程序的执行流程。
其次,我们需要分析程序的指令序列。
汇编程序是由一系列指令组成的,每条指令都对应着一条机器指令。
我们需要逐条分析这些指令,了解它们的功能和作用。
然后,我们需要理解程序的数据区。
在汇编程序中,通常会有一些数据需要进行处理。
我们需要找到这些数据,并了解它们的类型和用途。
最后,我们需要分析程序的控制流程。
汇编程序中的控制流程通常通过条件分支和循环来实现。
我们需要找到这些分支和循环,并了解它们的条件和执行逻辑。
通过对汇编程序的解读,我们可以更好地理解程序的执行过程和功能。
这对于调试和优化程序非常有帮助。
此外,对于对计算机底层感兴趣的人来说,学习和解读汇编程序也是一种很好的方式。
总之,汇编程序解读是一项重要的技能,它可以帮助我们更好地理解计算机的底层工作原理。
通过学习和解读汇编程序,我们可以更深入地了解计算机的内部结构和工作方式,提高我们的编程能力和调试能力。
希望大家能够重视汇编程序的学习和解读,为自己的计算机科学之路打下坚实的基础。
汇编语言各种指令解释及用法2篇

汇编语言各种指令解释及用法2篇汇编语言指令解释及用法汇编语言是一种低级编程语言,用于编写机器指令,直接控制计算机硬件。
它的指令集相对简单,但是非常灵活,可以直接操作寄存器和内存,实现各种功能。
在这篇文章中,我将为大家解释汇编语言中一些常用指令的含义和用法。
第一篇:数据传输与操作指令1. MOV指令:MOVE(MOV)指令用于在寄存器和内存之间传输数据。
例如,MOV AX, BX将BX的值传输到AX寄存器中。
2. ADD指令:ADD指令用于将两个操作数相加,并将结果存储在目标操作数中。
例如,ADD AX, 5将AX寄存器的值与5相加,并将结果存储在AX中。
3. SUB指令:SUB指令用于将两个操作数相减,并将结果存储在目标操作数中。
例如,SUB AX, 3将AX寄存器的值减去3,并将结果存储在AX中。
4. INC指令:INC指令用于将目标操作数的值加1。
例如,INC CX将CX寄存器的值增加1。
5. DEC指令:DEC指令用于将目标操作数的值减1。
例如,DEC DX将DX寄存器的值减去1。
6. MUL指令:MUL指令用于将两个无符号操作数相乘,结果保存在一对寄存器中。
例如,MUL BX将AX寄存器的值与BX相乘,并将结果保存在DX:AX寄存器对中。
7. DIV指令:DIV指令用于将两个无符号操作数相除,商保存在AL中,余数保存在AH中。
例如,DIV CX将DX:AX寄存器对的值除以CX,并将商保存在AL中,余数保存在AH中。
8. CMP指令:CMP指令用于比较两个操作数的值,并设置相应的标志位。
例如,CMP AX, BX将AX寄存器的值与BX进行比较。
第二篇:跳转指令与循环指令1. JMP指令:JMP指令用于无条件跳转到目标地址。
例如,JMP LABEL将程序跳转到标签LABEL处执行。
2. JZ指令:JZ指令用于判断前一次的比较结果是否为零,如果为零则跳转到目标地址。
例如,JZ LABEL将在前一次比较结果为零时跳转到标签LABEL处。
汇编 反转字节-概述说明以及解释

汇编反转字节-概述说明以及解释1.引言1.1 概述在计算机领域中,反转字节是一种常见的数据处理操作,它的基本原理是将数据中的字节顺序颠倒,即将最高有效位的字节移动到最低有效位的位置,最低有效位的字节移动到最高有效位的位置。
这项技术在计算机系统中有着广泛的应用,可以用于数据加密、网络通信、数据压缩等领域。
本文将详细介绍反转字节的定义、原理以及在实际操作中的应用方法,旨在帮助读者更好地理解和运用这一重要的数据处理技术。
同时,也会探讨反转字节在数据处理中的潜在影响和未来发展趋势,为读者提供全面的知识和视野。
1.2 文章结构在本文中,我们将首先介绍反转字节的定义和原理,解释为什么需要对字节进行反转操作以及其相关的概念和基本原理。
接着我们将探讨反转字节在不同领域中的应用,包括计算机网络、数据存储和处理等方面。
随后,我们将详细介绍反转字节的实际操作方法,包括具体的编程示例和实践指导。
最后,我们将总结反转字节的重要性,并探讨其在数据处理中可能产生的影响,以及展望反转字节在未来的发展趋势。
通过对这些内容的探讨,读者将能够全面了解反转字节的概念、应用和操作方法,从而更好地应用和理解该技术。
1.3 目的本文的目的旨在深入探讨汇编语言中的反转字节操作,并探讨其在计算机领域中的重要性和实际应用。
通过分析反转字节的定义、原理和操作方法,我们可以更好地理解数据处理中的字节顺序问题,为程序员提供更多的技术支持和解决方案。
同时,本文也将探讨反转字节在未来发展中的潜在影响和应用前景,帮助读者更好地了解和利用这一重要的数据处理技术。
希望本文能为读者提供有益的知识和启发,促进汇编编程技术的进步和发展。
2.正文2.1 反转字节的定义和原理在计算机编程中,反转字节是一种常见的操作,它指的是将一个字节中的位按照相反的顺序重新排列。
字节是计算机中存储数据的基本单位,通常由8个位组成。
在反转字节的过程中,我们会将这8个位的顺序颠倒,即原先的最高位变为最低位,最低位变为最高位,其余位依次类推。
汇编语言各种指令的解释与用法

汇编语言各种指令的解释与用法汇编语言是一种低级语言,通过编写汇编程序可以直接操作计算机硬件。
在汇编语言中,各种指令起到了关键的作用。
本文将对常用的汇编语言指令进行解释,并说明其用法。
1. 数据传输指令数据传输指令用于在存储器和寄存器之间传输数据。
常用的数据传输指令包括MOV、PUSH和POP。
- MOV指令用于将数据从一个位置传送到另一个位置。
语法格式为:MOV 目的地,源。
- PUSH指令用于将数据压入栈中。
语法格式为:PUSH 寄存器/内存地址。
- POP指令用于从栈中弹出数据并存放到指定位置。
语法格式为:POP 寄存器/内存地址。
2. 算术运算指令算术运算指令用于进行各种算术运算,如加法、减法、乘法和除法。
常用的算术运算指令有ADD、SUB、MUL和DIV。
- ADD指令实现两个操作数的加法。
语法格式为:ADD 目的操作数,源操作数。
- SUB指令实现两个操作数的减法。
语法格式为:SUB 目的操作数,源操作数。
- MUL指令实现两个操作数的乘法。
语法格式为:MUL 操作数。
- DIV指令实现两个操作数的除法。
语法格式为:DIV 操作数。
3. 分支控制指令分支控制指令用于根据条件来选择不同的执行路径,包括条件跳转和无条件跳转。
常用的分支控制指令有JMP、JZ、JE和JNE。
- JMP指令用于无条件跳转到指定的地址。
语法格式为:JMP 标号/偏移量。
- JZ指令用于在零标志位为1时跳转到指定地址。
语法格式为:JZ标号/偏移量。
- JE指令用于在相等标志位为1时跳转到指定地址。
语法格式为:JE 标号/偏移量。
- JNE指令用于在不相等标志位为1时跳转到指定地址。
语法格式为:JNE 标号/偏移量。
4. 逻辑运算指令逻辑运算指令用于实现与、或、非、异或等逻辑运算。
常用的逻辑运算指令有AND、OR、NOT和XOR。
- AND指令用于执行按位与运算。
语法格式为:AND 目的操作数,源操作数。
- OR指令用于执行按位或运算。
汇编教程汇编指令详解

汇编教程汇编指令详解
汇编语言可以说是机器语言的一种直观形式,是与硬件直接相关的低
级程序设计语言。
它是一种以简洁的汇编指令来表达操作码机器指令的程
序设计语言,汇编语言的指令代码一般比机器语言的指令代码要短,是编
写高效、可移植的机器级程序的理想语言。
汇编语言的基本构成:
(1)指令集:汇编语言的指令集是机器的最基本和最重要的组成部分,也是机器的指令集,描述了机器所做的操作。
(2)操作数:汇编语言的指令集中涉及到的操作数有多种,比如寄
存器操作数、立即数、内存操作数等。
(3)运算和转移指令:汇编语言中的运算和转移指令包括算术运算
指令、比较指令、逻辑运算指令、移位指令等,它们是机器执行的基本操作。
(4)转移指令:汇编语言中的转移指令可以改变机器指令的执行顺序,并实现分支程序设计。
(5)I/O指令:汇编语言中的I/O指令可以实现与外部设备的通信,获取外部设备提供的数据。
(6)汇编指令:汇编指令用于移植各种汇编程序到不同的处理器上,从而实现程序的机器无关性。
一、MOV指令:
MOV指令用于把操作数的值赋给另一个操作数。
基于汇编语言实现的通用数制转换程序

基于汇编语言实现的通用数制转换程序[摘要]汇编语言是计算机相关专业的一门基础课程,在使用该语言时,将程序的计算结果按不同的数制形式显示输出是一个难点。
本文讨论了如何将数据通过转换,按照不同进制数的形式显示在显示器上,并给出了一个通用的数制转换程序具体实现这一过程。
[关键词]汇编语言;数制转换汇编语言是一种面向机器的语言,但它是计算机能提供给用户的最快最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而汇编语言在程序设计中仍然占有很重要的位置,是不可取代的。
但是对于汇编语言编程来说,常常需要把十进制数转换为二进制数、十六进制数和八进制数,或者把十六进制数转换为十进制数、二进制数等等,并要求将结果在显示器上显示输出。
而汇编语言中实现数据的显示没有类似高级语言的输入输出语句,转换输出的工作是比较困难的。
下面我们来探讨一个通用的数制转换程序,使任何进制的数据按照编程者的要求转换为需要的数制形式显示在显示器上。
1 通用数制转换的原理通用数制转换的基本原理是:除N取余法。
1.1 十进制数转换为N进制数。
将十进制数转换为N进制数,我们常常使用的是除N取余法:将十进制数据除以N进制数的基数N,所得余数即为N 进制数个位上的数码,再将商除以N,余数为N进制数十位上的数码,如此反复进行,直到商是0为止。
例如,将十进制数5050转换为十六进制数,我们采用除N取余法实现:所以,(5050)10=(13BA)161.2P进制数转换为N进制数。
实际上,任何进制的数据需要转换成N进制数都可以采用“除N取余法”。
把一个P进制数转化为一个N进制数的过程,实际上是一个不断除N取余的过程。
转换原理:将需要转换的P进制数据除以N进制数的基数N,所得余数即为N进制数个位上的数码,再将商除以N,余数为N进制数十位上的数码,如此反复进行,直到商为0为止。
例如,将十六进制数13BA转换为十进制数。
采用除N取余法:用13BA不断的除以A(即使十进制基数10),所得的第一个余数为所求十进制数个位上的数码,再将商除以A,余数即所求十进制数十位上的数码,如此循环,直到商为0,结束运算。
汇编教程汇编指令详解

汇编教程汇编指令详解汇编语言是一种底层的计算机语言,通过使用汇编指令对计算机进行编程。
本文将对汇编指令进行详细解释,帮助读者理解和使用汇编语言。
1.数据传送指令:数据传送指令用于将数据从一个位置传送到另一个位置。
例如,MOV指令可以将数据从一个寄存器移动到另一个寄存器,或从存储器中读取数据并将其移动到寄存器中。
2.算术运算指令:算术运算指令用于执行各种算术运算,如加法、减法、乘法和除法。
例如,ADD指令可以将两个操作数相加,而MUL指令可以将两个操作数相乘。
3.逻辑运算指令:逻辑运算指令用于执行逻辑运算,如与、或、非和异或。
例如,AND指令可以对两个操作数执行按位与运算,而OR指令可以对两个操作数执行按位或运算。
4.控制转移指令:控制转移指令用于在程序执行过程中改变控制流。
例如,JMP指令可以无条件地将程序跳转到指定的地址,而条件分支指令(如JE、JNE等)可以根据特定的条件决定是否跳转。
5.程序调用指令:程序调用指令用于调用子程序。
例如,CALL指令可以将控制交给一个子程序,并在子程序执行完后返回到调用点。
6.中断指令:中断指令用于触发计算机的中断处理程序。
例如,INT 指令可以使计算机执行与指定中断向量相关联的中断处理程序。
7.输入输出指令:输入输出指令用于与计算机的外部设备进行数据交换。
例如,IN指令可以从外部设备中读取数据,而OUT指令可以向外部设备发送数据。
除了上述常用的汇编指令外,不同的计算机体系结构可能还有其他特定的指令。
因此,在学习和使用汇编语言时,了解特定体系结构的指令集是很重要的。
此外,汇编语言还包括一些程序框架和编程技巧,如标号、注释、宏定义、条件编译等。
这些工具和技巧可用于简化和优化汇编程序的开发过程。
总结起来,汇编语言是一种底层的计算机语言,通过使用各种指令对计算机进行编程。
掌握和理解各种汇编指令对于编写高效和优化的汇编程序非常重要。
希望本文能够帮助读者更好地理解和使用汇编语言。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《汇编语言程序设计》综合程序设计实验报告题目:数制转换器班级:信1101-2班姓名:王兵茹李夏蕾胡佳奇学号:******** ********20113013完成日期:2013-11-24目录一、简介二、小组成员及具体分工三、需求分析与设计四、代码及分析五、总结一、简介本设计利用汇编语言来实现数制转换设计,用于方便进制之间的互换。
设计的内容可以使十六进制、八进制、二进制、十进制的数制互相转换。
二.小组成员及具体分工小组成员:王兵茹李夏蕾胡佳奇具体分工:我们三个一开始是各自的分工查资料,先看看单个数制转换,王兵茹负责的是十六进制,李夏蕾负责的是十进制,胡佳琪负责的是二进制。
最后我们几个一起完成了程序的主要设计,由于大体思路相同,最后加上了八进制的转换。
在程序的修改方面,王兵茹进行了后期的加工,增加了dios中断,把单调的退出改成文本形式下的退出,在退出之前,执行清屏。
最后我们几个商量着完成了实验报告和ppt的制作,经过我们几个人的努力,虽然做的不是特别好,但还是各有收获。
三、需求分析与设计●需求分析通过编程实现显示菜单,然后通过键盘输入菜单相应的选项进入相应的数制转换,然后通过选项对应的子程序跳转来实现转换,子程序中通过宏定义定义数制前后的数制,并且在宏定义过程中实现数制转换算法,最后输出转换后的进制数。
●设计①运行的设计框图②整个系统的设计框图③子程序之间调用关系框图我们的这个程序主要就是用到的子程序的调用和大量的宏定义,对于输入时的宏定义有charin,strin,numin,输出时的宏定义有charout,strout,numout,输出的时候用到的是栈push和pop,在压栈push时,用到了irp不定重复伪操作。
定义通用inax宏,确定转换之前的进制,例如inax cx、cx=2是把转换之前的进制确定为2存到cx中定义通用outax宏,确定转换之后的进制,例如outax bx、bx=2是把转换之后的进制确定为2存到bx中通用宏charin逐个输入转换之前进制字符四、代码及分析程序运行源代码如下:;******************************************************************** *****************data segmentspace db 1000 dup(' ')str1 db 10 dup(' '),9 dup(' '),'Welcome to shuzhizhuanhuan',52 dup(' ')str12 db 240 dup (' '),9 dup(' '),'Thank you',412 dup(' ')clear_screen MACRO ;清屏宏定义mov ah,06hmov al,0mov bh,0f0h ;白底黑字mov ch,0 ;从0行0列到23行79列清屏mov cl,0mov dh,23mov dl,79int 10hmov dx,0 ;光标在左上角mov ah,2int 10h ;调用biosENDMmenu db 10,13,'*************************************************' db10,13,'*************************************************'db10,13,'* please choice action: *'db10,13,'* a.binary 2 to octal 8 *'db10,13,'* b.binary 2 to decimal 10 *'db10,13,'* c.binary 2 to hexadecimal 16 *'db10,13,'* d.octal 8 to binary 2 *'db10,13,'* e.octal 8 to decimal 10 *'db10,13,'* f.octal 8 to hexadecimal 16 *'db10,13,'* g.decimal 10 to binary 2 *'db10,13,'* h.decimal 10 to octal 8 *'db10,13,'* i.decimal 10 to hexadecimal 16 *'db10,13,'* j.hexadecimal 16 to binary 2 *'db10,13,'* k.hexadecimal 16 to octal 8 *'db10,13,'* l.hexadecimal 16 to decimal 10 *'db10,13,'* m.exit *'db10,13,'*************************************************',10,13,' $';**************************************************************;2进制转换为16进制和10进制和8进制str2 db10,13,'please input the binary string:',10,13, '$'str21 db'the hexadecimal string is:',10,13, '$'str22 db'the decimal string is:',10,13, '$'str23 db'the octal string is:',10,13, '$';16进制转换为2进制和8进制和10进制str3 db10,13,'please input the hexadecimal string:',10,13, '$' str31 db'the binary string is:',10,13, '$'str32 db'the octal string is:',10,13, '$'str33 db'the decimal string is:',10,13, '$';10进制转换为2进制和8进制和16进制str4 db10,13,'please input the decimal string:',10,13, '$'str41 db'the binary string is:',10,13, '$'str42 db'the octal string is:',10,13, '$'str43 db'the hexadecimal string is:',10,13, '$';8进制转换为2进制和10进制和16进制str5 db10,13,'please input the octal string:',10,13, '$'str51 db'the binary string is:',10,13, '$'str52 db'the decimal string is:',10,13, '$'str53 db'the hexadecimal string is:',10,13, '$'str0 db 10,13,'ERROR! please input a~m:',13,10,'$';在数据段定义字符,数字,字符串的输入输出的宏定义;*************************************************charin macro ;字符输入mov ah,01hint 21hendm;************************************************numin macro ;数字输入charin ;调用charin宏定义sub al,48 ;48d=30h,将字符转换为数字endm;****************************************************strin macro stringin ;字符串输入lea dx,stringinmov ah,0ahint 21hendm;****************************************************charout macro outchar ;字符输出irp rec,<ax,dx>;不定重复伪操作push recendm;push ax;push dxmov dl, outcharmov ah, 02hint 21hpop dxpop axendm;*************************************************** numout macro outnum ;数字输出push axpush dxmov dl, outnumadd dl, 48mov ah, 02hint 21hpop dxpop axendm;**************************************************strout macro stringout ;字符串输出push axpush dxlea dx, stringoutmov ah, 9int 21hpop dxpop axendmdata endsstack segment stackdw 200 dup(?)stack ends;*************************************************code segmentassume cs:code,ds:data,es:data,ss:stack;******************************************************** endl macroirp x,<ax,bx,cx,dx>;不定重复伪操作push xendm;push ax;push bx;push cx;push dxmov dl, 0ah ;回车换行mov ah, 2int 21hmov dl, 0dhint 21hpop dxpop cxpop bxpop axendm;******************************************************* outax macro basenumpush axpush bxpush cxpush dxmov bx, basenumcall outaxppop dxpop cxpop bxpop axendm;******************************************************* outaxp procmov dx,0mov cx,0outaxp_circle:cmp ax,0je outaxp_nextdiv bxpush dxmov dx,0jmp outaxp_circleoutaxp_next:pop axcmp al,10jb noutadd al,55 ;55d=37hcharout aljmp coutnout:numout alcout:loop outaxp_nextretoutaxp endp;************************************************** inax macro basenumpush bxpush cxpush dxmov cx, basenumcall inaxppop dxpop cxpop bxendm;************************************************ inaxp procmov ax, 0inaxp0:push axinaxp1: charincmp al, 13 ;判断输入的是不是回车je inaxecmp al, '0'jb inaxp1cmp al, '9'ja inaxnext1sub al, 48jmp inaxnuminaxnext1:cmp al, 'A'cmp al, 'F'ja inaxnext2sub al, 55jmp inaxnuminaxnext2:cmp al, 'a'jb inaxp1cmp al, 'z'ja inaxp1sub al, 87jmp inaxnuminaxnum:mov bh, 0mov bl, alpop axcmp ax, 0je inaxaddmul cxinaxadd:add ax, bxjmp inaxp0inaxe:pop axretinaxp endp;*************************************************** start:mov ax,datamov ds,axmov es,axlea bp,spacemov dx,0b00hmov cx,1000mov bx,0020hmov ax,1300hint 10hlea bp,str1;显示welcomemov dx,0600hmov cx,120mov bx,000ehmov ax,1301hint 10hdisplay:strout menucharincmp al,'a'je bin2_oct8jl errcmp al,'b'je bin2_dec10cmp al,'c'je bin2_hex16cmp al,'d'je oct8_bin2cmp al,'e'je oct8_dec10cmp al,'f'je oct8_hex16cmp al,'g'je dec10_bin2cmp al,'h'je dec10_oct8cmp al,'i'je dec10_hex16cmp al,'j'je hex16_bin2cmp al,'k'je hex16_oct8cmp al,'l'je hex16_dec10cmp al,'m'je exitcmp al,'n'jnl errclear_screenjmp displayerr:strout str0jmp display;***************************************************** bin2_hex16: ;二进制转换strout str2inax 2endlstrout str21outax 16jmp displaybin2_dec10:strout str2inax 2endlstrout str22outax 10jmp displaybin2_oct8:strout str2inax 2endlstrout str23outax 8jmp display;************************************************* hex16_bin2: ;十六进制转换strout str3inax 16endlstrout str31outax 2jmp displayhex16_oct8:strout str3inax 16endlstrout str32outax 8jmp displayhex16_dec10:strout str3inax 16endlstrout str33outax 10jmp display;**************************************************** dec10_bin2: ;十进制转换strout str4inax 10endlstrout str41outax 2jmp displaydec10_oct8:strout str4inax 10endlstrout str42outax 8jmp displaydec10_hex16:strout str4inax 10endlstrout str43outax 16jmp display;*********************************************************** oct8_bin2: ;八进制转换strout str4inax 8endlstrout str41outax 2jmp displayoct8_dec10:strout str4inax 8endlstrout str42outax 10jmp displayoct8_hex16:strout str4inax 8endlstrout str43outax 16jmp display;********************************************************** exit: clear_screen ;调用宏定义,清屏lea bp,str12mov dx,0600hmov cx,520mov bx,004ehmov ax,1301hint 10hmov ah,4chint 21h;********************************************************** code endsend start程序运行结果截图:(包括正确输入和错误输入)五、总结本次大作业,考虑到我们平时对数制转换的应用,并且各个进制转换起来使人头痛,我们组做的是一个数制转换器。