实验一 两个多位十进制数相减实验

合集下载

进制转换_实验报告

进制转换_实验报告

一、实验目的1. 理解不同进制之间的转换原理。

2. 掌握二进制、八进制、十进制和十六进制之间的相互转换方法。

3. 培养实际操作能力和逻辑思维能力。

二、实验原理进制转换是计算机科学和数字电路中的基本概念。

常见的进制有二进制、八进制、十进制和十六进制。

它们之间的转换主要基于位权原理。

- 二进制:基数为2,只有0和1两个数字,每一位的值是2的幂次方。

- 八进制:基数为8,每一位的值是8的幂次方。

- 十进制:基数为10,每一位的值是10的幂次方。

- 十六进制:基数为16,每一位的值是16的幂次方,其中A-F表示10-15。

三、实验器材- 计算机- 文档编辑软件(如Microsoft Word)四、实验步骤1. 二进制转十进制- 将二进制数按照位权原理进行计算。

- 例如,二进制数1101转换为十进制:\(1 \times 2^3 + 1 \times 2^2 + 0 \times 2^1 + 1 \times 2^0 = 8 + 4 + 0 + 1 = 13\)。

2. 十进制转二进制- 使用除以2的方法,将十进制数不断除以2,记录余数。

- 将余数从下到上排列,得到二进制数。

- 例如,十进制数13转换为二进制:\(13 \div 2 = 6\) 余 1,\(6 \div 2 = 3\) 余 0,\(3 \div 2 = 1\) 余 1,\(1 \div 2 = 0\) 余 1,所以13的二进制为1101。

3. 八进制转十进制- 将八进制数按照位权原理进行计算。

- 例如,八进制数123转换为十进制:\(1 \times 8^2 + 2 \times 8^1 + 3 \times 8^0 = 64 + 16 + 3 = 83\)。

4. 十进制转八进制- 使用除以8的方法,将十进制数不断除以8,记录余数。

- 将余数从下到上排列,得到八进制数。

- 例如,十进制数83转换为八进制:\(83 \div 8 = 10\) 余 3,\(10 \div 8 = 1\) 余 2,\(1 \div 8 = 0\) 余 1,所以83的八进制为123。

十进制的加减教案

十进制的加减教案

十进制的加减教案教案:十进制的加减教学目标:1. 了解十进制数的加法和减法运算规则;2. 能够应用加法和减法运算规则进行十进制数的计算;3. 培养学生的数学思维,提高计算能力。

教学准备:1. 教师准备白板、黑板笔和教学课件;2. 学生准备笔、纸和计算器。

教学流程:引入:教师可以通过一个简单的问题引起学生的思考:“如果小明手里有3个苹果,小红手里有2个苹果,他们两个一共有多少个苹果?”带领学生回答这个问题,并引导他们通过数学符号进行计算。

教学内容1:十进制数的加法步骤1:教师通过白板或教学课件展示一个简单的加法算式,如321 + 123。

步骤2:解释加法运算的规则,即从右向左逐位相加,按照个位、十位、百位等顺序进行计算。

当某一位的和大于等于10时,需要进位到高一位。

步骤3:教师以一个示例进行讲解,详细解释每一步的计算过程。

可通过拆分数位、对齐数字等方式使学生更好地理解。

步骤4:教师设计一些简单的加法练习题,让学生进行计算,并进行讲解。

教学内容2:十进制数的减法步骤1:教师通过白板或教学课件展示一个简单的减法算式,如754 - 356。

步骤2:解释减法运算的规则,即从右向左逐位相减,按照个位、十位、百位等顺序进行计算。

当被减数的某一位小于减数的相应位时,需要向高位借位。

步骤3:教师以一个示例进行讲解,详细解释每一步的计算过程。

可通过拆分数位、对齐数字等方式使学生更好地理解。

步骤4:教师设计一些简单的减法练习题,让学生进行计算,并进行讲解。

巩固练习:教师为学生设计一些综合性的加减法计算题,让学生进行练习。

学生可以用纸和笔进行计算,并使用计算器进行核对答案。

教师可以随机抽几个学生上台展示自己的计算过程。

拓展练习:教师可以为学生出一些较难的十进制加减法题目,让学生挑战更高难度的计算。

鼓励学生自己思考解决方法,并进行交流讨论。

总结:教师对本节课所学的加法和减法运算规则进行总结。

请学生回答以下问题:1. 十进制数的加法运算规则是什么?2. 十进制数的减法运算规则是什么?3. 你理解了加法和减法运算规则后,觉得数学计算更容易了吗?作业布置:教师布置相应的课后作业,内容为一些加减法题目。

两个十进制按位与的计算结果

两个十进制按位与的计算结果

两个十进制按位与的计算结果
"十进制按位与的计算结果,探索数字之间的奇妙交织"
在数字世界中,我们经常需要对数字进行各种运算,其中按位与运算是一种常见的操作。

当我们将两个十进制数字进行按位与运算时,我们会发现其中蕴藏着许多奇妙的数学现象和逻辑推理。

假设我们有两个十进制数字,27和18。

它们的二进制表示分别为11011和10010。

当我们对它们进行按位与运算时,我们会得到结果10,即2的十进制表示。

这个结果背后的数学原理值得我们深入探索。

首先,按位与运算是一种逻辑运算,它要求两个数字的对应位同时为1时,结果位才为1。

这意味着按位与运算能够帮助我们发现数字之间的共同特征和交集。

在我们的例子中,27和18的二进制表示中,只有第二位上同时为1,因此按位与的结果为2。

其次,按位与运算还有许多实际应用。

在计算机领域,按位与运算常常用于掩码操作和位操作,帮助我们对数据进行精确的处理和筛选。

通过深入理解按位与运算的原理和特性,我们能够更好地
应用它们于实际问题中,提高计算效率和数据处理精度。

最后,按位与运算的结果也反映了数字之间的奇妙交织。

在我们的例子中,27和18这两个数字看似毫无关联,但通过按位与运算,我们发现了它们之间的共同之处,这种数学上的交织和联系让我们对数字世界有了更深刻的理解。

因此,十进制按位与的计算结果不仅仅是一种数学运算,更是数字世界中的奇妙探索。

通过深入研究和理解按位与运算的原理和应用,我们能够更好地理解数字之间的关系,提高计算效率,拓展数学思维,从而更好地应对现实生活和工作中的挑战。

实验一 两个多字节数的加减运算

实验一 两个多字节数的加减运算

实验一多字节数求和运算,字节拆分运算一.实验目的1.熟悉emu8086调试程序的使用。

2.编写两个4字节数的加法、减法运算程序,并运用emu8086进行调试。

3. 编写字节拆分运算程序,并运用emu8086进行调试二.实验目的1.学习数据传送和算术运算指令2.熟悉在PC机上调试程序的方法三.emu8086调试程序的使用1.启动emu8086a.在WINDOWS下双击emu8086图标,启动界面如图1所示,用户可以选择新建文本、程序实例、启动指南、近期文档。

2.新建文件单击图1中的“New”选项,软件会弹出如图2所示的选择界面。

选择empty workspace的选项,打开一个完全空的文档。

3. 编辑程序如图3所示为编辑程序界面。

该编辑界面集文档编辑、指令编译、程序加载、系统工具、在线帮助为一体。

编写完程序后,用户只需单击工具栏上的“emulate”按钮即可仿真运行程序。

4.仿真运行当用户将程序加载到仿真器后,会同时打开仿真器界面和源程序界面,用户在仿真器界面中也可以同时看到源代码和编译后的机器码。

点击的任意一条源程序指令,则对应的机器代码显示为被选显示状态,与此同时,上面的代码指针也会相应变化。

用户也可以通过这种操作了解,数据段和堆栈段中各变量或数据在存储器中的情况。

用户可以利用工具栏中的“single step”按钮进行单步跟踪调试,以便仔细观察各寄存器、存储器、变量、标记位等情况,这对于程序初始调试时十分有用;当程序调试完毕,或需要连续运行观察时,则可以使用“run”按钮;当希望返回上一步操作时,则可以使用“step back”按钮;若单击“reload”按钮,则仿真器会重新加载程序,并将指令指针指向程序的第一条指令;您也可以利用“load”按钮,从您保存的文件夹中加载其它程序。

用户除使用上述工具栏中的按钮进行仿真调试外,还可以利用其菜单中的其它功能进行更高级的调试和设置。

四.多字节加法要求:在当前的数据段内(段基址寄存器DS)的偏移地址为1000H处定义4各字节的被加数78H、56H、34H、12H(即被加数为12345678H);在偏移地址2000H处定义4字节加数12H、34H、56H、78H(即加数为78563412H)程序流程:程序清单:MOV SI,1000H ;置被加数指针MOV DI,2000H ;置加数指针MOV CX,4 ;数据个数CLC ;清进位标志AGAIN: MOV AL,[SI] ;取被加数ADC AL,[DI] ;加加数MOV [SI],AL ;和送回至加数INC SI ;修改数据指针INC DILOOP AGAIN ;记数—1=0?五. 拆分字符拆字10051H程序:MOV AX,1000HMOV DS,AX ;数据段基址DS=1000HMOV SI,50H ;需拆字的指针SI=50HMOV AL,[SI] ;取字节给ALAND AL,0FH ;屏蔽高4位MOV [SI+1],AL ;得到的数据存入10051MOV AL,[SI] ;再取出需拆字的字节MOV CL,4SHR AL,CL ;逻辑右移4次,高4位补0MOV [SI+2],AL ;存入10052单元五.实验内容(实验程序及结果写在练习本上)。

8086实验指导书

8086实验指导书

频率 300KHz 8088
AEDK88ET
与PC机连
ADC0809
8279
VCC GND
8259 蜂呜器 8位开关
8251 8253 62256
39
I/O译码电路
40
第四章 硬件接口实验
41

实验一
一、实验要求
双色灯实验
编写程序,以8255为输出口,控制四个双色灯按红、绿、黄的要求发光。
二、实验目的
35
8. 实验仪必须如下显示才算加载成功
只有显示8688 2.1 才算加载成功
36
9.如何知道程序是不是处在执行状态,可观察如下几个位 置:

交替闪烁

交替闪烁
37
10.如何中止程序的执行
1.中止执行程 序按HALT
2 .恢复初始 状态按RST
38
电位器 译码器地址 8位LED 电源开关
交通灯 DAC0832 8255
26
主程序 调用inword 调用sort BUFF→SI [SI]→AL 调用display SI+1
Display子程序 AL/10→AL,AH AL+30H→AL AH+30H→AH AH→DH AH=2 调用 INT21H显示 显示空格 CX-1 CX=0? 结束
27
A
DH → AL
AH=2调用 INT21H显示 RET
23
实验二 从键盘输入并换
一. 实验要求 从键盘输入5个有符号2位十进制数,将它转换成有符号二进制数, 将结果送入内存中buff开始的单元中。 二. 实验目的 掌握键盘接受数据的方法,码制转换。 三. 实验程序框图 算法: ①符号字符串→标识符MINU。若为负, MINU=1; ②数字字符(31H~39H)→一位十进制数(0~9)a0,a1,a2… ③十进制数转换成十六进制数: 十六进制数=a2x100+a1x10+a0 =(a2x10+a1) x10+a0 ④ 转换后查符号,如果是负数,取补 码制转换部分流程图: 24

两个多位十进制数相加实验

两个多位十进制数相加实验

实验一两个多位十进制数相加实验一、实验目的1.熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程。

2.掌握数据传送、算术运算、BCD码调整和循环指令的用法,掌握字符显示的方法。

3.熟悉和掌握用DEBUG调试程序的方法。

二、实验内容及要求1.将两个5位十进制数相加,要求被加数(本题选47193)和加数(本题选28056)均以ASCII码形式各自顺序存放在以DATAl和DATA2为首的5个内存单元中(低位在前),结果送回以DATA3为首的5个内存单元中(低位在前),并显示相加的结果。

2.如果考虑可能产生的进位,则要显示完整的结果,程序如何修改?3.应该Masm for Windows 集成实验环境调试运行并讲解程序,并用屏幕录像软件录制全过程,全程开启摄像头,以MP4G格式上传,完成实验报告的书写。

三、实验程序和结果DATA SEGMENT ;定义数据段DATA1 DB 33H,39H,31H,37H,34H ;被加数DATA2 DB 36H,35H,30H,38H,32H ;加数DATA3 DB 5 DUP(?) ;定义五个空子节DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA ;表明程序代码段与段地址之间的关系START: MOV AX,DATAMOV DS,AX ;将段地址送入段地址寄存器MOV CX,5 ;循环控制次数MOV SI,0CLC ;清除CF位NEXT: MOV AL,DATA1[SI]ADC AL,DATA2[SI] ;从低位开始进行带进位/借位的加法运算AAA ;转换成非压缩BCD码,低位存AL,高位存AHMOV DATA3[SI],AL ;将AL中的内容存入SI所在地址INC SILOOP NEXTMOV SI,5DISP: ADD DATA3[SI-1],30H ;将16进制数转换为ASCII码表示 MOV DL,DATA3[SI-1]MOV AH,2INT 21HDEC SI ;偏移地址自减JNZ DISPMOV AH,4CHINT 21H ;终断调用CODE ENDS ;结束程序代码段END START(页面不足请附页)四、实验总结和体会通过本次实验我对汇编有了更加具体的认识,也明白了汇编中各个寄存器的作用及寄存器间是怎样联系的,也初步明白了什么是断地址,什么是堆栈,以及汇编的基本结构和循环结构的基本运用,但是我了解的只是初步的,汇编中还有很多我不明白和不了解的地方,最重要的是汇编语句掌握不牢固,不能很快的知道一些专用的汇编语句的意义,这方面还是比较薄弱的,还需要在今后的实验和学习中不断的学习和练习。

综合课程设计——两位十进制数加法实验报告DOC

综合课程设计——两位十进制数加法实验报告DOC

标准实验报告学生姓名:指导教师:一、实验室名称:二、实验项目名称:综合课程设计——两位十进制数加减法的实现三、实验原理:1、FPGA的矩阵键盘开发板上设计了行列式矩阵编码键盘,规模为4*4,可作为外部输入。

其对应管脚分布如下:2、自由按键电路KEY1 对应P102,KEY2 对应P101。

3、拨码开关板上设计了一组8 位的拨码开关,ON为低电平,OFF为高电平。

拨码开关可供用户输入一些高低电平。

4、键盘扫描及数码显示对键盘的扫描分为三步,首先检测由于没有按键按下,然后在有按键按下的情况下,先进行行扫描找出对应按键是哪行按下,接着是对应的列扫描最终确定是哪一个按键。

给对应的按键赋上预先设定的值连接到数码管便能控制数码管显示。

我们需要如下几个信号来实现编写这一部分程序:key_code,用来控制数码管显示相应的值;row,用来控制行扫描;column,用来控制列扫描。

要利用8个数码管显示8个不同的数字,由于此为动态显示,送到每一段的值都一样,利用显示使能en,来控制亮灭,同时提高显示时钟频率,可以实现8位数码管的不同值显示。

5、去抖利用普通的CASE语句编写的程序会出现按键按下值会一直递增的现象,我们需要一个优化的能够实现对长按下的键只记一次。

需要重新自己设定一个去抖参数。

个人思想如下:设定去抖参数qudou,当没有按键按下时其自动置为0,在检测按键时如果同时检测都qudou=0才做对应键值加1的操作且同时把去抖参数置为1;如此便能够实现。

6、两位十进制加减法实现原理加数和被加数的输入由矩阵键盘扫描完成,具体实现是,利用状态机,一个状态来进行加数的输入然后跳转到另一状态,进行被加数的输入,两个数输入完成后,下一状态为显示结果。

同时需要一位来控制是做加法还是减法。

状态机设计,利用VHDL设计有限状态机分为两个定义,三个进程。

两个定义分别用来定义状态变量以及状态机的状态;三个进程分别用来描述状态寄存器状态,状态转移进程以及状态输出。

微机实验:两个多位十进制数相加的实验

微机实验:两个多位十进制数相加的实验

实验一、两个多位十进制数相加的实验1、实验目的(1).学习数据传送和算术运算指令的用法。

(2).熟悉在PC机上建立、汇编、链接、调试和运行8088汇编语言程序的过程。

2、实验内容将两个多位十进制数相加。

要求被加数均以ASCII码形式各自顺序存放在以DATAl和DATA2为首的5个内存单元中(低位在前),结果送回DATAl处。

3、程序框图4、参考程序:DATAS SEGMENTDAT1 DB 5 DUP (0)DAT2 DB 5 DUP (0)DAT3 DB 6 DUP(0)JH DB'+','$'HX DB'_______','$';此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXMOV DL,20H; 输入空格用以竖式对齐MOV AH,02HINT 21HLEA BX,DAT1MOV CX,5INADD1: MOV AH,01HINT 21HMOV [BX],ALINC BXLOOP INADD1MOV DL,0AH; 换行MOV AH,02HINT 21HMOV DL,0DHMOV AH,02HINT 21HLEA DX,JH; 输出加号MOV AH,09HINT 21HLEA SI,DAT2MOV CX,5INADD2: MOV AH,01HINT 21HMOV [SI],ALINC SILOOP INADD2MOV DL,0AH;换行MOV AH,02HINT 21HMOV DL,0DHMOV AH,02HINT 21HLEA DX,HX; 输出横线MOV AH,09HINT 21HMOV DL,0AH;换行MOV AH,02HINT 21HMOV DL,0DHMOV AH,02HINT 21H;以下计算结果LEA BX,DAT1+4LEA SI,DAT2+4LEA DI,DAT3+5MOV CX,5CLC ;清除CF标志位L1: MOV AL,[BX]ADC AL,[SI]AAAPUSHFOR AL,30H; 将AL转换为ASCII码POPFMOV [DI],ALDEC DIDEC BXDEC SILOOP L1MOV CL,6;6位循环6次JNC OUT1;没有进位直接输出MOV byte ptr [DI],31H;有进位给最高位赋1 ;以下输出显示OUT1:MOV DL,[DI]INC DIMOV AH,02HINT 21HLOOP OUT1MOV AH,4CHINT 21HCODES ENDSEND START。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一两个多位十进制数相减实验
一、实验要求:将两个多位十进制数相减,要求被减数,减数均以ASCII码形式按顺序存放在以DATAI
和DATA2为首的5个内存单元中(低位在前),结果送回DATAI处。

二、实验目的:1.学习数据传送和算术运算指令的用法。

2.熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。

三、实验程序框图:
开始
显示减数和被减数
被减数和减数转换成十六进制数
设置计数值
消除最低进位数
制进位减
结果送被减数区
调整偏移量
计数值-1=10
结果转换成ASCII码字符串
显示结果
结果
四、实验程序:
DA TA SEGMENT
DA TA1 DB 33H,39H,31H,37H,38H ;第一个数据(作为被减数)DA TA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为减数)MES1 DB '-','$'
MES2 DB '=','$'
DA TA ENDS
STACK SEGMENT ;堆栈段
STA DB 20 DUP(0)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DA TA
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV SI,OFFSET DA TA1
MOV BX,05
CALL DISPL ;显示被减数
MOV AH,09H
LEA DX,MES1
INT 21H
MOV SI,OFFSET DATA2
MOV BX,05 ;显示减数
CALL DISPL
MOV AH,09H
LEA DX,MES2
INT 21H
MOV SI,OFFSET DA TA1
MOV DI,OFFSET DATA2
CALL SUBA ;减法运算
MOV SI,OFFSET DATA1
MOV BX,05 ;显示结果
CALL DISPL
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
INT 21H
MOV AX,4C00H
INT 21H
DISPL PROC NEAR ;显示子功能
DSI: MOV AH,02
MOV DL,[SI+BX-1] ;显示字符串中一字符
INT 21H
DEC BX ;修改偏移量
JNZ DSI
RET
DISPL ENDP
SUBA PROC NEAR
MOV DX,SI
MOV BP,DI
MOV BX,05
SU1: SUB BYTE PTR[SI+BX-1],30H
SUB BYTE PTR[DI+BX-1],30H
DEC BX ;将ASCII 码表示的数字串
JNZ SU1 ;转化为十六进制的数字串
MOV SI,DX
MOV DI,BP
MOV CX,05 ;包括进位,共5位
CLC ;清进单位
SU2: MOV AL,[SI]
MOV BL,[DI]
SBB AL,BL ;带进位相减
AAS ;非组合BCD码的减法调整
MOV [SI],AL ;结果送被减数区
INC SI
INC DI ;指向下一位
LOOP SU2 ;循环
MOV SI,DX
MOV DI,BP
MOV BX,05
SU3: ADD BYTE PTR [SI+BX-1],30H
ADD BYTE PTR [DI+BX-1],30H
DEC BX ;十六进制的数字串转化ASCII码表示的数字串
JNZ SU3
RET
SUBA ENDP
CODE ENDS
END START。

相关文档
最新文档