带进位的右移

PIC的RRF指令

RRF  f, d  

0<=f<=7fh  ,d=0或d=1

C代表进位,w是工作寄存器,f是操作寄存器

在指令执行之前

C =0 ,w=88h,f=95h

如:RRF f, 0

 0 10010101

    ------->

红色代表进位 ,则执行之后C=f[0] (原来的值)


此时:C=1, w=4a,f=95h

实验二、移位运算实验 一、实验目的: 掌握移位控制的功能及工作原理 二、预习要求: 1.了解移位寄存器的功能及用FPGA的实现方法。 三、实验设备: JY系列计算机组成原理实验系统一套,排线若干。 四、工作原理: 移位运算实验电路结构如图2-1所示: 图2-1 移位运算器电路结构 功能由S1、S0、M控制,具体功能见表2-2: G-299 S1 S0 M T4 功 能 0 0 0 × ↑ 保持 0 1 0 0 ↑ 循环右移 0 1 0 1 ↑ 进位循环右移 0 0 1 0 ↑ 循环左移 0 0 1 1 ↑ 进位循环左移 1 1 1 × ↑ 置数(进位保持) 0 1 1 0 ↑ 置数(进位清零) 0 1 1 1 ↑ 置数(进位置1) 表2-2 五、实验内容: 输入数据,利用移位寄存器进行移位操作。 六、实验步骤 Ⅰ、单片机键盘操作方式实验。 注:在进行单片机键盘控制实验时,必须把K4开关置于“OFF”状态,否则系统处于自锁状态,无法进行实验。 1、实验连线: 实验连线图如图2-3所示。 图2—3 键盘方式接线图 注:连线时应按如下方法:为了连线统一,对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。注意:F4只用一个排线插头孔 2、实验过程: (1)拨动清零开关CLR,使其指示灯灭。再拨动CLR,使其指示灯亮。在监控指示灯滚动显示【CLASS SELECt】时按【实验选择】键,显示【ES--_ _ 】输入02或2,按【确认】键,监控指示灯显示为【ES02】,表示准备进入实验二程序,也可按【取消】键来取消上一步操作,重新输入。 (2)再按【确认】键,进入实验二程序,显示为【E1E0--】,提示输入操作指令(参考表2-2,E1E0相当于G_299,二进制,“11”为关闭输出,“00”为允许输出),输入二进制数“11”,关闭输出,在输入过程中,可按【取消】键进行输入修改。按【确认】键。 (3)监控指示灯显示【Lo=0】,可输入二进制数“0”或“1”,此处Lo相当于表2-2的M,默认为“0”,按【确认】键。 (4)监控指示灯显示【S0S1--】,提示输入移位控制指令(参考表2-2),输入二进制数“11”,对寄存器进行置数操作,按【确认】键。 (5)监控指示灯显示【DATA】,提示输入要移位的数据,输入十六进制数“0001”,按【确认】,显示【PULSE】,此时按【单步】,将数据存入移位寄存器,可对它进行移位操作。 (6)监控指示灯显示【ES02】,按【确认】键,进行移位操作,显示为【E1E0--】,提示输入操作指令(E1E0同上),输入二进制数“00”,允许输出,按【确认】键。 (7)监控指示灯显示【Lo=0】。和前面一样,输入“0”,选择不进位操作,按【确认】键。监控指示灯显示【S0S1--】,提示输入移位控制指令(参考表2-2),输入二进制数“01”,表示对输入的数据进行循环右移,显示【PULSE】。按【单步】键,则对十六进制数据“0001”执行一次右移操作。数据总线指示灯显示“1000000000000000”,再按【单步】,数据总线指示灯显示“0100 000000000000”,连续按【单步】,可以单步执行,按【全速】键,监控指示灯显示【Run】,则可连续执行移位操作。观察数据总线显示灯的变化,判断结果是否正确。 (8)重新置入数据“FFFF”,进行进位的循环右移,观察数据总线显示灯的变化,判断结果是否正确。 Ⅱ、开关控制操作方式实验 本实验中所有控制开关拨动,相应指示灯亮代表高电平“1”,指示灯灭代表低电平“0”。 1、按图2-4接线: 连线时应注意:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。为了避免总线冲突,首先将控制开关电路的所有开关拨到输出高电平“1”状态,所对应的指示灯亮。 图2-4 实验二开关实验接线图 2、实验过程:(以左移为例) 开始实验前要把所有控制开关电路上的开关置为高电平“1”状态。拨动清零开关CLR,使其指示灯灭。再拨动CLR,使其指示灯亮。 (1) 置数: 置C-G=1,299-G=0,通过数据输入电路输入要移位的数据,置D15---D0= “0000000000000001”,然后置C-G=0,数据总线显示灯显示“0000000000000001”,置S0=1,S1=1,M=1参考功能表2-2可见,此时为置数状态,按脉冲源及时序电路上的【单步】按钮,置C-G=1,完成置数的过程,进位指示灯亮表示进位“Z”已置位。 (2)不进位移位: 置299-G=0,S0=1,S1=0,M=0,参考功能表2-2,此时为循环左移状态,数据总线显示灯显示“0000000000000001”, 按【单步】,数据总线显示灯显示“0000000000000010”, 再按一次【单步】,数据总线显示的数据向左移动一位。连续按【单步】,观察不进位移位的过程。如想进行右移,参考表2-2,置S0=0,S1=1,再按【单步】即可实现右移操作。 (3)进位移位 当数据总线显示“0000000000000001”时,置299-G=0,S0=1,S1=0,M=1,参考功能表2-2,此时为进位循环左移状态。按【单步】按钮,数据总线显示灯显示“0000000000000011”,进位指示灯灭,表示进位“1”已经进入移位寄存器,同时“0”进入进位单元。连续按【单步】,观察进位移位的过程。如想进行进位右移,参考表2-2,置S0=0,S=1,M=1,再按【单步】即可实现进位右移操作。 3、按以上的操作方法验证表2-2所列的移位运算试验电路的所有功能。 七、实验报告要求: 1、实验记录:所有的运算结果,故障现象及排除经过; 2、谈谈本次实验的收获及想法。
最新发布
12-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值