压栈时,堆栈指针先加1,然后压入数据; 出栈时,数据先弹出,然后堆栈指针减1。
例3.9 设(A)=30H,(B)=31H, 执行以下各条指令后,堆 栈指针及堆栈内容变化。 MOV PUSH PUSH POP POP SP, #3FH A B A; B;
;(SP)=3FH ;(SP)=40H(40H)=30H ;(SP)=41H(41H)=31H ;(SP)=40H(A)=31H ;(SP)=3FH(B)=30H
2).以Rn为目的字节的传送指令
• MOV • MOV • MOV Rn,A Rn,direct Rn,#data
; n=0~7
3).以直接地址为目的字节的传送指令
• • • • • MOV MOV MOV MOV MOV dcrect, dcrect, dcrect1, dcrect, dcrect, A Rn ; n=0~7 direct2 @Ri ;i=0,1 #data
SUBB SUBB SUBB SUBB A, #data A, direct A, @Ri A, Rn
例3.12 设(A)=0C9H,(R2)=54H,Cy=1 执行指令:SUBB A,R2 结果:(A)=74H Cy=0 AC=0 OV=1 P=0
例3.13 将(31H)、(30H)和 (41H)、(40H)中两个双字节 无符号数相加,结果送51H、50H。 • • • • • • MOV A,30H ADD A,40H MOV 50H,A MOV A,31H ADDC A,41H MOV 51H,A
3.3 算术运算指令
共有24条。 主要完成加、减、乘、除四则运算 以及增量、减量和十 进制调整操作。 大多数的算术运算指令都对 PSW 的标志位有影 响。