-2

我需要使用堆栈添加 4 个字节的数据 03H、02H、05H、01H,并将结果存储在 i8085 微处理器中的 3350H 中。数据字节来自从 3300H 开始的 4 个连续内存位置。如何去做这件事?到目前为止,我已经这样做了:

LXI SP,3599H    ;Stack initialised
MVI L,00H   
PUSH H
POP PSW         ;Flags Cleared
LXI H,3300H
PUSH H
INX H
PUSH H
INX H
PUSH H
INX H
PUSH H
MVI A,00H
POP B
ADD B
POP B
ADD B
POP B
ADD B
POP B
ADD B
STA 3350H
HLT    

我确信这不是一个好方法,因为有很多重复。可以有某种循环使它更好地工作吗?

4

1 回答 1

0

“使用堆栈”位似乎有意义的唯一方法是将 SP 设置为 3300H,将堆栈中的数据(3300H 和 3301H)弹出到寄存器对(比如说 BC),将 B 添加到 A,将 C 添加到A,将接下来的两个数据字节弹出到BC(3302H和3303H),重复加法,然后将A存入3350H。这样你就“使用堆栈”将数据从内存中取出到寄存器中,这样你就可以执行数学运算了。在做任何事情之前将 A 归零。

祝你好运。

于 2017-01-01T13:29:03.553 回答