单片机题目 执行以下程序段 MOV SP,#3AH MOV A,#20H MOV B,#30H PUSH ACC PUSH B POP ACC POP B
发布网友
发布时间:2022-05-29 11:47
我来回答
共2个回答
热心网友
时间:2023-10-17 00:09
结果是A、B交换了一下数据,即A=30H,B=20H;
MOV SP,#3AH;设置堆栈(就是设置栈空间地址)
MOV A,#20H;A=20H(赋值)
MOV B,#30H;B=30H(赋值)
PUSH ACC;A先进栈(先将20H进栈)
PUSH B;B再进栈(再将30H进栈)
POP ACC;取出前栈数据(就是最后进栈的数据30H)弹出给A
POP B;取出前栈数据(刚才已经被取走了30H,现在就就该20H了)弹出给B
栈的概念是:先进后出,就像一个桶一样,先放进去的东西A,再放进去东西B,PUSH ACC就是放入A的过程,PUSH B就是放东西B的过程。当然POP就是将当前能取出的数据取出来,这个时候只能是先把B(因为它在最上面)取出来,再取A(因为它在下面)。
热心网友
时间:2023-10-17 00:10
MOV SP,#3AH
MOV A,#20H a=20h
MOV B,#30H b=30h
PUSH ACC a=20h 将A压入堆栈
PUSH B b=30h 将B压入堆栈
POP ACC a=30h 将A弹出堆栈
POP B b=20h 将B弹出堆栈