首页 > 其他 > 详细

[KeilC51] 有关出栈时sp原子性的疑虑

时间:2014-01-14 21:29:59      阅读:548      评论:0      收藏:0      [点我收藏+]

原问题地址 http://www.amobbs.com/thread-5565900-1-1.htm

已知 (sp)=32H (32H)=50H 执行 pop sp
之后(sp)= ?到底是50H呢还是4FH呢?

 

查询了下指令集:

bubuko.com,布布扣

 

照此分析,(sp)应该等于4F。

不过用代码,keilc51 4 ,89C51单片实物仿真后发现答案不是4F。。。奇怪的说。。。

 

一、KEIL4C51 仿真。

仿真代码:

bubuko.com,布布扣
org 0000
        jmp main
        
main:
        
        mov a,#50H
        mov 32H,a
        mov sp,#32H
        nop
        pop sp
        nop
        
        jmp $
        
end
bubuko.com,布布扣

结果:

bubuko.com,布布扣

 

二、89C51单片机上测试。。。

测试代码:

bubuko.com,布布扣
org 0000
    jmp main
    
main:
    mov a,#255
    mov P0,a
    
    mov a,#50H
    mov 32H,a
    mov sp,#32H
    nop
    pop sp
    nop
    
    mov a,sp
    subb a,#50H
    jnz LED7_ON
LED2_ON:
    clr c
    mov P0.2,c   ;发现P0.2亮了。
    jmp end_asm
LED7_ON:
    clr c
    mov P0.7,c  
    
end_asm:
    jmp $
    
end
bubuko.com,布布扣

 

单片机上发现。。。P0.2口的LED亮了。。额

 

为毛和指令集说的有出入?

 

难道是我的测试代码有问题。。。。囧。。。。

 

[KeilC51] 有关出栈时sp原子性的疑虑

原文:http://www.cnblogs.com/alimy/p/3513328.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!