Assembly 如何在Intel 8085中使用堆栈添加四个数据字节?

Assembly 如何在Intel 8085中使用堆栈添加四个数据字节?,assembly,8085,Assembly,8085,我需要使用堆栈添加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

我需要使用堆栈添加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    
我相信这不是一个好方法,因为有很多重复。是否有某种循环可以使其更好地工作?

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


祝你好运。

两个问题:1)你要处理溢出的问题吗?2) 为什么要使用堆栈?我知道这是一项任务,但我不知道如何合理使用堆栈,除非。。。您需要编写一个例程。不,假定值足够小,因此不会出现任何溢出