当前位置:文档之家› 实验二 算术逻辑运算及移位操作

实验二 算术逻辑运算及移位操作

实验二算术逻辑运算及移位操作

一、实验目的

1.熟悉算术逻辑运算指令和移位指令的功能。

2.了解标志寄存器各标志位的意义和指令执行对它的影响。

二、实验预习要求

1.复习8086指令系统中的算术逻辑类指令和移位指令。2.按照题目要求在实验前编写好实验中的程序段。

三、实验任务

1.实验程序段及结果表格如表:

2.用BX 寄存器作为地址指针,从BX 所指的内存单元(0010H)开始连续存入(10H 、04H 、30H),接着计算内存单元中的这三个数之和,和放在单元中,再求出这三个数之积,积放0014单元中。写出完成此功能的程

3.写出完成下述功能的程序段。上机验证你写出的程序段,程序运行的最(AX)=

(1) 传送15H 到AL 寄存器; (2) 再将AL 的内容乘以2;

(3) 接着传送15H 到BL 寄存器; (4) 最后把AL 的内容乘以BL 的内容。

4

商=

(1) 传送数据2058H 到DS:1000H 单元中,数据12H 到DS:1002H 单元中; (2) 把DS:1000H 单元中的数据传送到AX 寄存器; (3) 把AX 寄存器的内容算术右移二位;

(4) 再把AX

寄存器的内容除以DS:1002H 字节单元中的数; (5) 最后把商存入字节单元DS:1003H 中。

5.下面的程序段用来清除数据段中从偏移地址0010H 开始的12元的内容(即将零送到这些存储单元中去)。

(1) 将第4条比较指令语句填写完整(划线处)。 MOV SI ,0010H NEXT: MOV WORD PTR[SI],0 ADD SI ,2

CMP SI ,答案 22H (或者20H )

JNE NEXT

HLT

(2) 假定要按高地址到低地址的顺序进行清除操作(高地址从0020H 开始),

则上述程序段应如何修改

上机验证以上两个程序段并检查存储单元的内容是否按要求进行了改

变。

6. 输入并运行表中的程序段,把结果填入表右边的空格中,并分析结果,说明本程序段的功能是什么。

四、实验报告要求

1.整理出完整的实验程序段和运行结果。

2.回答题目中的问题。

3.简要说明ADD、SUB、AND、OR指令对标志位的影响。

4.简要说明一般移位指令与循环移位指令之间的主要区别。

第二次 算数逻辑位运算指令编程设计2014秋

实验二算数运算指令编程设计 一、实验目的 1、掌握算术运算指令及其应用。 2、进一步掌握汇编语言设计和调试方法。 3、掌握观察窗口的使用方法。 4、学会给存储单元赋初值的方法。 二、实验内容 1、求两个无符号数求和及差; 2、求两个带符号数求和及差; 3、求两个压缩的BCD码数的和及差。 三、实验步骤 1.分别用单步和连续运行方式,调试上述各个程序; 2.在观察窗口中观察结果。 四、实验程序清单 1、计算下面各式中两个无符号数的和及差,观察A、CY,32H、31H、30H的变化,记录运算结果,并求出结果的真值。 (1)计算200+200 (2)计算 36589+46542 (3)计算 100-200 (4)计算 36589-16542 1)加法的参考程序: (1)计算两个单字节数的和的参考程序: ORG 0000H AJMP 0050H ORG 0050H MAIN: MOV A,#200 ADD A,#200 SJMP $ END (2)计算两个双字节数的和的参考程序: ORG 0000H AJMP 0060H ORG 0060H MAIN: MOV A,#low(36589) ADD A,# low(46542) MOV 30H,A MOV A,#HIGH (36589) ADDC A,# HIGH (46542) MOV 31H,A MOV A,#0 ADDC A,#0 MOV 32H,A SJMP $ END 2)减法的参考程序

(1)两个单字节数的减法程序 ORG 0000H AJMP 0070H ORG 0070H MAIN: CLR C MOV A,#100 SUBB A,#200 SJMP $ END (2)两个双字节数的减法程序 ORG 0000H AJMP 0080H ORG 0080H MAIN: CLR C MOV A,#low(36589) SUBB A,# low(16542) MOV 30H,A MOV A,#HIGH (36589) SUBB A,# HIGH (16542) MOV 31H,A MOV A,#0 SUBB A,#0 MOV 32H,A SJMP $ END 2、计算下面各式中两个带符号数的和及差,观察OV和A及30H和31H单元,并记录运算结果,并求出结果的真值。 (1)计算 56+78 自行设计程序。 (2)计算 120+120,正溢出扩大字节重算; 参考程序: ORG 0000H AJMP 0090H ORG 0090H MAIN: MOV A,#120 ADD A,#120 ;观察OV=1,正溢出 MOV 30H,A MOV A,#00H ADDC A,#00H ;观察OV=0,不溢出 MOV 31H,A SJMP $ END (3)计算 -56-78 自行设计程序。 (4)计算 -120-123,负溢出后扩大字节重算;

实验二 算术逻辑运算及移位操作

实验二算术逻辑运算及移位操作 一.实验任务 1.实验程序段及结果表格如表:

分析: 程序段1: MOV AX, 1018H ;AX←1018H MOV SI, 230AH ;SI←230AH ADD AX, SI ;AX=3322H,低8位为00100010B,1的个数 ;为偶数,PF=1,同时D3向D4有进位发生,AF=1 ADD AL, 30H ;AX=3352H,低8位1个个数为奇数,PF=0 MOV DX, 3FFH ;DX←3FFH ADD AX,BX ;AX=3352H, MOV [20H], 1000H ;[20H]←1000H ADD [20H], AX ;[20H]=4352H PUSH AX ; POP BX ;BX=3352H 程序段2: MOV AX, 0A0AH ;AX←0A0AH ADD AX, 0FFFFH ;AX=0A09H,最高位进位CF=1,低8位1的

;个数为偶数PF=1;D3向D4进位AF=1 MOV CX, 0FF00H ;CX←0FF00H ADC AX, CX ;AX=090AH,最高位进位CF=1,低8位1的个 ;数为偶数PF=1 SUB AX, AX ;AX=0,运算结果为零ZF=1 INC AX ;AX=1H OR CX, 0FFH ;CX=0FFFFH,最高位为1,ZF=1,低8位1的 ;个数为偶数PF=1 AND CX, 0F0FH ;CX=0F0FH,低8位1的个数为偶数PF=1 MOV [10H], CX ;[10H]←0F0FH 程序段3: MOV BL, 25H ;BL←25H MOV BYTE PTR[10H], 4 ;[10H]←04H MOV AL, [10H] ;AL←04H MUL BL ;AL=94H 程序段4: MOV WORD PTR[10H],80H ;[10H]←0080H MOV BL, 4 ;BL←04H MOV AX, [10H] ;AX←0080H DIV BL ;AX=0020H 程序段5: MOV AX, 0 ;AX←0000H DEC AX ;AX=0FFFFH,最高位为1,SF=1,低8 ;位1的个数为偶数PF=1,最高位向前、 ;D3向D4有借位,CF=1,AF=1 ADD AX, 3FFFH ;AX=3FFEH,D3向D4有进位,AF=1 ADD AX, AX ;AX=7FFCH,低8位1的个数为偶数,PF=1 ;D3向D4有进位,AF=1 NOT AX ;AX=8003H SUB AX, 3 ;AX=8000H,低8位1的个数为偶数,PF=1

微机原理实验指导书

实验一数据传送 实验目的: 1.熟悉8086指令系统的数据传送指令及8086的寻址方式。 2.利用TurboDebugger调试工具来调试汇编语言程序。 实验任务: 1.通过下述程序段的输入和执行来熟悉TurboDebugger的使用,并通过显示器屏幕观察程序的执行情况。练习程序段如下: MOVBL,08H MOVCL,BL MOVAX,03FFH MOVBX,AX MOVDS:[0020H],BX 2.用以下程序段将一组数据压入(PUSH)堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。压栈程序段如下: MOVAX,0102H MOVBX,0304H MOVCX,0506H MOVDX,0708H PUSHAX PUSHBX PUSHCX PUSHDX 出栈程序段请自行编写(用不同的出栈顺序)。

3.指出下列指令的错误并加以改正,上机验证之。 (1)MOV[BX],[SI] (2)MOVAH,BX (3)MOVAX,[SI][DI] (4)MOVBYTEPTR[BX],2000H (5)MOVCS,AX (6)MOVDS,2000H 4.设置各寄存器及存储单元的内容如下: (BX)=0010H,(SI)=0001H (10010H)=12H,(10011H)=34H,(10012H)=56H,(10013H)=78H (10120H)=0ABH,(10121H)=0CDH,(10122H)=0EFH 说明下列各条指令执行完后AX寄存器中的内容,并上机验证。 (1)MOVAX,1200H (2)MOVAX,BX (3)MOVAX,[0120H] (4)MOVAX,[BX] (5)MOVAX,0110H[BX] (6)MOVAX,[BX][SI] (7)MOVAX,0110H[BX][SI] 5.将DS:1000H字节存储单元中的内容送到DS:2020H单元中存放。试分 别用8086的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。 6.设AX寄存器中的内容为1111H,BX寄存器中的内容为2222H,DS: 0010H单元中的内容为3333H。将AX寄存器中的内容与BX寄存器中的内容 交换,然后再将BX寄存器中的内容与DS:0010H单元中的内容进行交换。试 编写程序段,并上机验证结果。

计算机组成原理实验报告说明

实验一运算器组成实验 一、实验目的 1、掌握运算器的组成及工作原理; 2、了解4位函数运算器74LS181的组合功能,熟悉运算器执行算术和逻辑操作的具体实现过程; 3、验证带进位控制的运算器功能。 二、实验设备 1、EL-JY系列计算机组成及系统结构实验系统一套 2、排线若干。 三、工作原理: 算术逻辑单元ALU是运算器的核心。集成电路74LS181是4位运算器,四片74LS181以并/串形式构成16位运算器。它可以对两个16位二进制数进行多种算术或逻辑运算,74LS181 有高电平和低电平两种工作方式,高电平方式采用原码输入输出,低电平方式采用反码输入输出,这里采用高电平方式。 三态门74LS244作为输出缓冲器由ALU-G信号控制,ALU-G 为“0”时,三态门开通,此时其输出等于其输入;ALU-G 为“1”时,三态门关闭,此时其输出呈高阻。 四片74LS273作为两个16数据暂存器,其控制信号分别为LDR1和LDR2,当LDR1和LDR2 为高电平有效时,在T4脉冲的前沿,总线上的数据被送入暂存器保存。 四、实验内容:

验证74LS181运算器的逻辑运算功能和算术运算功能。 五、实验步骤 1、按照实验指导说明书连接硬件系统; 2、启动实验软件,打开实验课题菜单,选中实验课题打开实验课题参数对话窗口: 1)、在数据总线上输入有效数据,按"Ldr1",数据送入暂存器1; 2)、在数据总线上输入有效数据,按"Ldr2",数据送入暂存器2; 3)、在S3...Ar上输入有效数据组合,按"ALU功能选择端",运算器按规定进行运算,运算结果送入数据缓冲器; 4)、按"ALU_G",运算结果送入数据总线。 5)、执行完后,按"回放",可对已执行的过程回看。 6)、回放结束后,按"继续"(继续按钮在点击回放后出现),进行下次数据输入。 六、实验结果

实验二 算术逻辑单元实验

实验二算术逻辑单元(ALU)的设计与实现 实验目的 1.认识算术逻辑单元的功能及意义 2.掌握算术逻辑单元的结构与实现 3.进一步熟练Modelsim、Vivado软件和Verilog硬件描述语言的使用 4.理解Digilent N4 DDR FPGA开发板上数码管显示原理 实验原理 1.ALU 算术逻辑单元(Arithmetic/Logic Unit , ALU)是现代计算机的核心部件之一。其内部由算术和逻辑操作部件组合而成,可以实现整数加、减等算术运算和与、或等逻辑运算。 一个典型的算术逻辑单元由两路N位输入、一路N位输出、一组功能选择信号和一些标志位(flag)组成。两路N位输入数据作为参与运算的两个操作数,输入到ALU中,通过改变功能选择信号,控制ALU对两操作数进行不同的算术或逻辑运算操作,并将N位的结果输出,与结果一同输出的还有运算产生的标志位,例如运算结果为零的标记信号Z(zero)与运算结果溢出的标记信号O(over)、进位标志C(CY)、符号位S(SF)等,如图2-1所示。 图2- 1ALU模块示意图 在本次实验中,我们把输入和输出的数据长度定为4位,数据输入命名为A、B,数据输出为F,功能控制信号输入为opcode,进位输入为C n,只产生结果为零的zero标志位。功能控制信号opcode的定义如表2-1所示。例如:opcode=0001,运算器实现加法运算。

2.数码管显示 关于N4 DDR开发板上数码管的显示原理,参见前面的实验准备部分内容。实验内容 1.基础实验。用实验调试软件验证ALU的功能,并操作分析、记录结果。 图2- 2 ALU虚拟实验示意图 (1)运算功能和控制信号 ①输入输出对于的开关指示灯分配如下: 输入信号A:SW(4-7) B:SW(3-0) Cn:SW8 opcode:SW(12-9) 输出信号F:LD(12-15) 标志位S :LD(3) Z LD(2) O: LD(1) C: LD(0) ②各种运算对应的控制信号及功能,如下表。

算术移位例题

算术移位例题 算术移位是计算机中常用的一种操作,其目的是将二进制数值在数值大小不变的前提下,向左或向右移动指定的位数。 算术移位分为逻辑左移、逻辑右移、算术左移和算术右移四种操作。 - 逻辑左移(Logical Left Shift):将二进制数值向左移动指定 的位数,右边多出来的位用0填充。 - 逻辑右移(Logical Right Shift):将二进制数值向右移动指 定的位数,左边多出来的位用0填充。 - 算术左移(Arithmetic Left Shift):将二进制数值向左移动 指定的位数,右边多出来的位丢弃,左边多出来位置用0填充。- 算术右移(Arithmetic Right Shift):将二进制数值向右移动 指定的位数,左边多出来的位丢弃,右边多出来的位用最高位的值(即符号位)填充。 算术移位常用于对二进制数进行乘法和除法运算,能够快速高效地进行数值的倍增或倍减。 下面以5位二进制数值10110为例,展示各种算术移位的操作步骤和计算结果。 1. 逻辑左移 逻辑左移1位:101100 逻辑左移2位:1011000 逻辑左移3位:10110000

... 逻辑左移n位:10110(0的个数与移动的位数一致) 2. 逻辑右移 逻辑右移1位:01011 逻辑右移2位:00101 逻辑右移3位:00010 ... 逻辑右移n位:00000(移动的位数大于等于数值的位数时,结果为0) 3. 算术左移 算术左移1位:01100 算术左移2位:11000 算术左移3位:10000 ... 算术左移n位:00000(移动的位数大于等于数值的位数时,结果为0) 4. 算术右移 算术右移1位:11011 算术右移2位:11101 算术右移3位:11110 ... 算术右移n位:11111(1的个数与移动的位数一致,符号位不变) 注意事项:

计算机组成原理运算器的实验报告

计算机组成原理运算器的实验报告 一.实验目的及要求 (1) 了解运算器的组成结构。 (2) 掌握运算器的工作原理。 二.实验模块及实验原理 本实验的原理如图1-1-1所示。 运算器内部含有三个独立运算部件,分别为算术、逻辑 和移位运算部件,要处理的数据存于暂存器A 和暂存器B ,三个部件同时接受来自 A 和B 的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如ARM),各部件对操作数进行何种运算由控制信号S3…S0和CN来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为ALU的输出。如果是影响进位的运算,还将置进位标志FC,在运算结果输出前,置ALU零标志。ALU中所有模块集成在一片CPLD 中。 逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,在此对这两个部件不再赘述。移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图1-1-2所示。图中显示的是一个4X4 的矩阵(系统中是一个8X8 的矩阵)。每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即: (1) 对于逻辑左移或逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输出分别相连, 而没有同任何输入相连的则输出连接0 。 (2) 对于循环右移功能,右移对角线同互补的左移对角线一起激活。例如,在4 位矩阵中使用‘右1 ’和‘左3 ’对角线来实现右循环 1 位。 (3) 对于未连接的输出位,移位时使用符号扩展或是 0 填 充,具体由相应的指令控制。使用另外的逻辑进行移位总量译码和符号判别。

运算器部件由一片CPLD 实现。ALU的输入和输出通过三态门74LS245 连到CPU 内总线上,另外还有指示灯标明进位标志FC和零标志FZ。请注意:实验箱上凡丝印标注有马蹄形标记‘’,表示这两根排针之间是连通的。图中除 T4和CLR ,其余信号均来自于 ALU单元的排线座,实验箱中所有单元的T1、T2、T3、T4都连接至控制总线单元的 T1、T2、T3、T4,CLR 都连接至 CON单元的CLR 按钮。T4由时序单元的 TS4 提供(时序单元的介绍见附录二),其余控制信号均由CON单元的二进制数据开关模拟给出。控制信号中除T4为脉冲信号外,其余均为电平信号,其中ALU_B为低有效,其余为高有效。 暂存器A 和暂存器B 的数据能在LED 灯上实时显示,原理如图1-1-3所示(以A0为例,其它相同)。进位标志 FC、零标志FZ和数据总线D7…D0的显示原理也是如此。 ALU和外围电路的连接如图1-1-4所示,图中的小方框代表排针座。 运算器的逻辑功能表如表1-1-1所示,其中 S3 S2 S1 S0 CN 为控制信号,FC为进位标志,FZ为运算器零标志,表中功能栏内的FC、FZ表示当前运算会影响到该标志。 三.实验步骤与结果 (1)按图1-1-5连接实验电路,并检查无误。图中将用户需 要连接的信号用圆圈标明(其它实验相同)。 (2) 将时序与操作台单元的开关KK2 置为‘单拍’档, 开关KK1 、KK3 置为‘运行’档。 (3) 打开电源开关,如果听到有‘嘀’报警声,说明有总线竞争现象,应立即关闭电源,重新检查接 线,直到错误排除。然后按动CON单元的CLR 按钮,将运算器的A、B 和FC、FZ清零。 (4) 用输入开关向暂存器A 置数。 ①拨动CON单元的SD27…SD20 数据开关,形成二进制数01100101 (或其它数值),数据显示亮为‘1 ’,灭为‘0 ’。 ②置LDA=1,LDB=0,连续按动时序单元的 ST 按钮,产生一个

单片机指令的逻辑运算与位操作技巧

单片机指令的逻辑运算与位操作技巧在单片机编程中,逻辑运算和位操作是非常常见的操作。通过逻辑 运算和位操作,我们可以对数据进行逻辑判断、位取反和位移等操作,极大地提高了程序的效率和灵活性。本文将介绍一些常用的单片机指 令的逻辑运算与位操作技巧。 一、逻辑运算技巧 1. 与运算 与运算是指将两个二进制数的对应位进行逻辑与运算,结果为1则 输出1,否则输出0。与运算常用于屏蔽和提取二进制数的某些位,可 以通过逻辑与运算将不需要的位屏蔽掉。例如,要将一个8位二进制 数的低4位置零保留高4位,可以使用与运算。 2. 或运算 或运算是指将两个二进制数的对应位进行逻辑或运算,结果为1则 输出1,否则输出0。或运算常用于将某些位设置为1,可以通过逻辑 或运算将需要的位设为1。例如,要将一个8位二进制数的低4位置1 保留高4位,可以使用或运算。 3. 非运算 非运算是指将一个二进制数的每一位取反,即1变为0,0变为1。 非运算常用于位的取反操作。例如,要将一个8位二进制数的低4位 取反,可以使用非运算。

4. 异或运算 异或运算是指将两个二进制数的对应位进行逻辑异或运算,结果为 1则输出1,否则输出0。异或运算常用于判断两个二进制数的对应位 是否相同。例如,可以通过异或运算判断一个8位二进制数的低4位 是否全为0。 二、位操作技巧 1. 位取反 位取反是指将一个二进制数的某些位取反,可以使用逻辑非运算实现。位取反常用于将某些位翻转,即1变为0,0变为1。例如,要将 一个8位二进制数的低4位取反,可以使用位取反操作。 2. 位与操作 位与操作是指将两个二进制数的对应位进行逻辑与运算,结果为1 则输出1,否则输出0。位与操作常用于屏蔽和提取二进制数的某些位。例如,要提取一个8位二进制数的低4位,可以使用位与操作。 3. 位或操作 位或操作是指将两个二进制数的对应位进行逻辑或运算,结果为1 则输出1,否则输出0。位或操作常用于将某些位设置为1。例如,要 将一个8位二进制数的低4位设置为1,可以使用位或操作。 4. 位移操作

二进制移位运算详解

二进制移位运算详解 移位运算是一种基本的算术运算,在计算机科学和电子工程中有着广泛的应用。移位运算包括左移和右移两种操作,分别对应于将一个数的二进制表示向左或向右移动指定的位数。 1. 左移操作 左移操作是将一个数的二进制表示向左移动指定的位数。例如,1010 左移2 位得到101000。左移操作相当于将原数乘以2 的移动位数次方。因此,1010 左移2 位等于1010 × 2^2 = 4040。左移操作可以用于实现数据的快速乘法操作,同时还可以用于数据的压缩和编码。 2. 右移操作 右移操作是将一个数的二进制表示向右移动指定的位数。例如,1010 右移2 位得到10。右移操作相当于将原数除以2 的移动位数次方。因此,1010 右移2 位等于1010 / 2^2 = 10。右移操作可以用于实现数据的快速除法操作,同时还可以用于数据的加密和解密。

3. 移位操作的用途 移位运算在计算机科学和电子工程中有着广泛的应用。例如,在计算机图形学中,移位运算被用于实现图像的缩放和旋转;在密码学中,移位运算被用于实现数据的加密和解密;在数字信号处理中,移位运算被用于实现信号的滤波和变换。 4. 如何实现移位操作 在计算机中,移位操作可以通过逻辑运算来实现。对于左移操作,可以通过将原数乘以2 的移动位数次方来实现;对于右移操作,可以通过将原数除以2 的移动位数次方来实现。具体实现方法可以参考相关的编程语言文档和教程。 5. 移位操作的注意事项 在进行移位操作时需要注意以下几点:首先,在进行左移操作时要注意是否会溢出,如果会溢出需要进行取模操作;其次,在进行右移操作时要注意是否会丢失数据位,如果会丢失数据位需要进行补零操作;最后,在进行移位操作时要注意保持数据类型的范围和精度,避免出现数据溢出或精度损失的问题。

运算器应用实验---算术逻辑运算实验

运算器应用实验---算术逻辑运算实验 运算器是计算机进行数据处理的核心部件。它主要由算术逻辑运算部件ALU、累加器、暂存器、通用寄存器堆、移位器、进位控制电路及其结果判断电路等组成。运算方法的基本思想是:各种复杂的运算处理最终可分解为四则运算和基本的逻辑运算,而四则运算的核心是加法运算。通过补码运算可以化减为加,减法运算与移位运算配合可以实现乘除运算,阶码运算与尾数的运算组合可以实现浮点运算。 算术逻辑运算实验 一、实验目的 1.了解运算器的组成结构。 2.掌握运算器的工作原理。 3.学习运算器的设计方法。 4.掌握简单运算器的数据传送通路。 5.验证运算功能发生器74LS181 的组合功能。 二、实验设备 TDN-CM+教学实验系统一套。。 三、实验原理 实验中所用的运算器数据通路图如图3.1-1。图中所示的是由两片74LS181 芯片以并/串形式构成的8 位字长的运算器。右方为低4 位运算芯片,左方为高4 位运算芯片。低位芯片的进位输出端Cn+4 与高位芯片的进位输入端Cn 相连,使低4 位运算产生的进位送进高4位运算中。低位芯片的进位输入端Cn 可与外来进位相连,高位芯片的进位输出引至外部。两个芯片的控制端S0~S3 和M 各自相连。 为进行双操作数运算,运算器的两个数据输入端分别由两个数据暂存器DR1、DR2(用锁存器74LS273 实现)来锁存数据。要将内总线上的数据锁存到DR1 或DR2 中,则锁存器74LS273 的控制端LDDR1 或LDDR2 须为高电平。当T4 脉冲来到的时候,总线上的数据就被锁存进DR1 或DR2 中了。 为控制运算器向内总线上输出运算结果,在其输出端连接了一个三态门(用74LS245 实现)。若要将运算结果输出到总线上,则要将三态门74LS245 的控制端ALU-B 置低电平。否则输出高阻态。 数据输入单元(实验板上印有INPUT DEVICE)用以给出参与运算的数据。其中,输入开关经过一个三态门(74LS245)和内总线相连,该三态门的控制信号为SW-B,取低电平时,开关上的数据则通过三态门而送入内总线中。 总线数据显示灯(在BUS UNIT 单元中)已与内总线相连,用来显示内总线上的数据。控制信号中除T4 为脉冲信号,其它均为电平信号。 由于实验电路中的时序信号均已连至“W/R UNIT”单元中的相应时序信号引

单片机指令的移位和旋转操作

单片机指令的移位和旋转操作在单片机编程中,移位和旋转操作是非常常见且重要的指令。它们在数据处理、位运算和逻辑运算等方面都起到了关键作用。本文将探讨单片机指令中的移位和旋转操作,介绍其用法和实际应用。 一、移位操作 移位操作是指将二进制数在其位上向左或向右移动的过程。单片机中常用的移位操作包括逻辑左移、逻辑右移、算术左移和算术右移。 1. 逻辑左移 逻辑左移是将二进制数的各位向左移动,移出的最左位舍弃,最右位补零。逻辑左移操作可通过将二进制数与一个左移位数相与实现。 例如,对于一个8位的二进制数A,逻辑左移一位的操作可以表示为 A << 1。 2. 逻辑右移 逻辑右移是将二进制数的各位向右移动,移出的最右位舍弃,最左位补零。逻辑右移操作可通过将二进制数与一个右移位数相与实现。 例如,对于一个8位的二进制数A,逻辑右移一位的操作可以表示为 A >> 1。 3. 算术左移

算术左移是将二进制数的各位向左移动,移出的最左位舍弃,最右位补零。算术左移操作可通过将二进制数与一个左移位数相与实现。 与逻辑左移相比,算术左移对于有符号数的处理稍有不同,它会保留符号位并进行移位。 4. 算术右移 算术右移是将二进制数的各位向右移动,移出的最右位舍弃,最左位保持符号位不变。算术右移操作可通过将二进制数与一个右移位数相与实现。 与逻辑右移相比,算术右移对于有符号数的处理稍有不同,它会保留符号位并进行移位。 二、旋转操作 旋转操作是指将二进制数在其位上向左或向右循环移动的过程。单片机中常用的旋转操作包括循环左移、循环右移、带进位循环左移和带进位循环右移。 1. 循环左移 循环左移是将二进制数的各位向左移动,并将最左位移出的位放置在最右位。循环左移操作可以通过使用逻辑左移和逻辑右移的组合实现。 例如,对于一个8位的二进制数A,循环左移一位的操作可以表示为 (A << 1) | (A >> 7)。

计算机组成的实验

、`` OP]、 ]][、实验一运算器──算术逻辑运算器实验 一实验目的 (1) 掌握算术逻辑运算单元(ALU)的工作原理; (2) 熟悉简单运算器的数据传送通路; (3) 验证4位运算功能发生器功能(74181)的组合功能。 二实验设备 TDN-CM++计算机组成原理教学实验系统一台,排线若干。 三实验原理

图1运算器数据通路 实验中所用到的运算器数据通路如图1所示。其中运算器由两片74181以并/串形式构成8位字长的ALU。运算器的输出经过一个三态门(74245)和数据总线相连,运算器的两个数据输入端分别由两个锁存器(74373)

锁存,锁存器的输入连接至数据总线,数据开关INPUT DEVICE用来给出参与运算的数据,并经过一个三态门(74245)和数据总线相连,数据显示灯“BUS UNIT”已和数据总线相连,用来显示数据总线内容。 图中已将用户需要连接的控制信号用圆圈标明(其他实验相同,不再说明),其中除T4为脉冲信号,其它均为电平信号。由于实验电路中的时序信号均已连至W/R UNIT的相应时序信号引出端,因此,在进行实验时,只需将W/R UNIT的T4接至STATE UNIT的微动开关KK2的输出端,按动微动开关,即可获得实验所需的单脉冲,而S3,S2,S1,S0,C n,LDDR1,LDDR2,ALU-B,SW-B各电平控制信号用SWITCH UNIT中的二进制数据开关来模拟,其中C n,ALU-B,SW-B为低电平控制有效,LDDR1,LDDR2为高电平有效。 四实验步骤 (1)按图2连接实验线路,仔细查线无误 后,接通电源。 (2)用二进制数码开关向DR1和DR2寄存

计算机组成原理与系统结构实验学生指导书

目录 实验一系统认识实验 (2) 实验二算术逻辑运算实验 (9) 实验三进位控制实验 (12) 实验四移位运算实验 (14) 实验五静态随机存储器实验 (15) 实验六总线控制器实验18 实验七微程序控制器实验 (21)

实验一系统认识实验 一、实验目的 1 .搭建并操作一个最基本的模型计算机。 2 .建立对计算机组成及其原理的基本认识. 二、实验设备 1.TDN-CM+或TDN-CM++教学实验系统一套。 2 .PC 微机一台。 三、实验原理 1.一台简单模型计算机的结构 为了更好地理解计算机的各组成部件是如何相互配合进行工作的,我们将设计一个最基本的模型计算机。根据前面小节的知识,我们将算术逻辑运算器、控制器、寄存器、内部总线等部件搭接起来构成一个CPU,然后再加上存储器、输入设备、输出设备即构成一台完整的模型计算机.其逻辑框图见图1.4—1。 其中ALU 为运算器、DR1、DR2 为工作暂存器、R0 为通用寄存器、AR 为地址寄存器、PC 为程序计数器、IR 为指令寄存器、TIME 为时序发生器、MEM 为程序存储器、INPUT 为输入设备、OUTPUT 为输出设备、MC 为微程序控制器. 2 .模型计算机的程序 本系统设计了四条指令,构成了此模型计算机的指令系统,即:

应用该指令系统可以编写一段反映计算机操作的指令序列,它们就构成了所谓的计算机程序,并将其以二进制存放在主存储器的连续的单元中。计算机通过连续运行该段程序,就可以解决各种复杂的计算或是控制问题. 3 .微程序Microprogram 为实现以上计算机程序的操作,控制器对应于每一条机器指令都需要进行一系列的微操作来完成该机器指令的操作。一个微操作则对应一条微指令.如果控制器采用最普遍使用的微程序控制器,则一条机器指令的操作就需要一系列微指令来完成.它们构成计算机的微程序并且是以二进制数的形式存放在控制存储器的存储单元中。与以上机器指令对应的微操作内容如表1。4-1 所示。 四、实验步骤 1.构造一台模型计算机 首先,参照图1。4—2,在教学实验系统中使用连接导线(排线)将模型计算机的各个部件连接在一起,构成一台完整的模型计算机。连接图中凡是标有小圆圈的连线都是需要连

计算机组成原理实验报告---8位算术逻辑运算实验

.. - - . word.zl- 计算机专业类课程 实 验 报 告 课程名称:计算机组成原理 学 院:信息与软件工程学院 专 业:软件工程 学生XX : 学 号: 指导教师: 日 期: 2012 年 12 月 15 日

电子科技大学 实验报告 一、实验名称:8位算术逻辑运算实验 二、实验学时:2 三、实验内容、目的和实验原理: 实验目的: 1.掌握算术逻辑运算器单元ALU〔74LS181〕的工作原理。 2.掌握模型机运算器的数据传送通路组成原理。 3.验证74LS181的组合功能。 4.按给定数据,完成实验指导书中的算术/逻辑运算。 实验内容: 使用模型机运算器,置入两个数据DR1=35,DR2=48,改变运算器的功能设定,观察运算器的输出,记录到实验表格中,将实验结果比照分析,得出结论。 实验原理:

.. - 1.运算器由两片74LS181以并/串形式构成8位字长的ALU。 2.运算器的输出经过一个三态门〔74LS245〕和数据总线相连。 3.运算器的两个数据输入端分别由两个锁存器〔74LS273〕锁存。 4.锁存器的输入连至数据总线,数据开关〔INPUT DEVICE〕用来给 出参与运算的数据,并经过一三态门〔74LS245〕和数据总线相连。 5.数据显示灯〔BUS UNIT〕已和数据总线相连,用来显示数据总线内 容。 实验器材〔设备、元器件〕:模型机运算器 四、实验步骤: 1. 仔细查看试验箱,按以下步骤连线 1〕ALUBUS连EXJ3 2) ALU01连BUS1 3) SJ2连UJ2 4) 跳线器J23上T4连SD 5) LDDR1,LDDR2,ALUB,SWB四个跳线器拨在左边 6) AR跳线器拨在左边,同时开关AR拨在“1〞电平 2. 核对线路,核对正确后接通电源 - . word.zl-

2021年计算机组成原理运算器实验报告

一. 试验目及要求 (1) 了解运算器组成结构。 (2) 掌握运算器工作原理。 二. 试验模块及试验原理 本试验原理如图1-1-1所表示。 运算器内部含有三个独立运算部件, 分别为算术、逻辑和移位运算部件,

要处理数据存于暂存器A 和暂存器B , 三个部件同时接收来自 A 和B 数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前, 如ARM), 各部件对操作数进行何种运算由控制信号 S3…S0和CN来决定, 任何时候, 多路选择开关只选择三部件中一个部件结果作为 ALU输出。假如是影响进位运算, 还将置进位标志 FC, 在运算结果输出前, 置 ALU零标志。ALU中全部模块集成在一片CPLD 中。 逻辑运算部件由逻辑门组成, 较为简单, 以后面又有专门算术运算部件设计试验, 在此对这两个部件不再赘述。移位运算采取是桶形移位器, 通常采取交叉开关矩阵来实现, 交叉开关原理如图1-1-2所表示。图中显示是一个 4X4 矩阵(系统中是一个 8X8 矩阵)。每一个输入都经过开关与一个输出相连, 把沿对角线开关导通, 就可实现移位功效, 即: (1) 对于逻辑左移或逻辑右移功效, 将一条对角线开关导通, 这将全部输入位与所使用输出分别相连, 而没有同任何输入相连则输出连接0 。 (2) 对于循环右移功效, 右移对角线同互补左移对角线一起激活。比如, 在 4 位矩阵中使用‘右1 ’和‘左 3 ’对角线来实现右循环 1 位。 (3) 对于未连接输出位, 移位时使用符号扩展或是 0 填充, 具体由对应指令控制。使用另外逻辑进行移位总量译码和符号判别。 运算器部件由一片CPLD 实现。ALU输入和输出经过三态门74LS245 连到CPU 内总线上, 另外还有指示灯标明进位标志FC和零标志FZ。请注意: 试验箱上凡丝印标注有马蹄形标识‘’, 表示这两根排针之间是连通。图中除 T4和CLR , 其它信号均来自于 ALU单元排线座, 试验箱中全部单元T1、 T2、 T3、 T4都连接至控制总线单元 T1、 T2、 T3、 T4, CLR 都连接至 CON单元CLR 按钮。T4由时序单元 TS4 提供(时序单元介绍见附录二), 其它控制信号均由CON单元二进制数据开关模拟给出。控制信号中除T4为脉冲信号外, 其它均为电平信号, 其中ALU_B为低有效, 其它为高有效。 暂存器A 和暂存器B 数据能在LED 灯上实时显示, 原理如图1-1-3所表示

算术逻辑运算实验报告

算术逻辑运算实验报告

数学学院实验报告 课程名称:计算机组成原理 实验项目名称:算术逻辑运算实验 一、实 验 目 的 1.了解运算器的组成结构。 2.掌握运算器的工作原理。 二、实验设备与器件 PC 机一台,TD-CMA 实验系统一套。 三、实 验 原 理 运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器A 和暂存器B ,三个部件同时接受来自A 和B 的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如ARM ),各部件对操作数进行何种运算由控制信号S3…S0和CN 来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为ALU 的输出。如果是影响进位的运算,还将置进位标志FC ,在运算结果输出前,置ALU 零标志。ALU 中所有模块集成在一片CPLD 中。 逻辑运算部件由逻辑门构成,较为简单,而后面又 成 绩: 指导老师(签名):

有专门的算术运算部件设计实验,在此对这两个部件不再赘述。移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图1-1-2所示。图中显示的是一个4X4的矩阵(系统中是一个8X8的矩阵)。每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即: (1) 对于逻辑左移或逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输出分别相连,而没有同任何输入相连的则输出连接0。 (2) 对于循环右移功能,右移对角线同互补的左移对角线一起激活。例如,在4位矩阵中使用‘右1’和‘左3’对角线来实现右循环1位。 (3) 对于未连接的输出位,移位时使用符号扩展或是0填充,具体由相应的指令控制。使用另外的逻辑进行移位总量译码和符号判别。 A(273) B(273) 显示A 显示B S[3..0] Cn LDA T4 LDB T4 三选一开关 三态控制(245) ALU_B 移位运算部件 逻辑运算部件 算术运算部件 CY1 CLR 译码器 LOGIC SHIFT ADD_SUB PRN CLR Q VCC T4 FC F7 F0 FZ CLR PRN CLR D Q VCC FC Cn FC D CY2 T4 CY2 CN SHIFT ADD_SUB

相关主题
文本预览
相关文档 最新文档