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