汇编指令的一些使用

SETB

SETB是汇编指令,意思是把其后面的那个寄存器的位置1

MCS-51的位操作命令。SETB ET0 ;开定时/计数器0允许 SETB是汇编指令,意思是把其后面的那个寄存器的位置1。 ET0是定时/计数器0的中断允许位,为1时,单片机会响应定时/计数器0的溢出中断(当然,总中断也必须容许)。为0时,单片机不响应。这句意思就是,把ET0置为1。这会导致单片机会响应定时/计数器0的溢出中断SETB TR0 ;定时/计数器0开始运行 TR0是单片机会响应定时/计数器0的启动位,为1,就启动定时/计数器0;为0,就停止定时/计数器0的运行。

ACALL

短调用指令。
短 表现在所调用的子程序地址必须与ACALL指令下一条指令的第一个字节在同一个2KB区内(即16位地址中的高5位地址相同),否则将引起程序转移混乱。
如果ACALL指令正好落在区低的2个单元内,程序就转移到下一个区中去。因为在执行调用操作之前pc先加了2.

执行过程分解
本指令为双字节、双周期指令。执行完本指令,程序计数器内容先加2,指向下一条指令的地址;然后将PC值压入堆栈保存,栈指针(SP)加2;接着将11位目标地址(addr10~0)送程序计数器的低11位(PC10~0),PC值的高5位(PC15~11)不变,即由指令第一字节的低3位(a10 a9 a8)、第二字节(addr7~0)共11位和当前PC值的高5位(PC15~11)组成16位转移目标地址。因此了,所调用的子程序首地址必须在ACALL指令后第一字节开始的2KB范围内的程序储存器中。


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值