我需要使用堆栈添加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
我确信这不是一个好方法,因为有很多重复。可以使用某种循环来使其更好地工作吗?
答案 0 :(得分:0)
“使用堆栈”位似乎有意义的唯一方法是将SP设置为3300H,将数据从堆栈(3300H和3301H)弹出到寄存器对(比如BC),将B添加到A,将C添加到A,将接下来的两个数据字节弹出到BC(3302H和3303H),重复添加,然后将A存储到3350H。这样你就“使用堆栈”将数据从内存中取出到寄存器中,这样你就可以进行数学运算了。做任何事之前都是零A.
祝你好运。