实验二 数制及代码转换
- 格式:pdf
- 大小:60.78 KB
- 文档页数:2
实验二二进制转换成BCD码
一、实验目的
设计并实现一个4位二进制码转换成BCD码的转换器。
二、实验仪器
SOPC实验箱、Quartus II软件
三、实验原理
对于不同代码之间的转换,有用硬件实现的,也有用软件实现的。
对于硬件实现,可以用一般的组合逻辑电路实现,也可以用译码器、编码器或只读存储器来实现。
本实验的原理见表3-1所示。
四、实验内容
1、启动Quartus II 建立一个空白工程,然后命名。
2、新建VHDL源程序文件并命名,输入程序代码并保存,进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
3、新建仿真文件,对各模块设计进行仿真,验证设计结果。
打印仿真结果。
五、实验步骤
1.各模块程序:
1)用文本输入法实现秒的计时,程序如下:
module BCD(D,B);
output [4:0] B;
input [3:0] D;
reg [4:0] B;
always@ (D)
begin
if(D<4'b1010) begin B[3:0]=D[3:0];B[4]=1'b0;end
else begin B[3:0]=D[3:0]-4'b1010;B[4]=1'b1;end
end
endmodule
2.建立工作库文件夹,输入设计项目原理图或vorilog代码并存盘。
3.生成RTL图。
4.进行波形仿真,仿真后波形如下:
六、实验结果与现象验证
输入任何一个十六进制数产生了与二进制码转换成BCD码的转换真值表相对于的BCD码.。
实验二栈的应用(数制转换)一、实验目的掌握栈的基本操作:初始化栈、判栈为空、出栈、入栈等运算。
二、实验要求1.认真阅读和掌握本实验的算法。
2.上机将本算法实现。
3.保存程序的运行结果,并结合程序进行分析。
三、实验内容利用栈的基本操作实现将任意一个十进制整数转化为R进制整数算法为:1、定义栈的顺序存取结构2、分别定义栈的基本操作(初始化栈、判栈为空、出栈、入栈等)3、定义一个函数用来实现上面问题:(1)十进制整数X和R作为形参(2)初始化栈(3)只要X不为0重复做下列动作将X % R入栈, X=X/R(4)只要栈不为空重复做下列动作栈顶出栈 , 输出栈顶元素四、实验报告要求:1、十进制整数转化为R进制整数算法的代码;2、程序运行结果及分析;3、实验总结。
1.实验源码:#include"stdio.h"#include"stdlib.h"#include"malloc.h"#define maxsize 100typedef struct{int data[maxsize];int top;}seqstack,*pseqstack;pseqstack setstack(){pseqstack s;s=(pseqstack)malloc(sizeof(seqstack));if(s)s->top=-1;return s;}int empty(pseqstack s){if(s->top==-1)return 1;elsereturn 0;}pseqstack pushin(pseqstack s,int m,int r) {if(s->top==maxsize-1)printf("此栈已满,无法入栈!\n");else{while(m!=0){s->top++;s->data[s->top]=m%r;m=(m-(m%r))/r;}}return s;}int popout(pseqstack s){if(empty(s))return 0;else{printf("转化后的数是:");while(s->top!=-1){printf("%d",s->data[s->top]);s->top--;}putchar('\n');return 1;}}void main(){int m,r;pseqstack p;p=(pseqstack)malloc(sizeof(seqstack));printf("请输入一个十进制的正整数:");scanf("%d",&m);printf("请输入你想转化的进制位:");scanf("%d",&r);p=setstack();p=pushin(p,m,r);popout(p);}2.程序截图:3.实验总结:友情提示:本资料代表个人观点,如有帮助请下载,谢谢您的浏览!。
第1篇一、实验背景随着计算机科学和软件工程的发展,代码转换在软件复用、程序迁移、代码优化等方面发挥着重要作用。
代码转换是指将一种编程语言的代码转换为另一种编程语言的代码,以便在不同的平台、环境和需求下使用。
本实验旨在通过实现一个简单的代码转换器,将一种编程语言的代码转换为另一种编程语言的代码,并展示其转换效果。
二、实验目的1. 理解代码转换的基本原理和流程。
2. 掌握一种编程语言的语法规则和结构。
3. 学习如何编写一个简单的代码转换器。
4. 分析和评估代码转换的效果。
三、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm四、实验内容1. 代码转换器设计本实验设计的代码转换器主要功能是将Python代码转换为Java代码。
以下是代码转换器的基本结构:- 输入:用户输入Python代码。
- 分析:解析Python代码,提取语法元素。
- 转换:根据语法元素生成对应的Java代码。
- 输出:展示转换后的Java代码。
2. 实现步骤2.1 Python代码解析使用Python内置的`ast`模块对输入的Python代码进行解析,提取出代码中的语法元素,如函数、变量、表达式等。
```pythonimport astdef parse_python_code(code):tree = ast.parse(code)return tree```2.2 语法元素转换根据解析得到的语法元素,将其转换为对应的Java代码。
以下是一个简单的示例:```pythondef convert_to_java(node):if isinstance(node, ast.FunctionDef):return f"public static void {}(){{\n{convert_to_java(node.body)}\n}}"elif isinstance(node, ast.Num):return str(node.n)elif isinstance(node, ast.Str):return f'"{node.s}"'... 其他语法元素转换else:return ""```2.3 代码生成将转换后的Java代码片段拼接成完整的Java程序。
实验二数据类型之间的转换学号姓名同组人实验项目数据类型之间的转换实验地点实验仪器台号指导教师实验日期及节次2013年02 月27 日,第3-4节一、实验要求1. 实验目的了解几种常见的类型数据之间的转换方法2. 实验内容(1)实数转换为整数(2)字符串转换为整数二、实验过程(步骤、记录、数据和分析)(1)代码:public class Int_Real{public static void main (String[]args){double x;int y;x=10*Math.random();y=(int)(x);System.out.println("转换前的数值:"+x);System.out.println("转换后的数值:"+y);}}实验结果:(2)代码:import javax.swing.JOptionPane;public class Addition{public static void main(String args[]){String firstNumber,secondNumber;int number1,number2,sum;firstNumber=JOptionPane.showInputDialog("Enter first integer"); secondNumber=JOptionPane.showInputDialog("Enter second integer"); number1=Integer.parseInt(firstNumber);number2=Integer.parseInt(secondNumber);sum=number1 + number2;JOptionPane.showMessageDialog(null,"The sum is " +sum, "Results",JOptionPane.PLAIN_MESSAGE);System.exit(0);}}实验结果:四、指导教师评语及成绩成绩:指导教师签名:。
实验二数码转换编程及程序调试一、实验目的1、掌握不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解2、熟悉键盘使用方法3、熟悉调试程序的方法二、实验设备TDN86/51或TDN86/88教学实验系统一台三、实验步骤1、十进制转换为二进制1)输入程序并检查无误后,经汇编、连接后装入系统2)在3500-3504H单元存入十进制数12的ASCII码3)G=0000:2000↙,运行程序4)用D3510↙查看结果2、BCD码转换为二进制码1)输入程序并检查无误后,经汇编、连接后装入系统2)在3500-3507单元中存入四个十进制数的BCD码3)G=0000:2000↙,运行程序四、实验结果1、键入E3500进行数据修改:>0000:3500=00_30>0000:3501=00_30>0000:3502=00_30>0000:3503=00_31>0000:3504=00_32运行之后D3510↙查看结果:>0000:3510 0C 00 CC CC CC CC CC CC2、键入E3500进行数据修改:>0000:3500=00_01>0000:3501=00_02>0000:3502=00_03>0000:3503=00_04>0000:3504=00_05>0000:3505=00_06>0000:3506=00_07>0000:3507=00_08运行之后D3510↙查看结果:>0000:3510 0C 00 22 00 38 00 4E 00。
单片机实验二数制转换类程序设计【实验目的】1.了解数制转换的基本概念及原理。
2.掌握单片机对数制转换的程序设计方法。
【实验器材】1.STC89C52单片机实验箱2. Keil C51开发环境3.电源、连接线等【实验原理】数制转换是将一个数值在不同进制间互相转换的过程。
常见的进制包括二进制、八进制、十进制和十六进制。
在程序设计中,经常需要进行不同进制间的转换,例如从二进制转换为十进制、从十进制转换为十六进制等。
【程序设计】本实验设计一个数制转换类的程序,实现二进制、八进制、十进制和十六进制之间的转换。
基本思路:1.输入数字和当前进制。
2.根据当前进制将输入的数字转换为十进制。
3.根据目标进制将十进制数转换为目标进制并输出。
【程序示例】```#include <reg52.h>#include <stdio.h>//二进制转十进制int binaryToDecimal(char *binary)int length = 0;while (binary[length] != '\0')length++;}int decimal = 0;int base = 1;for (int i = length - 1; i >= 0; i--) if (binary[i] == '1')decimal += base;}base *= 2;}return decimal;//十进制转二进制void decimalToBinary(int decimal, char *binary) int index = 0;while (decimal > 0)binary[index++] = (decimal % 2 == 1) ? '1' : '0'; decimal /= 2;}binary[index] = '\0';//反转二进制字符串int i = 0;int j = index - 1;while (i < j)char temp = binary[i];binary[i] = binary[j];binary[j] = temp;i++;j--;}//十进制转八进制void decimalToOctal(int decimal, char *octal)int index = 0;while (decimal > 0)octal[index++] = (decimal % 8) + '0';decimal /= 8;}octal[index] = '\0';//反转八进制字符串int i = 0;int j = index - 1;while (i < j)char temp = octal[i];octal[i] = octal[j];octal[j] = temp;i++;j--;}//十进制转十六进制void decimalToHexadecimal(int decimal, char *hexadecimal)int index = 0;while (decimal > 0)int remainder = decimal % 16;if (remainder < 10)hexadecimal[index++] = remainder + '0';} elsehexadecimal[index++] = remainder - 10 + 'A'; }decimal /= 16;}hexadecimal[index] = '\0';//反转十六进制字符串int i = 0;int j = index - 1;while (i < j)char temp = hexadecimal[i];hexadecimal[i] = hexadecimal[j]; hexadecimal[j] = temp;i++;j--;}void maichar input[100];int currentBase; // 当前进制int targetBase; // 目标进制printf("请输入一个数字:");scanf("%s", input);printf("请输入当前进制:");scanf("%d", ¤tBase);printf("请输入目标进制:");scanf("%d", &targetBase);printf("转换结果为:");switch (currentBase)case 2://二进制转十进制int decimal = binaryToDecimal(input); //十进制转目标进制switch (targetBase)case 8:char octal[100];decimalToOctal(decimal, octal);printf("%s\n", octal);break;}case 10:printf("%d\n", decimal);break;}case 16:char hexadecimal[100]; decimalToHexadecimal(decimal, hexadecimal); printf("%s\n", hexadecimal);break;}}break;case 8://八进制转十进制decimal = atoi(input);//十进制转目标进制switch (targetBase)case 2:char binary[100];decimalToBinary(decimal, binary);printf("%s\n", binary);break;}case 10:printf("%d\n", decimal);break;}case 16:char hexadecimal[100]; decimalToHexadecimal(decimal, hexadecimal); printf("%s\n", hexadecimal);break;}}break;case 10://十进制转目标进制switch (targetBase)case 2:char binary[100];decimalToBinary(atoi(input), binary); printf("%s\n", binary);break;}case 8:char octal[100];decimalToOctal(atoi(input), octal); printf("%s\n", octal);break;}case 16:char hexadecimal[100];decimalToHexadecimal(atoi(input), hexadecimal); printf("%s\n", hexadecimal);break;}}break;case 16://十六进制转十进制decimal = atoi(input);//十进制转目标进制switch (targetBase)case 2:char binary[100];decimalToBinary(decimal, binary);printf("%s\n", binary);break;}case 8:char octal[100];decimalToOctal(decimal, octal);printf("%s\n", octal);break;}case 10:printf("%d\n", decimal);break;}}break;}```【实验结果】1.运行程序后,程序会提示输入一个数字、当前进制和目标进制。
实验二数制转换类程序设计一.实验目的1.掌握各种常用数制的编码特点和相互转换的方法。
2.掌握逻辑运算类指令的使用方法。
3.掌握子程序的调用方法。
4.熟悉用仿真器调试应用程序的过程。
二.实验内容8031片内20H~24H单元放有五字节的压缩BCD码,编程实现下列操作:1.将上述BCD码转换成非压缩BCD码,放入片内30H开始的单元中;2.将30H单元开始的非压缩BCD码变成ASCII码,放入片内40H开始的单元中;3.将20H单元存放的压缩BCD码转换成对应的二进制数,放入片内50H开始的单元中;4.将片内50H单元开始的5字节二进制数转换成ASCII码,放入片内60H单元开始处。
三.编程提示1.要求分别用子程序实现各种数转换,以供调用。
2.8031片内20H~24H单元的压缩BCD码,可直接在内部数据存储器中给定。
3.观察30H~6FH数据区,以了解程序运行过程。
四.参考程序流程图开始主程序1.将BCD码转换成非压缩BCD码:可以用除法,或用分别取高低位的方式;2.将非压缩BCD码变成ASSII码:加30H;3.将压缩BCD码转换成对应的二进制数:取出高位乘以10,加上低位;4.将二进制数转换成ASCII码:将二进制数除以10,得到商和余数,分别转换为ASCII,注意大于9的数的转换。
MOV 20H,#12HMOV 21H,#30HMOV 22H,#56HMOV 23H,#78HMOV 24H,#99H1.在DATA区查看。
五、实验C语言程序#include<reg51.h>#define uchar unsigned charuchar i,count;uchar data *point1,*point2;uchar data table[5] _at_ 0x20;void bcd_cbcd();void bcd_assii();void bcd_b();void b_assii();void main(){table[0]=0x12;table[1]=0x30;table[2]=0x56;table[3]=0x78;table[4]=0x99;count=5;point1=0x20;point2=0x30;bcd_cbcd();count=10;point1=0x30;point2=0x40;bcd_assii();count=5;point1=0x20;point2=0x50;bcd_b();count=5;point1=0x50;point2=0x60;b_assii();while(1){;}}void bcd_cbcd() //BCD码转换成非压缩BCD码{for(i=0;i<count;i++){*point2=*point1/16;point2++;*point2=*point1%16;point2++;point1++;}}void bcd_assii() //非压缩BCD码变成ASCII码{for(i=0;i<count;i++){*point2=*point1+0x30;point1++;point2++;}}void bcd_b() //压缩BCD码转换成对应的二进制数{for(i=0;i<count;i++){*point2=(*point1/16)*10+*point1%16;point1++;point2++;}}void b_assii() //二进制数转换成ASCII码{for(i=0;i<count;i++){if(*point1/10<10)*point2=*point1/10+0x30;else*point2=*point1/10+0x37;point2++;if(*point1%10<10)*point2=*point1%10+0x30;else*point2=*point1/10+0x37;point2++;point1++;}}。
软件实验2 数制与转换实验1.实验目的1)了解微机系统中常用数制与代码的表示方法;2)了解计算机中各种代码的转换方法;3)掌握分支、循环指令的应用及其程序的编写方法。
2.预习要求1)理解十进制、二进制、十六进制的数制及表示方法;2)理解BCD码、ASCII码及编码方式;3)了解ASCII、BCD码数、十六进制数相互间的转换方法;4)预习本节实验内容,编写实验程序。
3.实验说明微机系统常用的数制与编码:1)二进制数(Binary)二进制只有0 、1共2个数字符号;其基是“2”,即“逢2进1”。
二进制数的后缀是B。
2)十进制数(Decimal)十进制数有0、1、2、3、4、5、6、7、8、9共10个符号,其基是“10”,即“逢10进1”。
十进制数的后缀是D,但通常可以省略。
3)十六进制(Hexadecimal)计算机系统能处理的是二进制数,但是对于二进制数当其位数较多时,书写和记忆都很不方便。
因此,通常用十六进制来表示二进制数。
十六进制有0、1、2、3、4、5、6、7、8、9 、A、B、C、D、E、F共16个数字符号,其基是“16”,即“逢16进1”。
其中A-F相当于十进制数的10~15。
十六进制数的后缀是H。
各数制的作用:•十进制是人们最熟悉、方便使用的数制;•二进制是计算机使用和方便硬件实现计算的数制;•十六进制与二进制的转换十分方便,其作用仅仅是用来简化和方便二进制的书写和阅读。
4)BCD码(Binary-Coded Decimal)BCD 码是用二进制编码的十进制数。
这种编码用4位二进制数表示1位十进制数(0~9),BCD码使二进制和十进制之间的转换得以快捷进行。
BCD 有两种形式,压缩BCD 码和非压缩BCD 码。
非压缩的BCD 码用8位二进制数表示一个十进制数位,如8的BCD码是00001000B,其中低4位是BCD 码,高4位是0;压缩BCD 码是用4位二进制数表示1位十进制数,如1568H是双字节的压缩BCD码,才能够最低位开始每4位二进制表示1位十进制数,分别表示个位、十位、百位、千位,更多位数依此类推。
实验二、数制转换一、实验目的1.掌握堆栈的存储方式和基本操作。
2.掌握堆栈后进先出运算原则在解决实际问题中的应用。
3.掌握使用栈的原理来解决数制转换问题。
二、实验内容利用栈结构,编写程序将十进制数转换成二进制数或八进制数。
提示:十进制数值转换成二进制使用辗转相除法将一个十进制数值转换成二进制数值。
即用该十进制数值除以2,并保留其余数;重复此操作,直到该十进制数值为0为止。
最后将所有的余数反向输出就是所对应的二进制数值。
十进制数值转换成八进制算法类似。
转换算法要求用一个函数完成。
顺序栈的基本操作的代码可参考如下:typedef struct{DataType stack[MaxStackSize];int top;} SeqStack;void StackInitiate(SeqStack *S) /*初始化顺序堆栈S*/{ S->top = 0; /*定义初始栈顶下标值*/}int StackNotEmpty(SeqStack S)/*判顺序堆栈S非空否,非空则返回1,否则返回0*/{ if(S.top <= 0) return 0;else return 1;}int StackPush(SeqStack *S, DataType x)/*把数据元素值x压入顺序堆栈S,入栈成功则返回1,否则返回0 */{ if(S->top >= MaxStackSize){ printf("堆栈已满无法插入! \n");return 0;}else{ S->stack[S->top] = x;S->top ++;return 1;}}int StackPop(SeqStack *S, DataType *d)/*弹出顺序堆栈S的栈顶数据元素值到参数d ,出栈成功则返回1,否则返回0*/ { if(S->top <= 0)printf("堆栈已空无数据元素出栈! \n");return 0;}else{S->top --;*d = S->stack[S->top];return 1;}}int StackTop(SeqStack S, DataType *d)/*取顺序堆栈S的当前栈顶数据元素值到参数d ,成功则返回1,否则返回0*/ {if(S.top <= 0){ printf("堆栈已空! \n");return 0;}else{ *d = S.stack[S.top - 1];return 1;}}三、实验源代码#include <stdio.h>#include <stdlib.h>#define MAXSIZE 100typedef int DataType;typedef struct node{DataType data[MAXSIZE];int top;}SeqStack,*PSeqStack;typedef structDataType data[MAXSIZE];int front,rear;}SeqQueue,*PSeqQueue;PSeqStack Init1(void){PSeqStack S;S=(PSeqStack)malloc(sizeof(SeqStack));if(S) S->top=-1;return S;}PSeqQueue Inin2(){PSeqQueue Q;Q=(PSeqQueue)malloc(sizeof(SeqQueue));if(Q){Q->front=0;Q->rear=0;}return Q;}int Empty1(PSeqStack S)if(S->top==-1)return(1);elsereturn 0;}int Empty2(PSeqQueue Q){if(Q && Q->front==Q->rear)return 1;elsereturn 0;}int Push(PSeqStack S,DataType x) {if(S->top==MAXSIZE-1)return 0;else{S->top++;S->data[S->top]=x;return 1;}int In(PSeqQueue Q, DataType x){if((Q->rear+1)%MAXSIZE==Q->front ) {printf("队满");return -1;}else{Q->rear=(Q->rear+1)%MAXSIZE;Q->data[Q->rear]=x;return 1;}}int Pop(PSeqStack S,DataType *x){if(Empty1(S))return 0;*x=S->data[S->top];printf("%d",*x);S->top--;return 1;int Out(PSeqQueue Q){if(Empty2(Q)){printf("队空");return -1;}else{Q->front=(Q->front+1)%MAXSIZE;printf("%d",Q->data[Q->front]);}return 0;}void transfrom1(PSeqStack S,int x,int t) {while(x!=0){Push(S,x%t);x=x/t;}while(S->top!=-1)Pop(S,&S->data[S->top]);}void transfrom2(PSeqQueue Q,float x,int t) {while(x!=0){x=x*t;In(Q,(int)x);x=x-(int)x;}while(!Empty2(Q))Out(Q);}int main(){PSeqStack S;PSeqQueue Q;int t;float x;S=Init1();Q=Inin2();printf("请输入要转换的数:");scanf("%f",&x);printf("请输入要转化成几进制:");scanf("%d",&t);printf("%f 转化成%d 进制为:",x,t);transfrom1(S,(int)x,t);if(x==(int)x){printf("\n");return 0;}printf(".");transfrom2(Q,x-(int)x,t);printf("\n");return 0;}四、实验结果。
实验2 数据转换实验一、实验内容:1.二进制数转换为十进制数2. ASCII码表示的十进制数转换为二进制数并显示3. 二进制数到十六进制数的转换4. ASCII码表示的十六进制数到二进制数的转换二、实验目的:1.复习利用masm.exe、link.exe等进行汇编、连接的方法及执行目的程序的方法。
2.复习汇编源程序结构。
3.复习数据转换的方法,进一步学习数据转换的意义、目的。
4.初步了解数据转换程序的构成。
了解在汇编中“二进制数、十进制数、十六进制数”的意义。
5.了解二进制到10、16进制;10、16进制到二进制转换程序设计方法。
三、实验源程序代码:1.二进制数转换为十进制数将D0起字单元中存放的16 位二进制数转换为十进制数,并将其ASCII码存入DI所指向的缓冲区BUF中,最后显示出来。
程序如下所示:DATA SEGMENTBUF DB 5 DUP(?) ;预留5单元空间D0 DW 2A5HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DA TAMOV DS,AXMOV DI,OFFSET D0 ;将DI指向BUF的下一单元MOV AX,D0 ;取要用来变十进制数的数到AXMOV BX,10 ;准备除以10MOV CX,0 ;准备统计余数的个数CHANGE10: DEC DI ;准备存放余数,往前倒存INC CXMOV DX,0 ;将除数的高16位(在DX中)清0,DX也将用来存放余数DIV BX ;DX,AX除以BX (BX=10)ADD DL,30H ;余数变为ASCII码值MOV BYTE PTR[DI],DL ;存储十进制数CMP AX,0 ;是否为0?JNZ CHANGE10 ;不为0转CHANGE10 CHANGE11: MOV DL,BYTE PTR[DI] ;取出存放在BUF中的十进制数到DL供显示MOV AH,2 ;显示1个字符INT 21HINC DILOOP CHANGE11MOV AH,4CH ;程序结束并返回DOSINT 21HCODE ENDSEND START(1)请改变第三行的3A5H改变为4A3FH、0ABH、0A37BH后分别说明运行结果,并做解释。
实验二数制及代码转换
1.实验目的
① 了解微机系统中的数制与代码表示方法;
② 掌握计算机中使用的各种代码转换方法;
③ 掌握实现分支、循环的指令及其程序的编写方法;
2.预习要求
① 理解十进制数、十六进制数的数制表示方法;
② 理解BCD码、ASCII码编码方式;
③ 如何实现十六进制数与BCD码之间的转换;
④ 如何实现ASCII码与BCD码之间的转换。
3.实验设备
计算机1台。
4.基础型实验内容
① 以下程序完成单字节的ASCII码到十六进制数转换,完成空白处程序填写,并在
Keil环境运行程序,观察寄存器及相应地址内存单元内容的变化。
RESULT EQU 30H
ORG 0000H
MOV A,#41H ;“A”的ASCII码
CLR C
SUBB A, ; 转换为十六进制值A
MOV RESULT,A
LJMP $
END
② 以下程序完成单字节的BCD码到十六进制数转换,,在Keil环境运行程序,观察寄
存器及相应地址内存单元内容的变化。
RESULT EQU 30H
ORG 0000H
MOV A,#23H
MOV R0,A
ANL A,#0F0H
SWAP A
MOV B,#0AH
MUL AB
MOV RESULT,A ;转换高位
MOV A,R0
MOV B,#0FH
ADD A,RESULT
MOV RESULT,A ;转换低位
SJMP $
END
③ 以下程序将单字节十六进制数A的值转换为十进制数,存放在30H~32H中,完成
空白处程序填写,并在Keil环境运行程序,观察寄存器及相应地址内存单元内容的变化。
RESULT EQU 30H
ORG 0000H
MOV A,#7BH
MOV B,#
DIV AB
MOV RESULT,A ;除以100得百位数
MOV A,B
MOV B,#
MOV RESULT+1,A ;除以10得十位数
MOV RESULT+2,B ;余数为个位数
SJMP $
END
5.设计型实验内容
① 设一串字母的ASCII存于30H起始的单元中,设计程序判断字母是否为大写字母,
是则将大写字母的ASCII字符转换成小写字母的ASCII字符,为小写则不转换。
② 将单字节十六进制数0D8H转换为十进制数,结果存放在内部RAM 30H~33H中。
,
③ 设计程序,将十六进制数614EH转换成ASCII码,使用单步、断点方式调试程序,
查看结果。
6.综合实验及思考
① 设计程序,将BCD码12345678H所代表的数值转换成十六进制数,使用单步、断
点方式调试程序,查看结果。
② 设计程序,将十六进制数BC614EH转换成BCD码,使用单步、断点方式调试程
序,查看结果。