先决条件–
8085微处理器中的逻辑指令
问题–
编写一个汇编语言程序, 将两个8位数字相乘并将结果存储在8085微处理器中的存储器地址3050中。
示例–
使用RLC指令后, 累加器(A)的值为:
A = 2n*A
其中n =使用RLC指令的次数。
假设–
假设第一个数字存储在寄存器B中, 第二个数字存储在寄存器C中。结果不得带任何进位。
算法–
- 将值05分配给寄存器B
- 将值04分配给寄存器C
- 在A中移动B的内容
- 向左旋转蓄能器, 不带进位
- 向左旋转蓄能器, 不带进位
- 将累加器的内容存储在内存地址3050中
- 暂停程序
程序–
内存地址 | 记忆 | 注释 |
---|---|---|
2000 | MVI B 05 | B <-05 |
2002 | MVI C 04 | C <-04 |
2004 | MOV A, B | A <-B |
2005 | RLC | 旋转A的内容而无需进位 |
2006 | RLC | 旋转A的内容而不带进位 |
2007 | STA 3050 | 3050 <-A |
200A | HLT | 程序结束 |
说明–
- MVI B 05:将值05分配给B寄存器。
- MVI C 04:将值04分配给C寄存器。
- MOV A, B:将寄存器B的内容移至寄存器A。
- RLC:将累加器的内容向左旋转而不带进位。
- RLC:将累加器的内容向左旋转而不带进位。
- STA 3050:将寄存器A的内容存储在内存位置3050
- HLT:停止执行程序。