使用AND,NOT和ADD操作实现向左旋转

Jus*_*tin 6 assembly

我执行16位的位移位器通过旋转位到左侧[R .我只能访问到AND,NOTADD操作.有3个条件代码:负数,正数,在使用任何这些操作时都会设置.

这是我的方法:

  1. AND用数字1000 0000 0000 0000来设定条件码以积极的,如果最显著位1.
  2. ADD与自己的数字.这将位向左移位一位.
  3. 如果MSB是1,ADD 1结果.
  4. 循环步骤(1) - (3)r次.

有没有其他有效的方法可以做到这一点?

Nic*_*sen 1

既然这是作业,我就帮你想一想。

2 * 2 = 4
4 * 2 = 8
8 * 2 = 16

0010 * 0010 = 00100
0100 * 0010 = 01000
1000 * 0010 = 10000
Run Code Online (Sandbox Code Playgroud)

左移是一个[一些未知的]操作。[一些未知]操作可以通过使用 AND、NOT 和 ADD 来实现...