左移右移位运算_程序中的运算与基本电路

106d883e32a1caf374c86d0f434a764e.png

理论指导实践。要想计算机内部是怎么实现程序中的基本运算的?我们先来了解一下他的理论知识,这样子对我们了解计算机内部是怎么实现运算的,有一个铺垫的作用!

程序中的基本运算:

  • 算术运算:加、减、乘、除、取余
  • 按位运算:按位或“|”、按位与“&”、按位取反“~”、按位异或“^”
  • 移位运算:左移x<<k;右移x>>k

逻辑移位:是指逻辑左移和逻辑右移,移出的空位都是用0来补。

算术移位:需要分符号型值和无符号型值。对于无符号型值,算术移位等同于逻辑移位。而对于有符号型值,算术左移等同于逻辑左移,算术右移补的是符号位整数补0,负数补1。

  • 逻辑运算:and(&&)、or(||)、非(~)
  • 位扩展和位截断运算

主要用于类型转化时可能需要数据扩展或截断。没有专门操作运算符,根据类型转换前后数据长短确定是扩展还是截断。扩展——无符号数:0扩展(前面补0);带符号整数:符号扩展(前面补符号);截断——强行将高位丢弃,故可能溢出。

计算机电路:

1.逻辑门电路

三种基本门电路:与门、或门、非门。其他门电路可以由这三种基本门电路组合而成(如异或门电路)。

a2c77ad20ccaf4565af5a1a63879a146.png

2.根据电路有没有存储功能,将逻辑电路分为两种类型:

组合逻辑电路:没有存储功能,其输出仅依赖于当前输入
时序逻辑电路:有存储功能,其输出不仅依赖于当前输入,还依赖于存储单元的当前状态。

3、功能部件:n位带标志加法器、多路选择器、一位加法器(全加器)

3990d9a618e15cfa3c3c4bdd0de824cb.png

284c69e0f6317675485c8766e0e6b674.png

633f00597e87e5bcd8d3fa996a148f38.png
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
移位运算模型机是一种基于移位运算的计算机,它的主要特点是使用移位运算实现加、减、乘、除等算术运算,同时还可以实现逻辑运算和位操作等。下面是一个简单的移位运算模型机的设计和实现过程。 1. 指令集设计 移位运算模型机的指令集需要包括基本的算术运算、逻辑运算和位操作指令。以下为一个基本指令集: - ADD A, B:将寄存器 A 和寄存器 B 的值相加,并将结果保存到寄存器 A 。 - SUB A, B:将寄存器 A 和寄存器 B 的值相减,并将结果保存到寄存器 A 。 - MUL A, B:将寄存器 A 和寄存器 B 的值相乘,并将结果保存到寄存器 A 。 - DIV A, B:将寄存器 A 和寄存器 B 的值相除,并将结果保存到寄存器 A 。 - AND A, B:将寄存器 A 和寄存器 B 的值进行按位与操作,并将结果保存到寄存器 A 。 - OR A, B:将寄存器 A 和寄存器 B 的值进行按位或操作,并将结果保存到寄存器 A 。 - XOR A, B:将寄存器 A 和寄存器 B 的值进行按位异或操作,并将结果保存到寄存器 A 。 - NOT A:将寄存器 A 的值进行按位取反操作,并将结果保存到寄存器 A 。 - SHL A, B:将寄存器 A 的值左移 B 位,并将结果保存到寄存器 A 。 - SHR A, B:将寄存器 A 的值右移 B 位,并将结果保存到寄存器 A 。 2. 寄存器设计 移位运算模型机需要使用寄存器来存储数据和指令。一般来说,我们可以设计 16 个通用寄存器,每个寄存器可以存储 16 位的数据。同时,还需要设计一个程序计数器 PC,用于存储程序的地址。 3. 存储器设计 移位运算模型机需要使用存储器来存储程序和数据。我们可以设计一个 16 位的地址总线和 16 位的数据总线,以便于访问存储器。在实现时,可以使用 RAM 或 ROM 存储器,也可以使用 EEPROM 存储器来存储程序和数据。 4. 控制单元设计 移位运算模型机的控制单元需要能够解码指令,并根据指令执行相应的操作。一般来说,我们可以使用状态机或微程序控制器来实现控制单元。 5. 程序设计 在设计完移位运算模型机的硬件之后,我们需要编写相应的程序来进行测试。以下是一个简单的程序示例: ``` ORG 0x0000 ; 程序从地址 0x0000 开始 MOV R1, #0x1234 ; 将值 0x1234 存储到寄存器 R1 MOV R2, #0x5678 ; 将值 0x5678 存储到寄存器 R2 ADD R3, R1, R2 ; 将寄存器 R1 和 R2 的值相加,并将结果保存到寄存器 R3 SUB R4, R1, R2 ; 将寄存器 R1 和 R2 的值相减,并将结果保存到寄存器 R4 MUL R5, R1, R2 ; 将寄存器 R1 和 R2 的值相乘,并将结果保存到寄存器 R5 DIV R6, R1, R2 ; 将寄存器 R1 和 R2 的值相除,并将结果保存到寄存器 R6 AND R7, R1, R2 ; 将寄存器 R1 和 R2 的值进行按位与操作,并将结果保存到寄存器 R7 OR R8, R1, R2 ; 将寄存器 R1 和 R2 的值进行按位或操作,并将结果保存到寄存器 R8 XOR R9, R1, R2 ; 将寄存器 R1 和 R2 的值进行按位异或操作,并将结果保存到寄存器 R9 NOT R10, R1 ; 将寄存器 R1 的值进行按位取反操作,并将结果保存到寄存器 R10 SHL R11, R1, #2 ; 将寄存器 R1 的值左移 2 位,并将结果保存到寄存器 R11 SHR R12, R1, #2 ; 将寄存器 R1 的值右移 2 位,并将结果保存到寄存器 R12 HALT ; 停机指令 ``` 6. 实现 根据以上设计,我们可以开始实现移位运算模型机。在实现时,我们可以使用 FPGA、CPLD 或单片机等电子器件来实现。 以上是一个简单的移位运算模型机的设计和实现过程,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值